/* style.css -- merged from per-tier scene CSS by wizard2.stages.build_deploy */
/* Scene root must fill its positioning container. */
.scn { position: absolute; inset: 0; }

/* ============ tier U ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-tongue-tied-muse { background: linear-gradient(45deg, #2d1e16 0%, #4a3022 50%, #5c3f2e 100%), radial-gradient(ellipse at 60% 20%, #7a5a42 0%, transparent 70%); }
.scn-tongue-tied-muse .ttm-room { position:absolute; inset:0; background: linear-gradient(180deg, #2d1e16 0%, #1f1410 100%); }
.scn-tongue-tied-muse .ttm-wall { position:absolute; bottom:30%; left:10%; right:10%; height:70%; background: linear-gradient(135deg, #6a4d3a 0%, #4a3224 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,.5); animation: ttm-wall 12s ease-in-out infinite alternate; }
.scn-tongue-tied-muse .ttm-window { position:absolute; top:10%; right:15%; width:50px; height:70px; background: linear-gradient(180deg, #4a6a7a 0%, #2a3a4a 100%); border:2px solid #3a2a1a; border-radius:4% 4% 8% 8%; box-shadow: inset 0 0 20px rgba(90,130,150,.3); animation: ttm-window 8s ease-in-out infinite alternate; }
.scn-tongue-tied-muse .ttm-curtain { position:absolute; top:9%; right:15%; width:60px; height:72px; background: linear-gradient(90deg, #6e4e3e 0%, #8a6a5a 50%, #6e4e3e 100%); border-radius:8% 8% 0 0; opacity:.7; transform: scaleX(1.2); animation: ttm-curtain 20s ease-in-out infinite; }
.scn-tongue-tied-muse .ttm-lamp { position:absolute; bottom:35%; left:20%; width:12px; height:16px; background: radial-gradient(circle at 50% 30%, #d4a060 0%, #b08040 60%, #704020 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 30px 10px #b08040, 0 0 60px 20px rgba(176,128,64,.3); animation: ttm-lamp 4s ease-in-out infinite alternate; }
.scn-tongue-tied-muse .ttm-desk { position:absolute; bottom:25%; left:15%; right:25%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius:4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-tongue-tied-muse .ttm-figure { position:absolute; bottom:28%; left:20%; width:20px; height:36px; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ttm-figure 6s ease-in-out infinite; }
.scn-tongue-tied-muse .ttm-shadow { position:absolute; bottom:25%; left:19%; width:24px; height:8px; background: rgba(0,0,0,.3); border-radius:50%; filter:blur(3px); animation: ttm-shadow 6s ease-in-out infinite; }
@keyframes ttm-wall { 0%,100% { opacity:.85 } 50% { opacity:.95 } }
@keyframes ttm-window { 0% { transform: scaleY(1) translateY(0); opacity:.7 } 50% { transform: scaleY(1.02) translateY(-2px); opacity:.9 } 100% { transform: scaleY(1) translateY(0); opacity:.75 } }
@keyframes ttm-curtain { 0%,100% { transform: scaleX(1.2) translateX(0) } 50% { transform: scaleX(1.15) translateX(-3px) } }
@keyframes ttm-lamp { 0% { transform: translateY(0); box-shadow: 0 0 25px 8px #b08040 } 50% { transform: translateY(-2px); box-shadow: 0 0 35px 12px #d4a060 } 100% { transform: translateY(0); box-shadow: 0 0 25px 8px #b08040 } }
@keyframes ttm-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(1deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes ttm-shadow { 0%,100% { transform: translateX(0) scale(1) } 50% { transform: translateX(8px) scale(1.1) } }

.scn-verdict-determined {
  background: linear-gradient(180deg, #3b4356 0%, #4a506a 40%, #5b637a 100%), radial-gradient(ellipse at 50% 100%, #6b7a8a 0%, transparent 70%);
}
.scn-verdict-determined .vd-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a4f5e 0%, #3b4050 50%, #5c6378 100%);
  animation: vd-bg 30s ease-in-out infinite alternate;
}
.scn-verdict-determined .vd-heart {
  position: absolute; bottom: 35%; left: 50%; width: 70px; height: 60px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #6a5b4e 0%, #3a3028 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,0.3);
  animation: vd-heart 6s ease-in-out infinite alternate;
}
.scn-verdict-determined .vd-scale-left {
  position: absolute; bottom: 28%; left: 35%; width: 24px; height: 40px;
  background: linear-gradient(90deg, #8a7a6a 0%, #6a5a4a 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  animation: vd-scale 8s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-verdict-determined .vd-scale-right {
  position: absolute; bottom: 28%; right: 35%; width: 24px; height: 40px;
  background: linear-gradient(90deg, #8a7a6a 0%, #6a5a4a 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  animation: vd-scale 8s ease-in-out 4s infinite;
  transform-origin: bottom center;
}
.scn-verdict-determined .vd-thought-1 {
  position: absolute; top: 20%; left: 20%; width: 12px; height: 12px;
  background: radial-gradient(circle, rgba(200,190,180,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: vd-thought 12s ease-in-out infinite;
}
.scn-verdict-determined .vd-thought-2 {
  position: absolute; top: 30%; right: 15%; width: 10px; height: 10px;
  background: radial-gradient(circle, rgba(200,190,180,0.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: vd-thought 14s ease-in-out 2s infinite;
}
.scn-verdict-determined .vd-thought-3 {
  position: absolute; top: 40%; left: 60%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(200,190,180,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: vd-thought 16s ease-in-out 5s infinite;
}
@keyframes vd-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes vd-heart { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px) } 100% { transform: translateX(-50%) scale(0.98) } }
@keyframes vd-scale { 0% { transform: rotate(-3deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(3deg) } }
@keyframes vd-thought { 0% { transform: translateY(0) scale(0.8); opacity:0.3 } 50% { transform: translateY(-20px) scale(1.2); opacity:0.8 } 100% { transform: translateY(-40px) scale(0.5); opacity:0 } }

.scn-picture-feast {
  background: linear-gradient(180deg, #5c4a3a 0%, #7a6a5a 40%, #8a7a6a 100%), radial-gradient(ellipse at 50% 80%, #8a7a6a 0%, transparent 70%);
}
.scn-picture-feast .pf-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 50%, #5a4a3a 100%);
  animation: pf-bg 20s ease-in-out infinite alternate;
}
.scn-picture-feast .pf-table {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
}
.scn-picture-feast .pf-frame-1 {
  position: absolute; bottom: 35%; left: 20%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border: 3px solid #3a2a1a;
  border-radius: 2px;
  animation: pf-frame 8s ease-in-out infinite alternate;
}
.scn-picture-feast .pf-frame-2 {
  position: absolute; bottom: 33%; left: 40%; width: 70px; height: 55px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border: 3px solid #2a1a0a;
  border-radius: 2px;
  animation: pf-frame 10s ease-in-out 2s infinite alternate;
}
.scn-picture-feast .pf-frame-3 {
  position: absolute; bottom: 35%; right: 20%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border: 3px solid #3a2a1a;
  border-radius: 2px;
  animation: pf-frame 12s ease-in-out 4s infinite alternate;
}
.scn-picture-feast .pf-plate {
  position: absolute; bottom: 27%; left: 50%; width: 40px; height: 8px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-picture-feast .pf-candle {
  position: absolute; bottom: 28%; left: 48%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 100%);
  border-radius: 2px 2px 0 0;
}
.scn-picture-feast .pf-flame {
  position: absolute; bottom: 50%; left: 48.5%; width: 10px; height: 14px;
  background: radial-gradient(ellipse at 50% 20%, #ffd080 0%, #e8a050 40%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: pf-flame 2s ease-in-out infinite alternate;
}
@keyframes pf-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes pf-frame { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes pf-flame { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.1) } 100% { transform: translateY(0) scale(0.9) } }

.scn-share-dream {
  background: linear-gradient(180deg, #3a4a5a 0%, #4a5a6a 40%, #5a6a7a 100%), radial-gradient(ellipse at 50% 100%, #6a7a8a 0%, transparent 70%);
}
.scn-share-dream .sd-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a5a6a 0%, #3a4a5a 50%, #5a6a7a 100%);
  animation: sd-bg 25s ease-in-out infinite alternate;
}
.scn-share-dream .sd-figure-left {
  position: absolute; bottom: 30%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sd-figure 15s ease-in-out infinite alternate;
}
.scn-share-dream .sd-figure-right {
  position: absolute; bottom: 30%; right: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sd-figure 15s ease-in-out 7.5s infinite alternate;
  transform: scaleX(-1);
}
.scn-share-dream .sd-dreamline {
  position: absolute; bottom: 50%; left: 35%; right: 35%; height: 4px;
  background: linear-gradient(90deg, transparent, rgba(180,200,220,0.6) 30%, rgba(180,200,220,0.6) 70%, transparent);
  border-radius: 2px;
  animation: sd-dreamline 8s ease-in-out infinite alternate;
}
.scn-share-dream .sd-dreamcloud-1 {
  position: absolute; top: 20%; left: 30%; width: 60px; height: 20px;
  background: linear-gradient(180deg, rgba(200,210,220,0.4) 0%, transparent 100%);
  filter: blur(4px);
  border-radius: 50%;
  animation: sd-cloud 12s ease-in-out infinite;
}
.scn-share-dream .sd-dreamcloud-2 {
  position: absolute; top: 15%; right: 25%; width: 50px; height: 15px;
  background: linear-gradient(180deg, rgba(200,210,220,0.3) 0%, transparent 100%);
  filter: blur(3px);
  border-radius: 50%;
  animation: sd-cloud 14s ease-in-out 4s infinite;
}
.scn-share-dream .sd-dreamcloud-3 {
  position: absolute; top: 25%; left: 50%; width: 40px; height: 12px;
  background: linear-gradient(180deg, rgba(200,210,220,0.35) 0%, transparent 100%);
  filter: blur(5px);
  border-radius: 50%;
  animation: sd-cloud 16s ease-in-out 8s infinite;
}
@keyframes sd-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes sd-figure { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.02) } 100% { transform: translateY(0) scale(0.98) } }
@keyframes sd-dreamline { 0% { opacity:0.3; transform: scaleY(1) } 50% { opacity:0.8; transform: scaleY(3) } 100% { opacity:0.3; transform: scaleY(1) } }
@keyframes sd-cloud { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(20px) scale(1.2) } 100% { transform: translateX(-10px) scale(0.8) } }

.scn-carefull-trifles {
  background: linear-gradient(180deg, #3a3a40 0%, #4a4a52 40%, #5a5a62 100%), radial-gradient(ellipse at 50% 80%, #5a5a62 0%, transparent 70%);
}
.scn-carefull-trifles .ct-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a4a52 0%, #3a3a40 50%, #5a5a62 100%);
  animation: ct-bg 30s ease-in-out infinite alternate;
}
.scn-carefull-trifles .ct-shelf {
  position: absolute; bottom: 40%; left: 10%; right: 10%; height: 6%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
}
.scn-carefull-trifles .ct-chest {
  position: absolute; bottom: 30%; left: 20%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3);
  animation: ct-chest 10s ease-in-out infinite alternate;
}
.scn-carefull-trifles .ct-jewel-1 {
  position: absolute; bottom: 36%; left: 30%; width: 10px; height: 10px;
  background: radial-gradient(circle, #7a8a6a 0%, #4a5a3a 100%);
  border-radius: 50%;
  animation: ct-jewel 6s ease-in-out infinite;
}
.scn-carefull-trifles .ct-jewel-2 {
  position: absolute; bottom: 34%; right: 25%; width: 8px; height: 8px;
  background: radial-gradient(circle, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50%;
  animation: ct-jewel 7s ease-in-out 2s infinite;
}
.scn-carefull-trifles .ct-lock {
  position: absolute; bottom: 32%; left: 45%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4px;
  animation: ct-lock 4s ease-in-out infinite alternate;
}
.scn-carefull-trifles .ct-bar {
  position: absolute; bottom: 42%; left: 15%; right: 15%; height: 3px;
  background: #6a5a4a;
  border-radius: 1px;
  animation: ct-bar 12s ease-in-out infinite alternate;
}
@keyframes ct-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ct-chest { 0% { transform: scale(1) } 50% { transform: scale(1.01) } 100% { transform: scale(0.99) } }
@keyframes ct-jewel { 0% { transform: translateY(0) scale(0.8); opacity:0.6 } 50% { transform: translateY(-5px) scale(1.2); opacity:1 } 100% { transform: translateY(0) scale(0.8); opacity:0.6 } }
@keyframes ct-lock { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes ct-bar { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.5 } }

/* SCENE: sonnet-clii-first */
.scn-sonnet-clii-first {
  background: linear-gradient(180deg, #1e1a2e 0%, #2a1e3a 40%, #1a1020 100%),
              radial-gradient(ellipse at 50% 80%, #3a2040 0%, transparent 70%);
}
.scn-sonnet-clii-first .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a2228 0%, #181218 100%);
  border-radius: 30% 70% 0 0;
}
.scn-sonnet-clii-first .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #1a1420 0%, #2a2040 50%, #1a1420 100%);
}
.scn-sonnet-clii-first .bed {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #3a2830 0%, #2a1a20 100%);
  border-radius: 8%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.6);
  animation: s1f-bed 8s ease-in-out infinite;
}
.scn-sonnet-clii-first .figure {
  position: absolute; bottom: 28%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1018 0%, #0a080a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s1f-figure 6s ease-in-out infinite;
}
.scn-sonnet-clii-first .candle {
  position: absolute; bottom: 26%; left: 30%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #e8c880 0%, #b89850 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px 2px #d4a050;
}
.scn-sonnet-clii-first .glow {
  position: absolute; bottom: 28%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,160,80,0.3) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: s1f-glow 3s ease-in-out infinite alternate;
}
.scn-sonnet-clii-first .shadow {
  position: absolute; bottom: 28%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  transform: rotate(20deg);
  animation: s1f-shadow 6s ease-in-out infinite;
}
@keyframes s1f-bed { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes s1f-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 75% { transform: translateX(-3px) rotate(-2deg); } }
@keyframes s1f-glow { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes s1f-shadow { 0%,100% { opacity: 0.4; } 50% { opacity: 0.7; } }

/* SCENE: sonnet-clii-second */
.scn-sonnet-clii-second {
  background: linear-gradient(180deg, #1a1828 0%, #2a2238 40%, #141020 100%),
              radial-gradient(ellipse at 50% 60%, #2a2840 0%, transparent 80%);
}
.scn-sonnet-clii-second .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #14101a 0%, #2a2030 50%, #14101a 100%);
}
.scn-sonnet-clii-second .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1e1820 0%, #0c080c 100%);
  border-radius: 50% 50% 0 0;
}
.scn-sonnet-clii-second .figure {
  position: absolute; bottom: 30%; left: 50%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1020 0%, #0a060a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: s1s-figure 5s ease-in-out infinite;
}
.scn-sonnet-clii-second .blindfold {
  position: absolute; bottom: 46%; left: 50%; width: 18px; height: 8px;
  background: linear-gradient(90deg, #3a2a20 0%, #4a3a30 50%, #3a2a20 100%);
  border-radius: 4px;
  transform: translateX(-50%) rotate(5deg);
  animation: s1s-blindfold 4s ease-in-out infinite;
}
.scn-sonnet-clii-second .candle {
  position: absolute; bottom: 24%; left: 30%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #e0c070 0%, #b09040 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px 2px #d0a050;
}
.scn-sonnet-clii-second .shadow {
  position: absolute; bottom: 30%; left: 44%; width: 30px; height: 65px;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  transform: rotate(-15deg);
  animation: s1s-shadow 5s ease-in-out infinite;
}
.scn-sonnet-clii-second .glow {
  position: absolute; bottom: 26%; left: 30%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(200,160,80,0.25) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: s1s-glow 3s ease-in-out infinite alternate;
}
@keyframes s1s-figure { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg) translateY(-3px); } }
@keyframes s1s-blindfold { 0%,100% { transform: translateX(-50%) rotate(5deg); } 50% { transform: translateX(-50%) rotate(-5deg); } }
@keyframes s1s-shadow { 0%,100% { opacity: 0.3; } 50% { opacity: 0.6; } }
@keyframes s1s-glow { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.6; } }

/* SCENE: item-cupids-brand */
.scn-item-cupids-brand {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4a 30%, #1a1a2e 100%),
              radial-gradient(ellipse at 70% 60%, #3a3a5a 0%, transparent 70%);
}
.scn-item-cupids-brand .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1830 0%, #2a2840 100%);
}
.scn-item-cupids-brand .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a2840 0%, #1a1830 100%);
  border-radius: 40% 60% 0 0;
}
.scn-item-cupids-brand .fountain {
  position: absolute; bottom: 30%; left: 25%; width: 40%; height: 25%;
  background: linear-gradient(180deg, #3a4a6a 0%, #2a3a5a 40%, #1a2a4a 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 50% 50%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.4);
  animation: cup-fountain 10s ease-in-out infinite;
}
.scn-item-cupids-brand .cupid {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #a0a0b0 0%, #808090 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cup-cupid 6s ease-in-out infinite;
}
.scn-item-cupids-brand .maid {
  position: absolute; bottom: 20%; left: 55%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #606080 0%, #404060 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: cup-maid 8s ease-in-out infinite;
}
.scn-item-cupids-brand .brand {
  position: absolute; bottom: 32%; left: 52%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #e8c070 0%, #c09040 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px 2px #d0a050;
  animation: cup-brand 3s ease-in-out infinite alternate;
}
.scn-item-cupids-brand .glow {
  position: absolute; bottom: 30%; left: 52%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(200,160,80,0.3) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: cup-glow 2s ease-in-out infinite alternate;
}
@keyframes cup-fountain { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes cup-cupid { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } }
@keyframes cup-maid { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-3deg); } 75% { transform: translateX(-4px) rotate(3deg); } }
@keyframes cup-brand { 0% { opacity: 0.8; transform: scale(1); } 100% { opacity: 1; transform: scale(1.1); } }
@keyframes cup-glow { 0% { opacity: 0.4; } 100% { opacity: 0.8; } }

/* SCENE: item-bath */
.scn-item-bath {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 70%, #3a3a5a 0%, transparent 70%);
}
.scn-item-bath .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1830 0%, #2a2848 100%);
}
.scn-item-bath .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2840 0%, #1a1830 100%);
  border-radius: 60% 40% 0 0;
}
.scn-item-bath .tub {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 22%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.3);
  animation: bath-tub 12s ease-in-out infinite;
}
.scn-item-bath .figure {
  position: absolute; bottom: 22%; left: 45%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #a0a0b0 0%, #808090 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bath-figure 7s ease-in-out infinite;
}
.scn-item-bath .brand {
  position: absolute; bottom: 30%; left: 20%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #e0c070 0%, #b09040 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px 2px #c0a050;
  animation: bath-brand 3s ease-in-out infinite alternate;
}
.scn-item-bath .glow {
  position: absolute; bottom: 28%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,160,80,0.25) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: bath-glow 3s ease-in-out infinite alternate;
}
.scn-item-bath .shadow {
  position: absolute; bottom: 20%; left: 42%; width: 35px; height: 40px;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  transform: rotate(10deg);
  animation: bath-shadow 7s ease-in-out infinite;
}
@keyframes bath-tub { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes bath-figure { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes bath-brand { 0% { opacity: 0.7; } 100% { opacity: 1; } }
@keyframes bath-glow { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes bath-shadow { 0%,100% { opacity: 0.3; } 50% { opacity: 0.6; } }

/* groan-and-grief */
.scn-groan-and-grief { background: linear-gradient(180deg, #4a2a1a 0%, #2a1410 40%, #1a0a0a 100%), radial-gradient(ellipse at 70% 30%, #8b4513 0%, transparent 60%); }
.scn-groan-and-grief .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #7a3a1a 0%, #b85a2a 30%, #d47a3a 50%, transparent 100%); animation: gag-sky 15s ease-in-out infinite alternate; }
.scn-groan-and-grief .sun { position:absolute; top:35%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #e8a040 0%, #c07020 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 20px #c07020; animation: gag-sun 12s ease-in-out infinite; }
.scn-groan-and-grief .hills { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1010 0%, #2a1a0a 100%); border-radius: 50% 40% 0 0 / 70% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); animation: gag-hills 20s ease-in-out infinite alternate; }
.scn-groan-and-grief .horse { position:absolute; bottom:25%; left:30%; width:120px; height:80px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius: 40% 50% 30% 40% / 60% 70% 40% 50%; transform-origin: bottom center; box-shadow: 0 5px 15px rgba(0,0,0,.7); animation: gag-horse 3s ease-in-out infinite; }
.scn-groan-and-grief .rider { position:absolute; bottom:42%; left:32%; width:30px; height:50px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1210 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: gag-rider 3s ease-in-out infinite; }
.scn-groan-and-grief .spur-glow { position:absolute; bottom:28%; left:25%; width:8px; height:8px; background: radial-gradient(circle, #ffaa40 0%, #e07020 60%, transparent); border-radius:50%; box-shadow: 0 0 12px 3px #e07020; animation: gag-spur 4s ease-in-out infinite alternate; }
.scn-groan-and-grief .dust { position:absolute; bottom:20%; left:20%; width:60px; height:20px; background: linear-gradient(180deg, rgba(60,30,10,.4) 0%, transparent); border-radius:50%; filter: blur(4px); animation: gag-dust 6s ease-in-out infinite; }
@keyframes gag-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes gag-sun { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.05); } 100% { transform: translateY(2px) scale(.95); } }
@keyframes gag-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes gag-horse { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes gag-rider { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes gag-spur { 0% { opacity:.3; transform: scale(.8); } 100% { opacity:1; transform: scale(1.2); } }
@keyframes gag-dust { 0% { transform: translateX(0) scale(1); opacity:.5; } 100% { transform: translateX(30px) scale(1.5); opacity:0; } }

/* lover-excuse */
.scn-lover-excuse { background: linear-gradient(180deg, #7a8a7a 0%, #9aaf9a 30%, #bccabc 100%), radial-gradient(ellipse at 50% 80%, #d4dfd4 0%, transparent 70%); }
.scn-lover-excuse .clouds { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #b0bea0 0%, #d0ddd0 50%, transparent); animation: le-clouds 40s ease-in-out infinite alternate; }
.scn-lover-excuse .road { position:absolute; bottom:20%; left:0; right:0; height:15%; background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%); border-radius: 20% 40% 0 0 / 10% 10% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.2); animation: le-road 20s ease-in-out infinite alternate; }
.scn-lover-excuse .horse { position:absolute; bottom:22%; left:25%; width:110px; height:75px; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 45% 50% 35% 40% / 55% 65% 40% 45%; transform-origin: bottom center; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: le-horse 4s ease-in-out infinite; }
.scn-lover-excuse .rider { position:absolute; bottom:45%; left:28%; width:28px; height:45px; background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%); border-radius: 40% 40% 30% 30% / 45% 45% 35% 35%; transform-origin: bottom center; animation: le-rider 4s ease-in-out infinite; }
.scn-lover-excuse .reins { position:absolute; bottom:42%; left:30%; width:40px; height:4px; background: #3a2a1a; border-radius:2px; transform-origin: right center; animation: le-reins 4s ease-in-out infinite; }
.scn-lover-excuse .grass { position:absolute; bottom:10%; left:0; right:0; height:15%; background: linear-gradient(180deg, #3a5a2a 0%, #2a4a1a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; animation: le-grass 30s ease-in-out infinite alternate; }
@keyframes le-clouds { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes le-road { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes le-horse { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes le-rider { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(2deg); } }
@keyframes le-reins { 0%,100% { transform: rotate(5deg); } 50% { transform: rotate(-5deg); } }
@keyframes le-grass { 0% { transform: translateY(0) scaleY(1); } 100% { transform: translateY(-2px) scaleY(1.02); } }

/* fiery-race */
.scn-fiery-race { background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 40%, #2a100a 100%), radial-gradient(ellipse at 60% 50%, #8a2a0a 0%, transparent 80%); }
.scn-fiery-race .deep-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 60%, transparent); animation: fr-sky 20s ease-in-out infinite alternate; }
.scn-fiery-race .flame-bg { position:absolute; bottom:10%; left:10%; right:10%; top:40%; background: linear-gradient(180deg, #d04a1a 0%, #a03010 50%, transparent 80%); opacity:.3; filter: blur(20px); animation: fr-flame 3s ease-in-out infinite alternate; }
.scn-fiery-race .horse { position:absolute; bottom:15%; left:30%; width:130px; height:70px; background: linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 100%); border-radius: 50% 40% 30% 50% / 60% 50% 40% 70%; transform-origin: bottom left; box-shadow: 0 8px 20px #8a2a0a; animation: fr-horse 1.5s ease-in-out infinite; }
.scn-fiery-race .rider { position:absolute; bottom:38%; left:34%; width:25px; height:40px; background: linear-gradient(180deg, #0a0a0a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 45% 35% 35%; transform-origin: bottom center; animation: fr-rider 1.5s ease-in-out infinite; }
.scn-fiery-race .mane-fire { position:absolute; bottom:48%; left:25%; width:40px; height:60px; background: linear-gradient(180deg, #e06020 0%, #b04010 50%, transparent); border-radius: 50%; filter: blur(8px); opacity:.7; animation: fr-mane 1s ease-in-out infinite alternate; }
.scn-fiery-race .hoof-sparks { position:absolute; bottom:10%; left:25%; width:60px; height:20px; background: radial-gradient(circle at 50% 50%, #ffa040 0%, transparent 70%); filter: blur(4px); animation: fr-sparks 0.8s ease-in-out infinite; }
.scn-fiery-race .moon { position:absolute; top:15%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #c0c0d0 0%, #808090 80%); border-radius:50%; box-shadow: 0 0 20px 5px rgba(100,100,120,.5); animation: fr-moon 25s ease-in-out infinite; }
@keyframes fr-sky { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes fr-flame { 0% { opacity:.2; } 50% { opacity:.4; } 100% { opacity:.1; } }
@keyframes fr-horse { 0% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(10px) rotate(-2deg); } 50% { transform: translateX(20px) rotate(-5deg); } 75% { transform: translateX(30px) rotate(-2deg); } 100% { transform: translateX(40px) rotate(-5deg); } }
@keyframes fr-rider { 0%,100% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-3px) rotate(3deg); } }
@keyframes fr-mane { 0% { transform: scaleY(1) rotate(10deg); } 100% { transform: scaleY(1.5) rotate(-10deg); } }
@keyframes fr-sparks { 0% { transform: translateY(0) scale(1); opacity:.8; } 100% { transform: translateY(-10px) scale(1.5); opacity:0; } }
@keyframes fr-moon { 0% { transform: translateY(0); } 50% { transform: translateY(5px); } 100% { transform: translateY(0); } }

/* blessed-key */
.scn-blessed-key { background: linear-gradient(180deg, #1a1410 0%, #2a1a14 40%, #3a2a1a 100%), radial-gradient(ellipse at 40% 60%, #4a3a2a 0%, transparent 80%); }
.scn-blessed-key .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0f08 100%); opacity:.6; }
.scn-blessed-key .chest { position:absolute; bottom:10%; left:25%; right:25%; height:50%; background: linear-gradient(180deg, #4a2a12 0%, #2a1408 100%); border-radius: 5% 5% 10% 10%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5), 0 0 30px 10px #6a3a18; animation: bk-chest 10s ease-in-out infinite alternate; }
.scn-blessed-key .key-glow { position:absolute; bottom:40%; left:48%; width:12px; height:30px; background: linear-gradient(180deg, #f0c060 0%, #d09030 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 40px 15px #d09030, 0 0 80px 30px rgba(200,140,40,.3); animation: bk-key 4s ease-in-out infinite alternate; }
.scn-blessed-key .interior-light { position:absolute; inset:10%; background: radial-gradient(ellipse at 50% 60%, #d0a040 0%, transparent 70%); opacity:.3; filter: blur(15px); animation: bk-light 8s ease-in-out infinite alternate; }
.scn-blessed-key .treasure { position:absolute; bottom:12%; left:35%; right:35%; height:15%; background: linear-gradient(180deg, #f0d060 0%, #c09820 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 5px #c09820; animation: bk-treasure 6s ease-in-out infinite; }
.scn-blessed-key .shadow-figure { position:absolute; bottom:15%; left:20%; width:40px; height:90px; background: linear-gradient(180deg, #0a0500 0%, #000 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 20px #000; animation: bk-figure 15s ease-in-out infinite alternate; }
@keyframes bk-chest { 0% { transform: scale(1); box-shadow: 0 0 30px 10px #6a3a18; } 50% { transform: scale(1.02); box-shadow: 0 0 40px 15px #8a4a1a; } 100% { transform: scale(1); box-shadow: 0 0 30px 10px #6a3a18; } }
@keyframes bk-key { 0% { transform: translateY(0) rotate(-10deg); box-shadow: 0 0 40px 15px #d09030; } 50% { transform: translateY(-2px) rotate(5deg); box-shadow: 0 0 60px 25px #f0b040; } 100% { transform: translateY(0) rotate(-10deg); box-shadow: 0 0 40px 15px #d09030; } }
@keyframes bk-light { 0% { opacity:.2; } 50% { opacity:.4; } 100% { opacity:.2; } }
@keyframes bk-treasure { 0%,100% { transform: scale(1) rotate(-2deg); } 50% { transform: scale(1.05) rotate(2deg); } }
@keyframes bk-figure { 0% { transform: translateY(0) rotate(-3deg); opacity:.5; } 50% { transform: translateY(-5px) rotate(2deg); opacity:.7; } 100% { transform: translateY(0) rotate(-3deg); opacity:.5; } }

.scn-waiting-hell { background: linear-gradient(180deg, #1a1015 0%, #2d1c24 40%, #1a1015 100%), radial-gradient(ellipse at 50% 30%, #3d2830 0%, transparent 70%); }
.scn-waiting-hell .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3d2a20 0%, #1f1510 100%); box-shadow: inset 0 12px 24px rgba(0,0,0,.6); }
.scn-waiting-hell .wall-back { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #2a1a1f 0%, #1a0f14 50%, #2a1a1f 100%); }
.scn-waiting-hell .wall-side { position:absolute; inset:0 0 35% 35%; background: linear-gradient(270deg, #2d1c22 0%, #1a0f14 100%); box-shadow: inset -4px 0 8px rgba(0,0,0,.5); animation: wal-side-shift 12s ease-in-out infinite alternate; }
.scn-waiting-hell .figure { position:absolute; bottom:35%; left:45%; width:40px; height:70px; background: linear-gradient(180deg, #1a1215 0%, #0d080a 100%); border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%; transform-origin: bottom center; animation: fig-wait 5s ease-in-out infinite; }
.scn-waiting-hell .light-shaft { position:absolute; top:0; left:48%; width:12%; height:80%; background: linear-gradient(180deg, rgba(220,200,180,.15) 0%, rgba(220,200,180,.05) 40%, transparent 100%); filter: blur(8px); transform: skewX(-5deg); animation: light-pulse 6s ease-in-out infinite alternate; }
.scn-waiting-hell .shadow-bar { position:absolute; top:30%; right:20%; width:30%; height:4%; background: #0d080a; border-radius: 20%; filter: blur(3px); opacity:.7; animation: bar-sway 8s ease-in-out infinite alternate; }
.scn-waiting-hell .dust { position:absolute; top:20%; left:30%; width:4px; height:4px; background: rgba(220,200,180,.4); border-radius:50%; filter: blur(3px); animation: dust-drift 15s ease-in-out infinite; }
@keyframes wal-side-shift { 0% { transform: translateX(0) } 50% { transform: translateX(-4px) } 100% { transform: translateX(0) } }
@keyframes fig-wait { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(1px) rotate(0deg) } }
@keyframes light-pulse { 0% { opacity:.4 } 50% { opacity:.8 } 100% { opacity:.3 } }
@keyframes bar-sway { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dust-drift { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(15px,-8px) scale(.8) } 100% { transform: translate(30px,-15px) scale(1.2) } }

.scn-backward-look { background: linear-gradient(180deg, #6b7a7d 0%, #8a9a9e 35%, #5b686a 100%), radial-gradient(ellipse at 50% 0%, #9aacb0 0%, transparent 60%); }
.scn-backward-look .sky-overcast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7b8a8d 0%, #9ba8ac 40%, #7b8a8d 100%); animation: sky-drift 20s ease-in-out infinite alternate; }
.scn-backward-look .ground-mist { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #6b7a7d 0%, #8a9a9e 20%, #7b8a8d 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; filter: blur(4px); opacity:.7; animation: mist-roll 25s ease-in-out infinite alternate; }
.scn-backward-look .horizon-line { position:absolute; bottom:40%; left:0; right:0; height:2%; background: linear-gradient(90deg, #4b5a5d 0%, #6b7a7d 50%, #4b5a5d 100%); filter: blur(1px); }
.scn-backward-look .figure-gazing { position:absolute; bottom:35%; left:40%; width:30px; height:65px; background: linear-gradient(180deg, #3a4042 0%, #1c2028 100%); border-radius: 50% 50% 45% 45% / 55% 55% 40% 40%; transform-origin: bottom center; animation: gaze-turn 8s ease-in-out infinite; }
.scn-backward-look .path-behind { position:absolute; bottom:28%; left:25%; width:20%; height:3px; background: #6b7a7d; border-radius:50%; filter: blur(2px); opacity:.6; transform: rotate(-5deg); animation: path-fade 12s ease-in-out infinite alternate; }
.scn-backward-look .tree-silhouette { position:absolute; bottom:32%; right:15%; width:25px; height:80px; background: linear-gradient(180deg, #3a4042 0%, #1c2028 50%, #0a0c10 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; filter: blur(1px); animation: tree-sway 9s ease-in-out infinite alternate; }
.scn-backward-look .distant-shape { position:absolute; bottom:42%; left:60%; width:15px; height:20px; background: #5b686a; border-radius:50%; filter: blur(4px); opacity:.5; animation: shape-pulse 18s ease-in-out infinite alternate; }
@keyframes sky-drift { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes mist-roll { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(2px) scale(.98) } }
@keyframes gaze-turn { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(-5px) rotate(5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes path-fade { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes tree-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-1deg) } }
@keyframes shape-pulse { 0% { opacity:.3; transform:scale(1) } 50% { opacity:.6; transform:scale(1.1) } 100% { opacity:.4; transform:scale(.95) } }

.scn-antique-wonder { background: linear-gradient(180deg, #5a6058 0%, #7a8275 40%, #4a5048 100%), radial-gradient(ellipse at 50% 0%, #8a9075 0%, transparent 70%); }
.scn-antique-wonder .sky-pale { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #7a8275 0%, #9aa085 40%, #7a8275 100%); animation: sky-soft 30s ease-in-out infinite alternate; }
.scn-antique-wonder .ruin-column { position:absolute; bottom:20%; left:30%; width:20px; height:120px; background: linear-gradient(180deg, #8a8675 0%, #6a6655 50%, #5a5650 100%); border-radius: 10% 10% 0 0; box-shadow: inset -2px 0 6px rgba(0,0,0,.3); transform: rotate(2deg); animation: col-tremble 7s ease-in-out infinite; }
.scn-antique-wonder .ruin-arch { position:absolute; bottom:48%; left:25%; width:60px; height:30px; background: linear-gradient(270deg, #8a8675 0%, #6a6655 50%, #8a8675 100%); border-radius: 50% 50% 0 0; clip-path: inset(0 0 30% 0); box-shadow: inset 0 4px 8px rgba(0,0,0,.2); animation: arch-settle 11s ease-in-out infinite alternate; }
.scn-antique-wonder .figure-examining { position:absolute; bottom:20%; left:55%; width:25px; height:55px; background: linear-gradient(180deg, #4a5042 0%, #2a3028 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: examine-move 14s ease-in-out infinite; }
.scn-antique-wonder .broken-stone { position:absolute; bottom:15%; left:40%; width:35px; height:18px; background: linear-gradient(135deg, #7a7265 0%, #5a5650 100%); border-radius: 20% 40% 30% 10%; transform: rotate(-8deg); box-shadow: inset -2px -2px 4px rgba(0,0,0,.2); animation: stone-still 10s ease-in-out infinite alternate; }
.scn-antique-wonder .lichen-glow { position:absolute; bottom:30%; left:28%; width:8px; height:8px; background: radial-gradient(circle, #9aac70 0%, #7a8a50 70%); border-radius:50%; filter: blur(3px); opacity:.6; animation: glow-pulse 5s ease-in-out infinite alternate; }
.scn-antique-wonder .shadow-veil { position:absolute; inset:0; background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,.3) 100%); pointer-events:none; }
@keyframes sky-soft { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes col-tremble { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(1.5deg) translateY(-1px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes arch-settle { 0% { transform: scale(1) } 50% { transform: scale(1.01) } 100% { transform: scale(.99) } }
@keyframes examine-move { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(5px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes stone-still { 0% { transform: rotate(-8deg) } 50% { transform: rotate(-7deg) } 100% { transform: rotate(-9deg) } }
@keyframes glow-pulse { 0% { opacity:.4; transform:scale(1) } 50% { opacity:.8; transform:scale(1.3) } 100% { opacity:.5; transform:scale(.9) } }

.scn-waves-to-shore { background: linear-gradient(180deg, #5a6870 0%, #7a8890 40%, #4a5860 100%), radial-gradient(ellipse at 50% 0%, #8a98a0 0%, transparent 60%); }
.scn-waves-to-shore .sky-overcast-waves { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #6a7880 0%, #8a98a0 50%, #6a7880 100%); animation: sky-move 20s ease-in-out infinite; }
.scn-waves-to-shore .sea-deep { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a5860 0%, #3a4850 50%, #2a3840 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,.4); animation: sea-swell 15s ease-in-out infinite alternate; }
.scn-waves-to-shore .shore-sand { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a7060 0%, #8a7a6a 30%, #6a5a4a 100%); border-radius: 20% 30% 0 0 / 10% 15% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.2); }
.scn-waves-to-shore .wave-coming { position:absolute; bottom:35%; left:20%; width:100%; height:8%; background: linear-gradient(90deg, transparent 0%, #8a9aa0 30%, #9aaab0 50%, #8a9aa0 70%, transparent 100%); border-radius: 40% 30% 40% 30%; filter: blur(4px); opacity:.7; animation: wave-roll 8s ease-in-out infinite alternate; }
.scn-waves-to-shore .wave-foam { position:absolute; bottom:32%; left:40%; width:80%; height:4%; background: linear-gradient(90deg, transparent 0%, rgba(220,230,235,.6) 30%, rgba(220,230,235,.9) 50%, rgba(220,230,235,.6) 70%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: foam-crest 5s ease-in-out infinite alternate; }
.scn-waves-to-shore .pebble-line { position:absolute; bottom:28%; left:10%; width:40%; height:2%; background: linear-gradient(90deg, #6a5a4a 0%, #5a4a3a 50%, #6a5a4a 100%); border-radius: 50%; filter: blur(2px); opacity:.6; animation: pebble-shift 30s linear infinite; }
.scn-waves-to-shore .figure-standing { position:absolute; bottom:24%; left:15%; width:25px; height:60px; background: linear-gradient(180deg, #3a4045 0%, #1c2025 100%); border-radius: 50% 50% 45% 45% / 55% 55% 40% 40%; transform-origin: bottom center; animation: stand-still 9s ease-in-out infinite; }
.scn-waves-to-shore .cloud-veil { position:absolute; top:12%; left:30%; width:120px; height:20px; background: linear-gradient(90deg, transparent 0%, rgba(200,210,215,.4) 30%, rgba(200,210,215,.6) 50%, rgba(200,210,215,.4) 70%, transparent 100%); border-radius:50%; filter: blur(8px); animation: cloud-slide 35s linear infinite; }
@keyframes sky-move { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes sea-swell { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes wave-roll { 0% { transform: translateX(-10%) scale(1) } 50% { transform: translateX(5%) scale(1.05) } 100% { transform: translateX(15%) scale(.95) } }
@keyframes foam-crest { 0% { opacity:.4; transform: scaleY(1) } 50% { opacity:.8; transform: scaleY(1.3) } 100% { opacity:.5; transform: scaleY(.8) } }
@keyframes pebble-shift { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(-5px) } }
@keyframes stand-still { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cloud-slide { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

/* ----- true-plain-words ----- */
.scn-true-plain-words {
  background: linear-gradient(180deg, #6b7080 0%, #4f5360 40%, #3b3e48 100%),
              radial-gradient(ellipse at 50% 0%, #8a8fa0 0%, transparent 70%);
}
.scn-true-plain-words .tpw-backdrop { position:absolute; inset:0; background: linear-gradient(180deg, #5a5e6c 0%, #3b3e48 100%); opacity:0.6; }
.scn-true-plain-words .tpw-desk { position:absolute; bottom:0; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #6e5a4a 0%, #4a3a2e 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.3); }
.scn-true-plain-words .tpw-paper { position:absolute; bottom:24%; left:25%; width:45%; height:12%; background: linear-gradient(180deg, #e8dfd0 0%, #c8bca8 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.2); transform: rotate(-1deg); animation: tpw-paper 6s ease-in-out infinite; }
.scn-true-plain-words .tpw-hand { position:absolute; bottom:25%; left:38%; width:14px; height:20px; background: linear-gradient(180deg, #ccbdaa 0%, #a89a88 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom left; animation: tpw-hand 3s ease-in-out infinite; }
.scn-true-plain-words .tpw-inkwell { position:absolute; bottom:26%; left:72%; width:12px; height:18px; background: linear-gradient(180deg, #3a3a44 0%, #1e1e24 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,0.4); animation: tpw-ink 8s ease-in-out infinite; }
.scn-true-plain-words .tpw-window { position:absolute; top:12%; right:12%; width:30%; height:40%; background: linear-gradient(180deg, #7a8090 0%, #5a5e6c 100%); border: 4px solid #4a4d58; border-radius: 6px; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); }
.scn-true-plain-words .tpw-skyglow { position:absolute; top:8%; right:14%; width:24%; height:36%; background: radial-gradient(ellipse at 50% 0%, #d0d4e0 0%, transparent 70%); opacity:0.4; animation: tpw-sky 12s ease-in-out infinite alternate; }
.scn-true-plain-words .tpw-cloud { position:absolute; top:18%; right:20%; width:60px; height:14px; background: rgba(180,185,195,0.4); border-radius: 50%; filter: blur(4px); animation: tpw-drift 30s linear infinite; }
@keyframes tpw-paper { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes tpw-hand { 0% { transform: rotate(0deg) } 30% { transform: rotate(6deg) } 60% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes tpw-ink { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes tpw-sky { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }
@keyframes tpw-drift { 0% { transform: translateX(0) } 100% { transform: translateX(-40vw) } }

/* ----- no-painting-need ----- */
.scn-no-painting-need {
  background: linear-gradient(180deg, #5c6070 0%, #444858 60%, #2e3040 100%),
              radial-gradient(ellipse at 30% 40%, #787c8c 0%, transparent 60%);
}
.scn-no-painting-need .npn-studio { position:absolute; inset:0; background: linear-gradient(135deg, #4a4e5a 0%, #2e3040 100%); }
.scn-no-painting-need .npn-easel { position:absolute; bottom:10%; left:20%; width:30%; height:60%; background: linear-gradient(180deg, #6a5e4e 0%, #4a3e2e 100%); border-radius: 4px; transform: rotate(-1deg); box-shadow: 8px 0 12px rgba(0,0,0,0.3); }
.scn-no-painting-need .npn-canvas { position:absolute; bottom:15%; left:23%; width:24%; height:50%; background: linear-gradient(180deg, #d8d0c0 0%, #b8b0a0 100%); box-shadow: inset 0 0 10px rgba(0,0,0,0.1); }
.scn-no-painting-need .npn-figure { position:absolute; bottom:12%; right:25%; width:16%; height:55%; background: linear-gradient(180deg, #3a3c44 0%, #1a1c24 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: npn-fig 4s ease-in-out infinite; }
.scn-no-painting-need .npn-palette { position:absolute; bottom:25%; right:44%; width:20px; height:14px; background: linear-gradient(90deg, #8c7c6a, #a08c76, #7a6a5a); border-radius: 40%; transform: rotate(-10deg); animation: npn-pal 5s ease-in-out infinite; }
.scn-no-painting-need .npn-stool { position:absolute; bottom:0; right:22%; width:40%; height:10%; background: linear-gradient(180deg, #5a4e3e 0%, #3a2e1e 100%); border-radius: 4px; }
.scn-no-painting-need .npn-window { position:absolute; top:10%; left:8%; width:25%; height:35%; background: linear-gradient(180deg, #7a8090 0%, #5a5e6c 100%); border: 3px solid #4a4d58; box-shadow: inset 0 0 15px rgba(0,0,0,0.4); }
@keyframes npn-fig { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes npn-pal { 0% { transform: rotate(-10deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-10deg) } }

/* ----- mute-glory ----- */
.scn-mute-glory {
  background: linear-gradient(180deg, #e8e0d0 0%, #b8b0a0 40%, #807870 100%),
              radial-gradient(ellipse at 50% 20%, #f0e8d8 0%, transparent 70%);
}
.scn-mute-glory .mg-bg { position:absolute; inset:0; background: linear-gradient(135deg, #c8c0b0 0%, #a09888 100%); }
.scn-mute-glory .mg-column-left { position:absolute; top:0; left:10%; width:8%; height:100%; background: linear-gradient(180deg, #9a9282 0%, #6a6252 100%); }
.scn-mute-glory .mg-column-right { position:absolute; top:0; right:10%; width:8%; height:100%; background: linear-gradient(180deg, #9a9282 0%, #6a6252 100%); }
.scn-mute-glory .mg-pedestal { position:absolute; bottom:10%; left:35%; width:30%; height:20%; background: linear-gradient(180deg, #a09888 0%, #7a7262 100%); border-radius: 4px; }
.scn-mute-glory .mg-figure { position:absolute; bottom:18%; left:42%; width:16%; height:55%; background: linear-gradient(180deg, #4a4e58 0%, #2a2e38 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: mg-fig 5s ease-in-out infinite; }
.scn-mute-glory .mg-wreath { position:absolute; bottom:38%; left:45%; width:12%; height:10%; background: radial-gradient(circle at 50% 50%, #c8a846 0%, #a88a30 50%, #7a6a1e 100%); border-radius: 50%; box-shadow: 0 0 12px rgba(168,138,48,0.4); animation: mg-wreath 6s ease-in-out infinite; }
.scn-mute-glory .mg-shadow { position:absolute; bottom:0; left:35%; width:30%; height:12%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 70%); animation: mg-shadow 8s ease-in-out infinite alternate; }
.scn-mute-glory .mg-dust { position:absolute; top:20%; left:30%; width:40%; height:40%; background: radial-gradient(circle, rgba(200,190,170,0.1) 0%, transparent 70%); animation: mg-dust 20s linear infinite; }
@keyframes mg-fig { 0% { transform: translateY(0) scale(1) } 30% { transform: translateY(-3px) scale(1.02) } 70% { transform: translateY(0) scale(1) } 100% { transform: translateY(0) scale(1) } }
@keyframes mg-wreath { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes mg-shadow { 0% { opacity: 0.4 } 100% { opacity: 0.7 } }
@keyframes mg-dust { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(10px, -5px) scale(1.1) } 100% { transform: translate(0,0) scale(1) } }

/* ----- who-says-most ----- */
.scn-who-says-most {
  background: linear-gradient(180deg, #4a4e60 0%, #2e3040 50%, #1a1c28 100%),
              radial-gradient(ellipse at 50% 30%, #6a7080 0%, transparent 70%);
}
.scn-who-says-most .wsm-bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a3e4a 0%, #1a1c28 100%); }
.scn-who-says-most .wsm-podium { position:absolute; bottom:8%; left:40%; width:20%; height:25%; background: linear-gradient(180deg, #5a5e6c 0%, #3a3e4a 100%); border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-who-says-most .wsm-figure-left { position:absolute; bottom:10%; left:22%; width:14%; height:50%; background: linear-gradient(180deg, #2a2e38 0%, #0a0e18 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: wsm-left 5s ease-in-out infinite; }
.scn-who-says-most .wsm-figure-right { position:absolute; bottom:12%; right:22%; width:14%; height:50%; background: linear-gradient(180deg, #3a3e48 0%, #1a1e28 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: wsm-right 5s ease-in-out infinite 0.5s; }
.scn-who-says-most .wsm-scales { position:absolute; top:20%; left:43%; width:14%; height:20%; background: linear-gradient(180deg, #8a8272 0%, #5a5242 100%); border-radius: 50%; box-shadow: 0 0 12px rgba(138,130,114,0.3); animation: wsm-scale 4s ease-in-out infinite; }
.scn-who-says-most .wsm-drapery { position:absolute; top:0; left:0; width:100%; height:15%; background: linear-gradient(180deg, #5a5e6c 0%, #3a3e4a 100%); clip-path: polygon(0% 0%, 10% 100%, 20% 0%, 30% 100%, 40% 0%, 50% 100%, 60% 0%, 70% 100%, 80% 0%, 90% 100%, 100% 0%); animation: wsm-drape 12s ease-in-out infinite; }
.scn-who-says-most .wsm-lamp { position:absolute; top:5%; left:48%; width:4%; height:15%; background: radial-gradient(circle at 50% 100%, #f0e0a0 0%, #b09860 50%, #7a6240 100%); box-shadow: 0 0 30px rgba(240,224,160,0.3); animation: wsm-lamp 3s ease-in-out infinite alternate; }
@keyframes wsm-left { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-4px) rotate(1deg) } 60% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes wsm-right { 0% { transform: translateY(0) rotate(2deg) } 30% { transform: translateY(-6px) rotate(-1deg) } 60% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes wsm-scale { 0% { transform: rotate(0deg) } 25% { transform: rotate(3deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-3deg) } 100% { transform: rotate(0deg) } }
@keyframes wsm-drape { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes wsm-lamp { 0% { opacity: 0.7 } 100% { opacity: 1 } }

/* ocean-interval */
.scn-ocean-interval { background: linear-gradient(180deg, #7a8a9a 0%, #9aacba 30%, #bcc8d0 60%, #a0b4be 100%); }
.scn-ocean-interval .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #8a9aaa 0%, #bfced6 40%, transparent 100%); }
.scn-ocean-interval .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #889ba8 0%, #5b6e7a 100%); animation: oi-sea 8s ease-in-out infinite alternate; border-radius: 0 0 30% 30% / 0 0 10% 10%; }
.scn-ocean-interval .far-shore { position:absolute; bottom:48%; left:15%; width:60%; height:8%; background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%); border-radius: 30% 30% 10% 10%; }  
.scn-ocean-interval .near-shore { position:absolute; bottom:22%; left:5%; width:40%; height:12%; background: linear-gradient(180deg, #5e6e5e 0%, #3a4a3a 100%); border-radius: 20% 80% 0 0 / 40% 60% 0 0; animation: oi-shore 12s ease-in-out infinite alternate; }
.scn-ocean-interval .figure { position:absolute; bottom:24%; left:20%; width:12px; height:30px; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oi-figure 9s ease-in-out infinite; }
.scn-ocean-interval .boat { position:absolute; bottom:36%; right:28%; width:40px; height:14px; background: linear-gradient(90deg, #4a5a3a 0%, #3a4a2a 100%); border-radius: 30% 30% 20% 20%; animation: oi-boat 15s ease-in-out infinite; }
.scn-ocean-interval .cloud-a { position:absolute; top:12%; left:0; width:60px; height:16px; background: rgba(180,190,200,.4); border-radius:50%; filter:blur(4px); animation: oi-cloud-a 40s linear infinite; }
.scn-ocean-interval .cloud-b { position:absolute; top:25%; right:0; width:50px; height:12px; background: rgba(200,210,220,.3); border-radius:50%; filter:blur(3px); animation: oi-cloud-b 55s linear infinite reverse; }
@keyframes oi-sea { 0% { transform: translateY(0); opacity:.8 } 50% { transform: translateY(-4px); opacity:.9 } 100% { transform: translateY(2px); opacity:.85 } }
@keyframes oi-shore { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(-2px) } }
@keyframes oi-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(10px) translateY(0) rotate(-1deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(20px) translateY(0) rotate(0) } }
@keyframes oi-boat { 0% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(-10px) translateY(-3px) rotate(2deg) } 100% { transform: translateX(5px) translateY(1px) rotate(-1deg) } }
@keyframes oi-cloud-a { 0% { transform: translateX(-60px) } 100% { transform: translateX(120vw) } }
@keyframes oi-cloud-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* slave-to-desire */
.scn-slave-to-desire { background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 30%, #5a5a6a 60%, #3a3a4a 100%), radial-gradient(ellipse at 50% 20%, #5a5a6a 0%, transparent 70%); }
.scn-slave-to-desire .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a4a5a 0%, #5a5a6a 100%); }
.scn-slave-to-desire .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); }
.scn-slave-to-desire .window { position:absolute; top:15%; left:10%; width:25%; height:35%; background: radial-gradient(ellipse, #8a9aaa 0%, #5a6a7a 60%); border-radius: 5% 5% 10% 10%; box-shadow: inset 0 0 30px rgba(0,0,0,.5); animation: std-window 12s ease-in-out infinite alternate; }
.scn-slave-to-desire .clock { position:absolute; top:22%; right:18%; width:50px; height:70px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,.6); }
.scn-slave-to-desire .pendulum { position:absolute; top:40%; right:22%; width:4px; height:35px; background: #8a7050; transform-origin: top center; animation: std-pendulum 2s ease-in-out infinite; }
.scn-slave-to-desire .figure { position:absolute; bottom:22%; left:40%; width:16px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: std-figure 6s ease-in-out infinite; }
.scn-slave-to-desire .chain { position:absolute; bottom:28%; left:35%; width:2px; height:20px; background: #6a6a7a; border-radius: 50%; box-shadow: 0 0 2px #5a5a6a; animation: std-chain 4s ease-in-out infinite alternate; }
@keyframes std-window { 0% { opacity:.6; transform: scaleY(1) } 50% { opacity:.8; transform: scaleY(1.02) } 100% { opacity:.7; transform: scaleY(.98) } }
@keyframes std-pendulum { 0% { transform: rotate(-15deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(-15deg) } }
@keyframes std-figure { 0% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(2px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(-2px) translateY(1px) rotate(-2deg) } }
@keyframes std-chain { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(1px) rotate(3deg) } 100% { transform: translateX(-1px) rotate(-3deg) } }

/* sad-slave */
.scn-sad-slave { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 30% 20%, #4a4a5a 0%, transparent 80%); }
.scn-sad-slave .wall-dark { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-sad-slave .floor-dark { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-sad-slave .window-dim { position:absolute; top:10%; left:15%; width:20%; height:30%; background: radial-gradient(ellipse, #5a6a7a 0%, #2a3a4a 70%); border-radius: 5% 5% 10% 10%; box-shadow: inset 0 0 20px rgba(255,255,255,.1); animation: ss-window 15s ease-in-out infinite alternate; }
.scn-sad-slave .figure-sad { position:absolute; bottom:30%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ss-figure 8s ease-in-out infinite; }
.scn-sad-slave .shadow { position:absolute; bottom:18%; left:30%; width:30px; height:8px; background: rgba(10,10,20,.5); border-radius: 50%; filter: blur(4px); animation: ss-shadow 8s ease-in-out infinite; }
.scn-sad-slave .candle { position:absolute; bottom:22%; right:20%; width:8px; height:18px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 20% 20% 10% 10%; }
.scn-sad-slave .flame { position:absolute; bottom:38%; right:19%; width:6px; height:12px; background: radial-gradient(ellipse,#d0a060 0%,#b08040 50%,transparent 100%); border-radius: 50%; animation: ss-flame 1.5s ease-in-out infinite alternate; }
.scn-sad-slave .glow { position:absolute; bottom:20%; right:10%; width:40px; height:40px; background: radial-gradient(circle, rgba(200,160,100,.3) 0%, transparent 70%); border-radius:50%; animation: ss-glow 3s ease-in-out infinite alternate; }
@keyframes ss-window { 0% { opacity:.5; transform: scaleY(1) } 50% { opacity:.7; transform: scaleY(1.01) } 100% { opacity:.6; transform: scaleY(.99) } }
@keyframes ss-figure { 0% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(-3px) translateY(1px) rotate(-2deg) } 100% { transform: translateX(3px) translateY(-1px) rotate(2deg) } }
@keyframes ss-shadow { 0% { transform: scaleX(1); opacity:.5 } 50% { transform: scaleX(1.1); opacity:.6 } 100% { transform: scaleX(.9); opacity:.4 } }
@keyframes ss-flame { 0% { transform: translateY(0) scaleY(1); opacity:.9 } 50% { transform: translateY(-3px) scaleY(1.3); opacity:1 } 100% { transform: translateY(0) scaleY(.8); opacity:.8 } }
@keyframes ss-glow { 0% { transform: scale(1); opacity:.3 } 50% { transform: scale(1.2); opacity:.5 } 100% { transform: scale(.9); opacity:.2 } }

/* vassal-bound */
.scn-vassal-bound { background: linear-gradient(180deg, #5a6a7a 0%, #7a8a9a 30%, #8a9aaa 60%, #5a6a7a 100%); }
.scn-vassal-bound .sky-grey { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6a7a8a 0%, #9aacba 40%, transparent 100%); }
.scn-vassal-bound .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%); }
.scn-vassal-bound .post { position:absolute; bottom:20%; left:50%; width:6px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5%; }
.scn-vassal-bound .figure-bound { position:absolute; bottom:22%; left:42%; width:18px; height:38px; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vb-figure 10s ease-in-out infinite; }
.scn-vassal-bound .chain-a { position:absolute; bottom:30%; left:44%; width:2px; height:25px; background: #6a7a7a; border-radius:20%; animation: vb-chain-a 5s ease-in-out infinite alternate; }
.scn-vassal-bound .chain-b { position:absolute; bottom:30%; left:48%; width:2px; height:25px; background: #7a8a8a; border-radius:20%; animation: vb-chain-b 5s ease-in-out infinite alternate-reverse; }
.scn-vassal-bound .shackle { position:absolute; bottom:28%; left:44%; width:8px; height:6px; background: #6a6a5a; border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-vassal-bound .cloud-c { position:absolute; top:15%; right:0; width:55px; height:15px; background: rgba(180,190,200,.35); border-radius:50%; filter:blur(5px); animation: vb-cloud 60s linear infinite; }
@keyframes vb-figure { 0% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(1px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-1px) translateY(2px) rotate(-1deg) } }
@keyframes vb-chain-a { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(5deg) } 100% { transform: translateX(-2px) rotate(-5deg) } }
@keyframes vb-chain-b { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(-5deg) } 100% { transform: translateX(2px) rotate(5deg) } }
@keyframes vb-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

.scn-double-vantage {
  background: linear-gradient(180deg, #5a6b7a 0%, #3a4a5a 30%, #2a3a4a 60%, #1a2a3a 100%),
              radial-gradient(ellipse at 50% 80%, #8a9aaa 0%, transparent 60%);
}
.scn-double-vantage .sky-dv {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7a8b9a 0%, #5a6b7a 40%, transparent 100%);
  animation: dv-sky 12s ease-in-out infinite alternate;
}
.scn-double-vantage .ground-dv {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #2a3a2a 0%, #3a4a3a 50%, #4a5a4a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,.5);
  animation: dv-ground 15s ease-in-out infinite alternate;
}
.scn-double-vantage .figure-dv {
  position: absolute; bottom: 22%; left: 40%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dv-figure 4s ease-in-out infinite;
}
.scn-double-vantage .offering-dv {
  position: absolute; bottom: 32%; left: 43%;
  width: 12px; height: 12px;
  background: radial-gradient(circle, #e0c080 0%, #c0a060 50%, #806040 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #c0a060, 0 0 40px 12px rgba(192,160,96,.4);
  animation: dv-glow 3s ease-in-out infinite alternate;
}
.scn-double-vantage .path-dv {
  position: absolute; bottom: 12%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(0deg, #4a3a2a, #3a2a1a 50%, #2a1a0a);
  border-radius: 50%;
  filter: blur(2px);
  animation: dv-path 20s ease-in-out infinite;
}
.scn-double-vantage .thorn-dv {
  position: absolute; bottom: 15%; left: 28%; width: 4px; height: 14px;
  background: #3a2a1a;
  border-radius: 50% 50% 0 0;
  transform: rotate(-15deg);
  animation: dv-thorn 6s ease-in-out infinite;
}
@keyframes dv-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes dv-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes dv-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(6px) translateY(0) rotate(-1deg) } 75% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes dv-glow { 0% { box-shadow: 0 0 15px 4px #c0a060, 0 0 30px 8px rgba(192,160,96,.3); opacity: .8 } 50% { box-shadow: 0 0 25px 8px #e0c080, 0 0 50px 15px rgba(224,192,128,.5); opacity: 1 } 100% { box-shadow: 0 0 18px 5px #c0a060, 0 0 35px 10px rgba(192,160,96,.35); opacity: .9 } }
@keyframes dv-path { 0% { transform: scaleX(1) } 50% { transform: scaleX(.95) } 100% { transform: scaleX(1) } }
@keyframes dv-thorn { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } }

.scn-forsaken-fault {
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 40%, #1a2a3a 70%, #0a1a2a 100%),
              radial-gradient(ellipse at 50% 85%, #6a7a8a 0%, transparent 70%);
}
.scn-forsaken-fault .sky-ff {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 50%, transparent 100%);
  animation: ff-sky 14s ease-in-out infinite alternate;
}
.scn-forsaken-fault .ground-ff {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #1a2a1a 0%, #2a3a2a 40%, #3a4a3a 100%);
  border-radius: 40% 40% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 15px 25px rgba(0,0,0,.6);
  animation: ff-ground 18s ease-in-out infinite alternate;
}
.scn-forsaken-fault .figure-ff {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 28px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ff-figure 5s ease-in-out infinite;
}
.scn-forsaken-fault .staff-ff {
  position: absolute; bottom: 15%; left: 46%; width: 3px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  transform: rotate(10deg);
  animation: ff-staff 6s ease-in-out infinite;
}
.scn-forsaken-fault .shadow-ff {
  position: absolute; bottom: 12%; left: 35%; right: 30%; height: 6%;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: ff-shadow 4s ease-in-out infinite;
}
.scn-forsaken-fault .tree-branch-ff {
  position: absolute; top: 30%; right: 10%; width: 50px; height: 3px;
  background: #2a1a0a;
  border-radius: 50%;
  transform: rotate(-20deg);
  animation: ff-branch 8s ease-in-out infinite;
}
@keyframes ff-sky { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes ff-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ff-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 30% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 60% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes ff-staff { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(12deg) } }
@keyframes ff-shadow { 0% { opacity: .3 } 50% { opacity: .5 } 100% { opacity: .3 } }
@keyframes ff-branch { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-18deg) } 100% { transform: rotate(-20deg) } }

.scn-acquaintance-strange {
  background: linear-gradient(0deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 70%, #4a4a5a 100%),
              radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 70%);
}
.scn-acquaintance-strange .wall-as {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(0deg, #2a2a3a, #3a3a4a 50%, #4a4a5a);
  box-shadow: inset 0 0 30px rgba(0,0,0,.4);
  animation: as-wall 10s ease-in-out infinite;
}
.scn-acquaintance-strange .window-as {
  position: absolute; top: 20%; left: 35%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, #6a7a8a 0%, #3a4a5a 50%, #1a2a3a 100%);
  border: 2px solid #1a1a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 15px rgba(0,0,0,.5);
  animation: as-window 12s ease-in-out infinite alternate;
}
.scn-acquaintance-strange .figure-as {
  position: absolute; bottom: 25%; left: 45%;
  width: 26px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: as-figure 6s ease-in-out infinite;
}
.scn-acquaintance-strange .shadow-as {
  position: absolute; bottom: 18%; left: 38%; right: 35%; height: 10%;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: as-shadow 5s ease-in-out infinite;
}
.scn-acquaintance-strange .lamp-as {
  position: absolute; bottom: 40%; left: 30%;
  width: 8px; height: 12px;
  background: radial-gradient(circle, #b09060 0%, #806040 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 18px 4px #b09060, 0 0 35px 8px rgba(176,144,96,.3);
  animation: as-lamp 3s ease-in-out infinite alternate;
}
.scn-acquaintance-strange .chair-as {
  position: absolute; bottom: 22%; left: 55%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
  border-radius: 10% 10% 5% 5%;
  transform-origin: bottom center;
  animation: as-chair 8s ease-in-out infinite;
}
@keyframes as-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes as-window { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .7 } }
@keyframes as-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes as-shadow { 0% { opacity: .3 } 50% { opacity: .5 } 100% { opacity: .3 } }
@keyframes as-lamp { 0% { box-shadow: 0 0 12px 3px #b09060, 0 0 25px 6px rgba(176,144,96,.2); opacity: .8 } 50% { box-shadow: 0 0 22px 6px #d0b080, 0 0 45px 12px rgba(208,176,128,.4); opacity: 1 } 100% { box-shadow: 0 0 15px 4px #b09060, 0 0 30px 8px rgba(176,144,96,.25); opacity: .9 } }
@keyframes as-chair { 0% { transform: scale(1) } 50% { transform: scale(.95) } 100% { transform: scale(1) } }

.scn-hate-me-now {
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 35%, #1a2a3a 65%, #0a1a2a 100%),
              radial-gradient(ellipse at 50% 75%, #5a6a7a 0%, transparent 60%);
}
.scn-hate-me-now .sky-hm {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 50%, transparent 100%);
  animation: hm-sky 16s ease-in-out infinite alternate;
}
.scn-hate-me-now .clouds-hm {
  position: absolute; top: 8%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 20% 50%, rgba(255,255,255,.1) 0%, transparent 50%),
              radial-gradient(ellipse at 50% 60%, rgba(255,255,255,.08) 0%, transparent 50%),
              radial-gradient(ellipse at 80% 40%, rgba(255,255,255,.06) 0%, transparent 50%);
  filter: blur(10px);
  animation: hm-clouds 30s linear infinite;
}
.scn-hate-me-now .rain-hm {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 4px, rgba(255,255,255,.05) 4px, transparent 8px);
  background-size: 100% 8px;
  animation: hm-rain 1s linear infinite;
}
.scn-hate-me-now .figure-hm {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hm-figure 7s ease-in-out infinite;
}
.scn-hate-me-now .ground-hm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a2a1a 0%, #2a3a2a 50%, #3a4a3a 100%);
  border-radius: 30% 30% 0 0 / 70% 70% 0 0;
  box-shadow: inset 0 15px 25px rgba(0,0,0,.5);
  animation: hm-ground 20s ease-in-out infinite alternate;
}
.scn-hate-me-now .shadow-hm {
  position: absolute; bottom: 18%; left: 40%; right: 40%; height: 5%;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(5px);
  animation: hm-shadow 6s ease-in-out infinite;
}
@keyframes hm-sky { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes hm-clouds { 0% { transform: translateX(-30px) } 50% { transform: translateX(30px) } 100% { transform: translateX(-30px) } }
@keyframes hm-rain { 0% { background-position: 0 0 } 100% { background-position: 0 8px } }
@keyframes hm-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 30% { transform: translateX(-50%) translateY(-2px) rotate(2deg) } 60% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes hm-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hm-shadow { 0% { opacity: .2 } 50% { opacity: .5 } 100% { opacity: .2 } }

.scn-countenance-fill {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #3a2a3a 100%),
              radial-gradient(ellipse at 50% 20%, #4a3a4a 0%, transparent 70%);
}
.scn-countenance-fill .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a223a 0%, #3a324a 30%, #2a223a 100%); }
.scn-countenance-fill .desk { position:absolute; bottom:10%; left:15%; right:10%; height:18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:4% 4% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.5); }
.scn-countenance-fill .candle { position:absolute; bottom:28%; left:35%; width:10px; height:30px; background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-countenance-fill .flame { position:absolute; bottom:46%; left:35.3%; width:8px; height:12px; background: radial-gradient(circle, #ffd060 0%, #c08030 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 6px #ffc040, 0 0 40px 12px rgba(255,192,64,.3); animation: cf-flame 1.5s ease-in-out infinite alternate; }
.scn-countenance-fill .figure-slumped { position:absolute; bottom:28%; left:50%; width:30px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cf-slump 4s ease-in-out infinite; }
.scn-countenance-fill .shadow-desk { position:absolute; bottom:10%; left:0; right:0; height:10%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: cf-shadow 3s ease-in-out infinite alternate; }
.scn-countenance-fill .dust-mote { position:absolute; top:20%; left:20%; width:4px; height:4px; background: rgba(255,200,100,.3); border-radius:50%; filter: blur(2px); animation: cf-dust 8s linear infinite; }
@keyframes cf-flame { 0% { transform: scaleY(1) rotate(-1deg); opacity:.9 } 50% { transform: scaleY(1.2) rotate(2deg); opacity:1 } 100% { transform: scaleY(0.85) rotate(-2deg); opacity:.8 } }
@keyframes cf-slump { 0% { transform: rotate(0deg) translateY(0) } 30% { transform: rotate(-3deg) translateY(2px) } 60% { transform: rotate(4deg) translateY(1px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes cf-shadow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes cf-dust { 0% { transform: translate(0,0) scale(1); opacity:0 } 25% { opacity:.6 } 75% { opacity:.4 } 100% { transform: translate(60px,-30px) scale(0.5); opacity:0 } }

.scn-farewell-dear-possessing {
  background: linear-gradient(180deg, #6a7a8a 0%, #8a9aae 40%, #9aaece 100%),
              radial-gradient(ellipse at 60% 30%, #b0c0d0 0%, transparent 70%);
}
.scn-farewell-dear-possessing .sky-overcast { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #8a9aaa 0%, #a0b0c0 60%, #c0d0e0 100%); animation: fd-sky 10s ease-in-out infinite alternate; }
.scn-farewell-dear-possessing .ground-path { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #5a6a5a 0%, #4a5a4a 100%); border-radius:60% 40% 0 0 / 90% 70% 0 0; }
.scn-farewell-dear-possessing .tree-left { position:absolute; bottom:30%; left:10%; width:20px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius:20% 20% 10% 10%; transform-origin: bottom; animation: fd-tree 6s ease-in-out infinite; }
.scn-farewell-dear-possessing .figure-a { position:absolute; bottom:25%; left:35%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fd-walk-a 4s ease-in-out infinite; }
.scn-farewell-dear-possessing .figure-b { position:absolute; bottom:25%; left:55%; width:22px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fd-walk-b 4s ease-in-out infinite 2s; }
.scn-farewell-dear-possessing .cloud-gray { position:absolute; top:15%; left:20%; width:100px; height:20px; background: rgba(180,190,200,.4); border-radius:50%; filter: blur(8px); animation: fd-drift 30s linear infinite; }
.scn-farewell-dear-possessing .fog { position:absolute; bottom:0; left:0; right:0; height:40%; background: radial-gradient(ellipse at 50% 100%, rgba(200,210,220,.3) 0%, transparent 70%); animation: fd-fog 12s ease-in-out infinite alternate; }
@keyframes fd-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes fd-tree { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }
@keyframes fd-walk-a { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes fd-walk-b { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(-4px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-8px) translateY(0) rotate(1deg) } 75% { transform: translateX(-12px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(-16px) translateY(0) rotate(0) } }
@keyframes fd-drift { 0% { transform: translateX(-20px) } 100% { transform: translateX(120vw) } }
@keyframes fd-fog { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }

.scn-dream-king-waking {
  background: linear-gradient(180deg, #0e0e1e 0%, #1a1a30 60%, #2a2a44 100%),
              radial-gradient(ellipse at 50% 80%, #3a3a5a 0%, transparent 60%);
}
.scn-dream-king-waking .bg-night { position:absolute; inset:0; background: linear-gradient(90deg, #0a0a1a 0%, #1a1a30 50%, #0a0a1a 100%); }
.scn-dream-king-waking .window-moon { position:absolute; top:12%; right:15%; width:60px; height:70px; background: #0a0a1a; border:2px solid #3a4a5a; border-radius:8px; box-shadow: inset 0 0 20px rgba(200,220,255,.1); }
.scn-dream-king-waking .bed { position:absolute; bottom:6%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius:20% 20% 0 0 / 80% 80% 0 0; box-shadow: inset 0 8px 14px rgba(0,0,0,.5); }
.scn-dream-king-waking .figure-sitting { position:absolute; bottom:20%; left:45%; width:30px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dk-sit 6s ease-in-out infinite; }
.scn-dream-king-waking .pillow { position:absolute; bottom:10%; left:40%; width:24px; height:12px; background: #3a2a2a; border-radius:50%; transform: rotate(-5deg); animation: dk-pillow 4s ease-in-out infinite alternate; }
.scn-dream-king-waking .dream-cloud { position:absolute; top:15%; left:30%; width:50px; height:30px; background: radial-gradient(circle, rgba(200,200,255,.3) 0%, rgba(200,200,255,.05) 70%); border-radius:50%; filter: blur(10px); animation: dk-dream 5s ease-in-out infinite alternate; }
.scn-dream-king-waking .moonlight-beam { position:absolute; top:12%; right:15%; width:60px; height:70px; background: linear-gradient(135deg, rgba(200,220,255,.15) 0%, transparent 100%); transform: skewX(-10deg); animation: dk-beam 8s ease-in-out infinite alternate; }
@keyframes dk-sit { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes dk-pillow { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes dk-dream { 0% { transform: scale(0.8) translateX(0); opacity:.3 } 50% { transform: scale(1.2) translateX(10px); opacity:.6 } 100% { transform: scale(0.9) translateX(-5px); opacity:.2 } }
@keyframes dk-beam { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }

.scn-set-me-light {
  background: linear-gradient(180deg, #4a5a6a 0%, #5a6a7a 40%, #3a4a5a 100%),
              radial-gradient(ellipse at 30% 40%, #6a7a8a 0%, transparent 70%);
}
.scn-set-me-light .sky-storm { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3a4a5a 0%, #5a6a7a 60%, #7a8a9a 100%); animation: sml-sky 8s ease-in-out infinite alternate; }
.scn-set-me-light .clouds-dark { position:absolute; top:10%; left:0; right:0; height:25%; background: radial-gradient(ellipse at 20% 50%, #2a3a4a 0%, transparent 70%), radial-gradient(ellipse at 80% 30%, #2a3a4a 0%, transparent 60%); filter: blur(6px); animation: sml-clouds 20s linear infinite; }
.scn-set-me-light .hill { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius:70% 30% 0 0 / 90% 50% 0 0; }
.scn-set-me-light .figure-defiant { position:absolute; bottom:25%; left:40%; width:28px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sml-defiant 3s ease-in-out infinite; }
.scn-set-me-light .rock { position:absolute; bottom:20%; left:20%; width:30px; height:20px; background: #3a3a2a; border-radius:40% 30% 30% 30%; transform: rotate(10deg); animation: sml-rock 6s ease-in-out infinite alternate; }
.scn-set-me-light .lightning-flash { position:absolute; top:22%; left:50%; width:2px; height:40px; background: #c0d0e0; border-radius:2px; box-shadow: 0 0 20px 8px rgba(200,220,255,.6), 0 0 40px 12px rgba(200,220,255,.3); animation: sml-flash 4s ease-in-out infinite; }
.scn-set-me-light .rain-slant { position:absolute; inset:0; background: repeating-linear-gradient(45deg, rgba(180,200,220,.08) 0px, rgba(180,200,220,.08) 2px, transparent 2px, transparent 6px); animation: sml-rain 1s linear infinite; }
@keyframes sml-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sml-clouds { 0% { transform: translateX(0) } 100% { transform: translateX(-80px) } }
@keyframes sml-defiant { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes sml-rock { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(15deg) translateX(2px) } 100% { transform: rotate(8deg) translateX(0) } }
@keyframes sml-flash { 0% { opacity:0 } 10% { opacity:1 } 15% { opacity:0 } 20% { opacity:.8 } 25% { opacity:0 } 100% { opacity:0 } }
@keyframes sml-rain { 0% { background-position: 0 0 } 100% { background-position: 0 20px } }

.scn-sonnet-cxvii {
  background: linear-gradient(180deg, #6c7a8a 0%, #4e5a66 40%, #3c464d 70%, #2d353b 100%),
              radial-gradient(ellipse at 50% 100%, #5a6a7a 0%, transparent 60%);
}
.scn-sonnet-cxvii .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #7a8c9e 0%, #5c6a7a 50%, #4a5666 100%); animation: sc17-sky 15s ease-in-out infinite alternate; }
.scn-sonnet-cxvii .fog { position: absolute; inset: 20% 0 0 0; background: linear-gradient(180deg, rgba(180,190,200,0.4) 0%, rgba(160,175,190,0.2) 50%, transparent 100%); filter: blur(10px); animation: sc17-fog 25s ease-in-out infinite alternate; }
.scn-sonnet-cxvii .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #3c4a55 0%, #2a3640 100%); border-radius: 70% 30% 0 0 / 100% 100% 0 0; animation: sc17-sea 8s ease-in-out infinite alternate; }
.scn-sonnet-cxvii .ship-hull { position: absolute; bottom: 40%; left: 38%; width: 100px; height: 30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: sc17-hull 6s ease-in-out infinite; }
.scn-sonnet-cxvii .sail { position: absolute; bottom: 52%; left: 44%; width: 28px; height: 50px; background: linear-gradient(180deg, #e8e0d0 0%, #c4b8a8 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-5deg); animation: sc17-sail 10s ease-in-out infinite alternate; }
.scn-sonnet-cxvii .figure { position: absolute; bottom: 44%; left: 42%; width: 18px; height: 32px; background: linear-gradient(180deg, #2a2a2e 0%, #1a1a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc17-figure 4s ease-in-out infinite; }
.scn-sonnet-cxvii .gull-1 { position: absolute; top: 18%; left: 20%; width: 30px; height: 10px; background: #b0b8c0; border-radius: 70% 70% 0 0; clip-path: polygon(0 50%, 100% 50%, 80% 0, 20% 0); animation: sc17-gull 20s linear infinite; }
.scn-sonnet-cxvii .gull-2 { position: absolute; top: 24%; right: 25%; width: 24px; height: 8px; background: #a0aab4; border-radius: 70% 70% 0 0; clip-path: polygon(0 50%, 100% 50%, 80% 0, 20% 0); animation: sc17-gull 25s linear infinite reverse; }
@keyframes sc17-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes sc17-fog { 0% { opacity: 0.3; transform: translateY(0) scale(1); } 50% { opacity: 0.6; transform: translateY(-5px) scale(1.02); } 100% { opacity: 0.2; transform: translateY(0) scale(0.98); } }
@keyframes sc17-sea { 0% { transform: translateY(0); } 25% { transform: translateY(-3px); } 50% { transform: translateY(0); } 75% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes sc17-hull { 0% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(-2px, 1px) rotate(-1deg); } 50% { transform: translate(0, -1px) rotate(0deg); } 75% { transform: translate(2px, 1px) rotate(1deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes sc17-sail { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(0.95); } 100% { transform: rotate(-5deg) scaleX(1); } }
@keyframes sc17-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(4px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes sc17-gull { 0% { transform: translateX(0); } 100% { transform: translateX(100vw); } }

.scn-sonnet-cxvii-part2 {
  background: linear-gradient(180deg, #4e5a66 0%, #3c464d 50%, #2d353b 100%),
              radial-gradient(ellipse at 50% 10%, #5a6a7a 0%, transparent 70%);
}
.scn-sonnet-cxvii-part2 .bg { position: absolute; inset: 0; background: linear-gradient(180deg, #5c6a7a 0%, #3c464d 100%); animation: s17b-bg 12s ease-in-out infinite alternate; }
.scn-sonnet-cxvii-part2 .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2d353b 0%, #1f262a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; }
.scn-sonnet-cxvii-part2 .figure-kneeling { position: absolute; bottom: 20%; left: 50%; width: 40px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a1e 0%, #111115 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; clip-path: polygon(50% 10%, 90% 30%, 80% 60%, 60% 80%, 40% 80%, 20% 60%, 10% 30%); animation: s17b-kneel 5s ease-in-out infinite; }
.scn-sonnet-cxvii-part2 .arms { position: absolute; bottom: 45%; left: 44%; width: 40px; height: 12px; background: #1a1a1e; border-radius: 50% 50% 0 0; transform: rotate(-20deg); animation: s17b-arms 4s ease-in-out infinite alternate; }
.scn-sonnet-cxvii-part2 .light-beam { position: absolute; bottom: 40%; left: 45%; width: 40px; height: 60px; background: linear-gradient(180deg, rgba(255,230,180,0.3) 0%, transparent 100%); clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%); filter: blur(4px); animation: s17b-light 6s ease-in-out infinite alternate; }
.scn-sonnet-cxvii-part2 .shadow { position: absolute; bottom: 0; left: 35%; width: 100px; height: 20px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(6px); animation: s17b-shadow 5s ease-in-out infinite alternate; }
@keyframes s17b-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes s17b-kneel { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-3px) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(1deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes s17b-arms { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-30deg) translateY(2px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes s17b-light { 0% { opacity: 0.3; transform: scaleY(0.9); } 50% { opacity: 0.7; transform: scaleY(1.1); } 100% { opacity: 0.4; transform: scaleY(1); } }
@keyframes s17b-shadow { 0% { width: 100px; opacity: 0.4; } 50% { width: 90px; opacity: 0.3; } 100% { width: 100px; opacity: 0.4; } }

.scn-sonnet-cxviii {
  background: linear-gradient(180deg, #4b565e 0%, #3a434a 50%, #2d353b 100%),
              radial-gradient(ellipse at 50% 50%, #5a6670 0%, transparent 70%);
}
.scn-sonnet-cxviii .wall { position: absolute; inset: 0; background: linear-gradient(180deg, #4b565e 0%, #374049 100%); animation: sc18-wall 14s ease-in-out infinite alternate; }
.scn-sonnet-cxviii .table { position: absolute; bottom: 20%; left: 10%; right: 10%; height: 20%; background: linear-gradient(180deg, #3a3028 0%, #2a1e14 100%); border-radius: 5% 5% 0 0; box-shadow: 0 -8px 16px rgba(0,0,0,0.4); }
.scn-sonnet-cxviii .bowl { position: absolute; bottom: 28%; left: 38%; width: 60px; height: 30px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 30% 30%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3); animation: sc18-bowl 8s ease-in-out infinite alternate; }
.scn-sonnet-cxviii .spoon { position: absolute; bottom: 35%; left: 42%; width: 40px; height: 6px; background: #b0a090; border-radius: 20% 20% 0 0; transform: rotate(30deg); animation: sc18-spoon 6s ease-in-out infinite alternate; }
.scn-sonnet-cxviii .hand { position: absolute; bottom: 40%; left: 35%; width: 20px; height: 30px; background: linear-gradient(180deg, #c8b8a0 0%, #a09070 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc18-hand 4s ease-in-out infinite; }
.scn-sonnet-cxviii .steam-1 { position: absolute; bottom: 44%; left: 40%; width: 30px; height: 40px; background: radial-gradient(ellipse, rgba(200,190,180,0.3) 0%, transparent 70%); filter: blur(6px); animation: sc18-steam 12s ease-in-out infinite; }
.scn-sonnet-cxviii .steam-2 { position: absolute; bottom: 44%; left: 44%; width: 25px; height: 35px; background: radial-gradient(ellipse, rgba(200,190,180,0.2) 0%, transparent 70%); filter: blur(5px); animation: sc18-steam 14s ease-in-out infinite reverse; }
@keyframes sc18-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes sc18-bowl { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes sc18-spoon { 0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(20deg) translateY(2px); } 100% { transform: rotate(30deg) translateY(0); } }
@keyframes sc18-hand { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(5deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-6px) translateY(-1px) rotate(-5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes sc18-steam { 0% { transform: translateY(0) scale(1); opacity: 0.3; } 50% { transform: translateY(-15px) scale(1.2); opacity: 0.6; } 100% { transform: translateY(0) scale(1); opacity: 0.2; } }

.scn-sonnet-cxviii-part2 {
  background: linear-gradient(180deg, #2d353b 0%, #1f262a 50%, #151a1e 100%),
              radial-gradient(ellipse at 50% 30%, #3c464d 0%, transparent 70%);
}
.scn-sonnet-cxviii-part2 .bg-dark { position: absolute; inset: 0; background: linear-gradient(180deg, #2d353b 0%, #1a1e22 100%); filter: blur(2px); }
.scn-sonnet-cxviii-part2 .bed { position: absolute; bottom: 10%; left: 15%; right: 15%; height: 40%; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 8px 16px rgba(0,0,0,0.5); }
.scn-sonnet-cxviii-part2 .pillow { position: absolute; bottom: 42%; left: 30%; width: 60px; height: 20px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40%; animation: s18b-pillow 7s ease-in-out infinite alternate; }
.scn-sonnet-cxviii-part2 .figure-ill { position: absolute; bottom: 35%; left: 35%; width: 50px; height: 50px; background: linear-gradient(180deg, #2a2a2e 0%, #15151a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: s18b-figure 9s ease-in-out infinite alternate; }
.scn-sonnet-cxviii-part2 .bottle { position: absolute; bottom: 48%; left: 60%; width: 14px; height: 30px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2214 100%); border-radius: 20% 20% 10% 10%; animation: s18b-bottle 5s ease-in-out infinite; }
.scn-sonnet-cxviii-part2 .hand-reach { position: absolute; bottom: 50%; left: 50%; width: 16px; height: 20px; background: #c8b8a0; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: s18b-hand 4s ease-in-out infinite; }
@keyframes s18b-pillow { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes s18b-figure { 0% { transform: translateX(0) scale(1); } 25% { transform: translateX(4px) scale(0.98); } 50% { transform: translateX(0) scale(1); } 75% { transform: translateX(-2px) scale(0.96); } 100% { transform: translateX(0) scale(1); } }
@keyframes s18b-bottle { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes s18b-hand { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-10px) translateY(2px) rotate(10deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(8px) translateY(1px) rotate(-8deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }

/* better-part-remains */
.scn-better-part-remains {
  background: linear-gradient(180deg, #2a1e1a 0%, #3d2b23 40%, #1f1512 100%),
              radial-gradient(ellipse at 60% 30%, #3a2b20 0%, transparent 70%);
}
.scn-better-part-remains .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #1a1210 0%, #2a1e18 50%, #1f1512 100%); }
.scn-better-part-remains .window-glow { position:absolute; top:15%; right:20%; width:60px; height:80px; background: radial-gradient(circle at 50% 50%, #b08030 0%, #6b4a1a 60%, transparent 80%); border-radius: 4px; box-shadow: 0 0 40px 15px rgba(176,128,48,.6); animation: bpr-window 5s ease-in-out infinite alternate; }
.scn-better-part-remains .candle-glow { position:absolute; bottom:30%; left:40%; width:12px; height:18px; background: radial-gradient(circle at 50% 0, #ffd080 0%, #c08040 60%, transparent 90%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 30px 12px #c08040; animation: bpr-candle 2s ease-in-out infinite alternate; }
.scn-better-part-remains .figure-sit { position:absolute; bottom:20%; left:45%; width:24px; height:40px; background: linear-gradient(180deg, #15100e 0%, #0d0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bpr-sit 6s ease-in-out infinite; }
.scn-better-part-remains .spirit-rise { position:absolute; top:20%; left:55%; width:10px; height:10px; background: radial-gradient(circle, #ffe080 0%, #d0a050 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,224,128,.5); animation: bpr-spirit 10s ease-in-out infinite; }
.scn-better-part-remains .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #0f0b08 0%, transparent 100%); animation: bpr-shadow 8s ease-in-out infinite alternate; }

@keyframes bpr-window { 0% { opacity:0.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.7; transform:scale(0.98); } }
@keyframes bpr-candle { 0% { transform:translateY(0) scale(1); box-shadow: 0 0 25px 10px #c08040; } 50% { transform:translateY(-2px) scale(1.1); box-shadow: 0 0 35px 15px #d09050; } 100% { transform:translateY(0) scale(0.95); box-shadow: 0 0 20px 8px #b07030; } }
@keyframes bpr-sit { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-3px) rotate(-2deg); } 50% { transform:translateX(0) rotate(2deg); } 75% { transform:translateX(3px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes bpr-spirit { 0% { transform:translateY(0) scale(1); opacity:0.7; } 50% { transform:translateY(-25px) scale(1.3); opacity:1; } 100% { transform:translateY(-50px) scale(1.1); opacity:0.5; } }
@keyframes bpr-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

/* food-to-life */
.scn-food-to-life {
  background: linear-gradient(180deg, #7a7a7a 0%, #5e5e5e 50%, #3a3a3a 100%),
              radial-gradient(ellipse at 50% 0%, #9a9a9a 0%, transparent 80%);
}
.scn-food-to-life .bg-overcast { position:absolute; inset:0; background: linear-gradient(0deg, #404040 0%, #606060 50%, #808080 100%); }
.scn-food-to-life .window-light { position:absolute; top:10%; left:20%; width:80px; height:100px; background: radial-gradient(circle at 50% 50%, #c0c0c0 0%, #909090 60%, transparent 80%); border-radius: 6px; box-shadow: 0 0 30px 10px rgba(192,192,192,.3); animation: ftl-window 8s ease-in-out infinite alternate; }
.scn-food-to-life .table-wood { position:absolute; bottom:15%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #6a5440 0%, #4a3a2a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.4); }
.scn-food-to-life .plate-food { position:absolute; bottom:25%; left:35%; width:60px; height:30px; background: radial-gradient(ellipse at 50% 50%, #c0a070 0%, #a08050 60%, #705030 100%); border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: ftl-plate 6s ease-in-out infinite; }
.scn-food-to-life .figure-reach { position:absolute; bottom:15%; right:20%; width:30px; height:60px; background: linear-gradient(180deg, #2a2520 0%, #1a1510 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ftl-fig 7s ease-in-out infinite; }
.scn-food-to-life .hand-extend { position:absolute; bottom:35%; right:25%; width:8px; height:20px; background: #2a2520; border-radius: 40% 40% 20% 20%; transform-origin: bottom; animation: ftl-hand 7s ease-in-out infinite; }

@keyframes ftl-window { 0% { opacity:0.5; transform:scaleY(1); } 50% { opacity:0.8; transform:scaleY(1.05); } 100% { opacity:0.6; transform:scaleY(0.95); } }
@keyframes ftl-plate { 0% { transform:translateY(0) scale(1); } 30% { transform:translateY(-3px) scale(1.02); } 60% { transform:translateY(2px) scale(0.98); } 100% { transform:translateY(0) scale(1); } }
@keyframes ftl-fig { 0% { transform:translateX(0) rotate(0deg); } 20% { transform:translateX(-5px) rotate(-3deg); } 40% { transform:translateX(-8px) rotate(-5deg); } 60% { transform:translateX(-5px) rotate(-3deg); } 80% { transform:translateX(0) rotate(0deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ftl-hand { 0% { transform:rotate(0deg) scaleY(1); } 25% { transform:rotate(-20deg) scaleY(1.2); } 50% { transform:rotate(-35deg) scaleY(1.3); } 75% { transform:rotate(-10deg) scaleY(1.1); } 100% { transform:rotate(0deg) scaleY(1); } }

/* item-gluttoning-miser */
.scn-item-gluttoning-miser {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2420 30%, #1e1a16 100%),
              radial-gradient(ellipse at 50% 20%, #3a3028 0%, transparent 70%);
}
.scn-item-gluttoning-miser .bg-vault { position:absolute; inset:0; background: linear-gradient(135deg, #12100e 0%, #1e1a16 50%, #0e0c0a 100%); }
.scn-item-gluttoning-miser .spotlight { position:absolute; top:5%; left:40%; width:100px; height:200px; background: radial-gradient(ellipse at 50% 0%, #8a7a5a 0%, transparent 70%); border-radius: 50% 50% 0 0; opacity:0.4; animation: igm-spot 6s ease-in-out infinite alternate; }
.scn-item-gluttoning-miser .miser-huddle { position:absolute; bottom:10%; left:45%; width:40px; height:50px; background: linear-gradient(180deg, #1a1612 0%, #0d0a08 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: igm-miser 5s ease-in-out infinite; }
.scn-item-gluttoning-miser .pile-left { position:absolute; bottom:10%; left:25%; width:60px; height:40px; background: repeating-linear-gradient(45deg, #6a5a3a 0px, #8a7a5a 4px, #5a4a2a 8px); border-radius: 40% 40% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: igm-pile 8s ease-in-out infinite alternate; }
.scn-item-gluttoning-miser .pile-right { position:absolute; bottom:10%; right:20%; width:70px; height:50px; background: repeating-linear-gradient(-30deg, #5a4a2a 0px, #7a6a4a 5px, #4a3a1a 10px); border-radius: 50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: igm-pile 10s ease-in-out infinite alternate-reverse; }
.scn-item-gluttoning-miser .coin-spin { position:absolute; bottom:25%; left:35%; width:6px; height:6px; background: radial-gradient(circle, #d0b070 0%, #a08040 70%); border-radius: 50%; box-shadow: 0 0 8px 2px #a08040; animation: igm-coin 2s ease-in-out infinite; }

@keyframes igm-spot { 0% { opacity:0.3; transform:scaleY(1); } 50% { opacity:0.6; transform:scaleY(1.2); } 100% { opacity:0.4; transform:scaleY(0.8); } }
@keyframes igm-miser { 0% { transform:rotate(0deg) translateY(0); } 25% { transform:rotate(5deg) translateY(-2px); } 50% { transform:rotate(-3deg) translateY(0); } 75% { transform:rotate(2deg) translateY(-1px); } 100% { transform:rotate(0deg) translateY(0); } }
@keyframes igm-pile { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-3px) scale(1.02); } 100% { transform:translateY(0) scale(0.98); } }
@keyframes igm-coin { 0% { transform:translateY(0) scale(1) rotate(0deg); } 50% { transform:translateY(-10px) scale(1.2) rotate(180deg); } 100% { transform:translateY(0) scale(1) rotate(360deg); } }

/* barren-new-pride */
.scn-barren-new-pride {
  background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 40%, #2a2a2a 100%),
              radial-gradient(ellipse at 50% 0%, #8a8a8a 0%, transparent 80%);
}
.scn-barren-new-pride .bg-desk { position:absolute; inset:0; background: linear-gradient(0deg, #3a3a3a 0%, #5a5a5a 80%, #7a7a7a 100%); }
.scn-barren-new-pride .desk-top { position:absolute; bottom:20%; left:15%; right:15%; height:15%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.4); }
.scn-barren-new-pride .paper-blank { position:absolute; bottom:25%; left:35%; width:80px; height:60px; background: linear-gradient(180deg, #d0c8b0 0%, #b0a890 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: bnp-paper 9s ease-in-out infinite; }
.scn-barren-new-pride .quill-point { position:absolute; bottom:35%; left:30%; width:4px; height:30px; background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom; animation: bnp-quill 4s ease-in-out infinite; }
.scn-barren-new-pride .inkwell-drop { position:absolute; bottom:22%; left:25%; width:14px; height:18px; background: radial-gradient(circle at 50% 30%, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 6px 2px #0a0a0a; animation: bnp-ink 5s ease-in-out infinite; }
.scn-barren-new-pride .crumple-ball { position:absolute; bottom:30%; right:20%; width:16px; height:16px; background: #a09880; border-radius: 50%; box-shadow: inset -2px -2px 4px rgba(0,0,0,.3); animation: bnp-crumple 7s ease-in-out infinite; }

@keyframes bnp-paper { 0% { transform:translateY(0) rotate(0deg); } 30% { transform:translateY(-2px) rotate(1deg); } 60% { transform:translateY(0) rotate(-1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes bnp-quill { 0% { transform:rotate(0deg) scaleY(1); } 20% { transform:rotate(-5deg) scaleY(1.05); } 40% { transform:rotate(3deg) scaleY(0.95); } 60% { transform:rotate(-2deg) scaleY(1.02); } 80% { transform:rotate(4deg) scaleY(0.98); } 100% { transform:rotate(0deg) scaleY(1); } }
@keyframes bnp-ink { 0% { transform:translateY(0) scale(1); } 25% { transform:translateY(-2px) scale(1.1); } 50% { transform:translateY(1px) scale(0.9); } 75% { transform:translateY(-1px) scale(1.05); } 100% { transform:translateY(0) scale(1); } }
@keyframes bnp-crumple { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(5px) rotate(15deg); } 100% { transform:translateX(0) rotate(0deg); } }

.scn-glass-reality { background: linear-gradient(180deg, #ffeecc 0%, #ffcc88 50%, #c89f60 100%), radial-gradient(ellipse at 50% 30%, #ffe0a0 0%, transparent 60%); }
.scn-glass-reality .mirror-frame { position:absolute; bottom:15%; left:38%; width:140px; height:180px; border:8px solid #8b5e3c; border-radius:4px; background:transparent; box-shadow: inset 0 0 0 2px #6a3f1a; animation: gr-frame 8s ease-in-out infinite alternate; }
.scn-glass-reality .glass { position:absolute; bottom:15%; left:38%; width:140px; height:180px; background: linear-gradient(135deg, rgba(255,255,240,0.3) 0%, rgba(200,180,160,0.15) 100%); border-radius:2px; animation: gr-glass 6s ease-in-out infinite; }
.scn-glass-reality .reflection { position:absolute; bottom:25%; left:44%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 40%, #7a5a3a 0%, #4a2a1a 60%, transparent 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(1px); animation: gr-refl 12s ease-in-out infinite; }
.scn-glass-reality .hand-touching { position:absolute; bottom:30%; left:52%; width:30px; height:40px; background: linear-gradient(180deg, #d4a574 0%, #b08050 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom left; animation: gr-hand 4s ease-in-out infinite alternate; }
.scn-glass-reality .sunray-1 { position:absolute; top:10%; left:20%; width:120px; height:4px; background: linear-gradient(90deg, rgba(255,220,100,0.6) 0%, transparent 100%); border-radius:2px; transform: rotate(-20deg); animation: gr-ray 3s ease-in-out infinite alternate; }
.scn-glass-reality .sunray-2 { position:absolute; top:18%; left:10%; width:90px; height:3px; background: linear-gradient(90deg, rgba(255,220,100,0.4) 0%, transparent 100%); border-radius:2px; transform: rotate(-35deg); animation: gr-ray 5s ease-in-out infinite alternate-reverse; }
@keyframes gr-frame { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.005); } 100% { transform: scaleY(0.995); } }
@keyframes gr-glass { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes gr-refl { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes gr-hand { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(-2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes gr-ray { 0% { opacity: 0.3; width: 80px; } 50% { opacity: 0.8; width: 140px; } 100% { opacity: 0.4; width: 100px; } }

.scn-time-injury { background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 50%, #2a2a3a 100%), radial-gradient(ellipse at 50% 100%, #4a4a5a 0%, transparent 70%); }
.scn-time-injury .overcast-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); animation: ti-sky 10s ease-in-out infinite alternate; }
.scn-time-injury .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2a32 0%, #1a1a22 100%); border-radius: 20% 30% 0 0; }
.scn-time-injury .hand-time { position:absolute; bottom:25%; left:30%; width:80px; height:90px; background: radial-gradient(ellipse at 40% 30%, #8a6a5a 0%, #5a3a2a 50%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ti-hand 5s ease-in-out infinite; }
.scn-time-injury .flower { position:absolute; bottom:20%; left:48%; width:30px; height:40px; background: radial-gradient(circle at 50% 30%, #b87878 0%, #7a4040 60%, #4a2020 100%); border-radius: 50% 50% 20% 20%; animation: ti-flower 7s ease-in-out infinite; }
.scn-time-injury .petal-1 { position:absolute; bottom:22%; left:45%; width:14px; height:10px; background: radial-gradient(ellipse, #c0a0a0 0%, #8a6060 100%); border-radius: 50%; filter: blur(1px); animation: ti-petal 3s ease-in infinite; }
.scn-time-injury .petal-2 { position:absolute; bottom:24%; left:52%; width:12px; height:8px; background: radial-gradient(ellipse, #c0a0a0 0%, #8a6060 100%); border-radius: 50%; filter: blur(1px); animation: ti-petal 4s ease-in infinite 0.5s; }
.scn-time-injury .petal-3 { position:absolute; bottom:20%; left:56%; width:10px; height:7px; background: radial-gradient(ellipse, #c0a0a0 0%, #8a6060 100%); border-radius: 50%; filter: blur(1px); animation: ti-petal 3.5s ease-in infinite 1s; }
@keyframes ti-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes ti-hand { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-4deg) translateY(-5px); } 50% { transform: rotate(2deg) translateY(-2px); } 75% { transform: rotate(-3deg) translateY(-7px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ti-flower { 0% { transform: scale(1) rotate(0deg); opacity: 1; } 50% { transform: scale(0.8) rotate(-10deg); opacity: 0.6; } 100% { transform: scale(0.6) rotate(-20deg); opacity: 0.2; } }
@keyframes ti-petal { 0% { transform: translateY(0) rotate(0deg); opacity: 1; } 50% { transform: translateY(30px) rotate(60deg); opacity: 0.5; } 100% { transform: translateY(60px) rotate(120deg); opacity: 0; } }

.scn-verse-immortal { background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 0%, #4a4a5a 0%, transparent 70%); }
.scn-verse-immortal .bg-overcast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); animation: vi-sky 12s ease-in-out infinite alternate; }
.scn-verse-immortal .quill { position:absolute; bottom:35%; left:42%; width:6px; height:60px; background: linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 100%); border-radius: 2px; transform-origin: bottom center; animation: vi-quill 2s ease-in-out infinite; }
.scn-verse-immortal .ink-line { position:absolute; bottom:20%; left:38%; width:100px; height:3px; background: #1a1a1a; border-radius: 2px; transform-origin: left center; animation: vi-ink 6s linear infinite; }
.scn-verse-immortal .hand-writing { position:absolute; bottom:30%; left:40%; width:35px; height:45px; background: linear-gradient(180deg, #d4b08a 0%, #a08060 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom left; animation: vi-hand 2s ease-in-out infinite; }
.scn-verse-immortal .lamp-flame { position:absolute; top:10%; left:50%; width:12px; height:18px; background: radial-gradient(circle at 50% 30%, #ffe8a0 0%, #d0a050 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,200,100,0.4); animation: vi-flame 1.5s ease-in-out infinite alternate; }
.scn-verse-immortal .book { position:absolute; bottom:10%; left:34%; width:70px; height:30px; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 2px 2px 6px 6px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: vi-book 10s ease-in-out infinite; }
@keyframes vi-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes vi-quill { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes vi-ink { 0% { transform: scaleX(0); opacity: 0; } 25% { transform: scaleX(1); opacity: 1; } 75% { transform: scaleX(1); opacity: 1; } 100% { transform: scaleX(0); opacity: 0; } }
@keyframes vi-hand { 0% { transform: rotate(-8deg) translateX(0); } 50% { transform: rotate(2deg) translateX(3px); } 100% { transform: rotate(-8deg) translateX(0); } }
@keyframes vi-flame { 0% { transform: scaleY(0.8); opacity: 0.7; } 50% { transform: scaleY(1.2); opacity: 1; } 100% { transform: scaleY(0.9); opacity: 0.8; } }
@keyframes vi-book { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

.scn-time-defaced { background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 50%, #2a3a4a 100%), radial-gradient(ellipse at 50% 100%, #5a6a7a 0%, transparent 80%); }
.scn-time-defaced .sea { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 100%); animation: td-sea 10s ease-in-out infinite alternate; }
.scn-time-defaced .shore { position:absolute; bottom:40%; left:0; right:0; height:8px; background: linear-gradient(90deg, #b09870 0%, #a08860 50%, #b09870 100%); border-radius: 4px; animation: td-shore 8s ease-in-out infinite; }
.scn-time-defaced .tower { position:absolute; bottom:40%; left:20%; width:50px; height:100px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.4); animation: td-tower 12s ease-in-out infinite; }
.scn-time-defaced .tower-ruin { position:absolute; bottom:80%; left:20%; width:50px; height:20px; background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: td-ruin 6s ease-in-out infinite; }
.scn-time-defaced .wave-1 { position:absolute; bottom:30%; left:-10%; width:120%; height:12px; background: linear-gradient(90deg, transparent 0%, rgba(100,160,200,0.4) 20%, rgba(100,160,200,0.6) 50%, transparent 80%); border-radius: 50%; filter: blur(4px); animation: td-wave 4s ease-in-out infinite; }
.scn-time-defaced .wave-2 { position:absolute; bottom:20%; left:-10%; width:120%; height:14px; background: linear-gradient(90deg, transparent 0%, rgba(100,160,200,0.3) 30%, rgba(100,160,200,0.5) 60%, transparent 100%); border-radius: 50%; filter: blur(5px); animation: td-wave 5s ease-in-out infinite reverse; }
@keyframes td-sea { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes td-shore { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes td-tower { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-0.2deg); } 50% { transform: translateY(0) rotate(0.1deg); } 75% { transform: translateY(-1px) rotate(-0.1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes td-ruin { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes td-wave { 0% { transform: translateX(0) scaleY(0.8); } 50% { transform: translateX(30px) scaleY(1.2); } 100% { transform: translateX(60px) scaleY(0.8); } }

.scn-sonnet-cxxv-part2 { background: linear-gradient(180deg, #7a7a7a 0%, #4a4a5a 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 100%, #3a3a5a 0%, transparent 70%); overflow: hidden; }
.scn-sonnet-cxxv-part2 .sky { position: absolute; inset: 0 0 55% 0; background: linear-gradient(180deg, rgba(140,140,160,0.8) 0%, rgba(80,80,100,0.4) 100%); animation: sc1-sky 12s ease-in-out infinite alternate; }
.scn-sonnet-cxxv-part2 .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 55%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,0.5); }
.scn-sonnet-cxxv-part2 .figure { position: absolute; bottom: 38%; left: 50%; width: 40px; height: 90px; transform: translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,0.3); animation: sc1-stand 6s ease-in-out infinite; }
.scn-sonnet-cxxv-part2 .shield { position: absolute; bottom: 42%; left: 45%; width: 28px; height: 36px; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; transform: rotate(-10deg); box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: sc1-shield 4s ease-in-out infinite alternate; }
.scn-sonnet-cxxv-part2 .cloud { position: absolute; top: 15%; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.05) 100%); border-radius: 50%; filter: blur(8px); }
.scn-sonnet-cxxv-part2 .cloud.c1 { width: 100px; height: 20px; left: 10%; animation: sc1-drift-a 40s linear infinite; }
.scn-sonnet-cxxv-part2 .cloud.c2 { width: 70px; height: 15px; right: 15%; top: 22%; animation: sc1-drift-b 50s linear infinite reverse; }
@keyframes sc1-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes sc1-stand { 0% { transform: translateX(-50%) translateY(0px) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-3px) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(0px) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0px) rotate(0deg); } }
@keyframes sc1-shield { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.05); } 100% { transform: rotate(-10deg) scale(1); } }
@keyframes sc1-drift-a { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }
@keyframes sc1-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-sonnet-cxxvi { background: linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 40%, #2a3a3a 100%), radial-gradient(ellipse at 50% 30%, #5a6a6a 0%, transparent 70%); overflow: hidden; }
.scn-sonnet-cxxvi .bg-soft { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(180,190,190,0.3) 0%, transparent 50%, rgba(140,150,150,0.2) 100%); animation: sc2-bg-shimmer 10s ease-in-out infinite alternate; }
.scn-sonnet-cxxvi .hourglass-body { position: absolute; bottom: 30%; left: 50%; width: 60px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #a08060 0%, #604030 100%); border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%; box-shadow: 0 0 40px rgba(100,80,60,0.4); animation: sc2-float 8s ease-in-out infinite; }
.scn-sonnet-cxxvi .upper-bulb { position: absolute; bottom: 55%; left: 50%; width: 40px; height: 40px; transform: translateX(-50%); background: radial-gradient(circle at 50% 60%, rgba(220,200,180,0.8) 0%, rgba(200,180,160,0.3) 70%); border-radius: 50%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.2); }
.scn-sonnet-cxxvi .lower-bulb { position: absolute; bottom: 22%; left: 50%; width: 40px; height: 35px; transform: translateX(-50%); background: radial-gradient(circle at 50% 40%, rgba(200,180,160,0.6) 0%, transparent 70%); border-radius: 50%; box-shadow: inset 0 10px 20px rgba(0,0,0,0.2); }
.scn-sonnet-cxxvi .sand-stream { position: absolute; bottom: 37%; left: 50%; width: 4px; height: 30px; transform: translateX(-50%); background: linear-gradient(180deg, #c8a878 0%, #806040 100%); border-radius: 50%; animation: sc2-sand 4s ease-in-out infinite; }
.scn-sonnet-cxxvi .hand { position: absolute; bottom: 28%; left: 38%; width: 24px; height: 40px; background: linear-gradient(180deg, #b09070 0%, #806050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); animation: sc2-hand 6s ease-in-out infinite alternate; }
.scn-sonnet-cxxvi .glow { position: absolute; bottom: 30%; left: 50%; width: 120px; height: 120px; transform: translate(-50%, 10%); background: radial-gradient(circle, rgba(200,180,160,0.15) 0%, transparent 70%); animation: sc2-glow 8s ease-in-out infinite alternate; }
@keyframes sc2-bg-shimmer { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes sc2-float { 0% { transform: translateX(-50%) translateY(0px); } 30% { transform: translateX(-50%) translateY(-4px); } 60% { transform: translateX(-50%) translateY(0px); } 100% { transform: translateX(-50%) translateY(-2px); } }
@keyframes sc2-sand { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.3); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes sc2-hand { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(10deg) translateX(2px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes sc2-glow { 0% { opacity: 0.3; transform: translate(-50%, 10%) scale(1); } 50% { opacity: 0.6; transform: translate(-50%, 10%) scale(1.1); } 100% { opacity: 0.4; transform: translate(-50%, 10%) scale(1); } }

.scn-sonnet-cxxvi-part2 { background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%), radial-gradient(ellipse at 50% 70%, #0a0a10 0%, transparent 70%); overflow: hidden; }
.scn-sonnet-cxxvi-part2 .dark-bg { position: absolute; inset: 0; background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 50%, #1a1a2a 100%); animation: sc3-pulse 12s ease-in-out infinite alternate; }
.scn-sonnet-cxxvi-part2 .doorway { position: absolute; bottom: 15%; left: 50%; width: 120px; height: 180px; transform: translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #0a0a0a 100%); border-radius: 50% 50% 10% 10% / 30% 30% 20% 20%; box-shadow: inset 0 0 40px rgba(0,0,0,0.8), 0 0 30px rgba(0,0,0,0.6); }
.scn-sonnet-cxxvi-part2 .figure-shadow { position: absolute; bottom: 25%; left: 42%; width: 30px; height: 80px; background: linear-gradient(180deg, #0a0a0a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); box-shadow: 0 0 40px rgba(0,0,0,0.9); animation: sc3-approach 8s ease-in-out infinite; }
.scn-sonnet-cxxvi-part2 .scythe { position: absolute; bottom: 20%; left: 35%; width: 10px; height: 70px; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 10%; transform: rotate(-20deg); box-shadow: 0 0 10px rgba(0,0,0,0.5); animation: sc3-scythe 6s ease-in-out infinite; }
.scn-sonnet-cxxvi-part2 .scales { position: absolute; bottom: 45%; left: 55%; width: 40px; height: 10px; background: linear-gradient(90deg, #3a3a3a 0%, #5a5a5a 50%, #3a3a3a 100%); border-radius: 20%; box-shadow: 0 0 10px rgba(0,0,0,0.3); animation: sc3-balance 10s ease-in-out infinite; }
.scn-sonnet-cxxvi-part2 .dust { position: absolute; top: 10%; left: 20%; width: 6px; height: 6px; background: radial-gradient(circle, rgba(200,200,200,0.4) 0%, transparent 70%); border-radius: 50%; filter: blur(2px); }
.scn-sonnet-cxxvi-part2 .dust.motes { animation: sc3-drift 30s linear infinite; }
@keyframes sc3-pulse { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes sc3-approach { 0% { transform: translateX(0) translateY(0) rotate(10deg) scale(1); } 25% { transform: translateX(-8px) translateY(-5px) rotate(12deg) scale(1.05); } 50% { transform: translateX(0) translateY(0) rotate(10deg) scale(1); } 75% { transform: translateX(8px) translateY(-3px) rotate(8deg) scale(1.02); } 100% { transform: translateX(0) translateY(0) rotate(10deg) scale(1); } }
@keyframes sc3-scythe { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-5px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes sc3-balance { 0% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-5deg); } 100% { transform: rotate(0deg); } }
@keyframes sc3-drift { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(30px, -20px) scale(1.5); } 100% { transform: translate(0, 0) scale(1); } }

.scn-sonnet-cxxvii { background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 0%, #5a5a6a 0%, transparent 60%); overflow: hidden; }
.scn-sonnet-cxxvii .overcast-sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, rgba(150,150,170,0.6) 0%, rgba(80,80,100,0.3) 100%); animation: sc4-sky 15s ease-in-out infinite alternate; }
.scn-sonnet-cxxvii .hills { position: absolute; bottom: 30%; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4); }
.scn-sonnet-cxxvii .figure-defiant { position: absolute; bottom: 32%; left: 50%; width: 40px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 30px rgba(0,0,0,0.5); animation: sc4-defy 5s ease-in-out infinite; }
.scn-sonnet-cxxvii .crown { position: absolute; bottom: 55%; left: 50%; width: 30px; height: 12px; transform: translateX(-50%); background: linear-gradient(90deg, #806040 0%, #b09070 50%, #806040 100%); border-radius: 20% 20% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 0 20px rgba(180,150,120,0.4); animation: sc4-crown 4s ease-in-out infinite alternate; }
.scn-sonnet-cxxvii .shackles { position: absolute; bottom: 40%; left: 38%; width: 16px; height: 12px; background: linear-gradient(180deg, #6a6a5a 0%, #3a3a2a 100%); border-radius: 20%; box-shadow: 0 0 10px rgba(0,0,0,0.3); animation: sc4-shackle 7s ease-in-out infinite; }
.scn-sonnet-cxxvii .shackles.broken { left: 55%; animation-delay: 1s; transform: rotate(20deg); }
.scn-sonnet-cxxvii .beam { position: absolute; bottom: 50%; left: 30%; width: 4px; height: 80px; background: linear-gradient(180deg, rgba(255,255,240,0.1) 0%, transparent 100%); transform: rotate(-75deg); filter: blur(2px); animation: sc4-beam 10s ease-in-out infinite alternate; }
@keyframes sc4-sky { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes sc4-defy { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 25% { transform: translateX(-50%) rotate(-2deg) scale(1.03); } 50% { transform: translateX(-50%) rotate(0deg) scale(1); } 75% { transform: translateX(-50%) rotate(2deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(0deg) scale(1); } }
@keyframes sc4-crown { 0% { transform: translateX(-50%) rotate(-5deg) scale(1); } 50% { transform: translateX(-50%) rotate(0deg) scale(1.05); } 100% { transform: translateX(-50%) rotate(5deg) scale(1); } }
@keyframes sc4-shackle { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(5deg) translateY(-2px); } 60% { transform: rotate(-5deg) translateY(0); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes sc4-beam { 0% { opacity: 0.2; transform: rotate(-75deg) scaleY(1); } 50% { opacity: 0.6; transform: rotate(-75deg) scaleY(1.2); } 100% { opacity: 0.3; transform: rotate(-75deg) scaleY(1); } }

.scn-sonnet-xcii-part2 {
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 60%), radial-gradient(ellipse at 50% 80%, #6a5a4a 0%, transparent 60%);
}
.scn-sonnet-xcii-part2 .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #4a3a2a, #3a2a1a, #4a3a2a);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: s2p-wall 18s ease-in-out infinite alternate;
}
.scn-sonnet-xcii-part2 .window-frame {
  position: absolute; bottom: 45%; left: 50%; width: 120px; height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(100,80,60,0.3);
  animation: s2p-frame 6s ease-in-out infinite alternate;
}
.scn-sonnet-xcii-part2 .figure {
  position: absolute; bottom: 34%; left: 40%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: s2p-figure 8s ease-in-out infinite;
}
.scn-sonnet-xcii-part2 .letter {
  position: absolute; bottom: 28%; left: 48%; width: 16px; height: 20px;
  background: linear-gradient(135deg, #b89878 0%, #907058 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: s2p-letter 5s ease-in-out infinite;
}
.scn-sonnet-xcii-part2 .glow {
  position: absolute; bottom: 50%; left: 50%; width: 80px; height: 120px;
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse, rgba(200,180,140,0.15) 0%, transparent 70%);
  animation: s2p-glow 4s ease-in-out infinite alternate;
}
.scn-sonnet-xcii-part2 .shadow {
  position: absolute; bottom: 25%; left: 35%; width: 60px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: s2p-shadow 8s ease-in-out infinite alternate;
}
@keyframes s2p-wall {
  0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; }
}
@keyframes s2p-frame {
  0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(0.98); }
}
@keyframes s2p-figure {
  0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes s2p-letter {
  0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-3px); }
}
@keyframes s2p-glow {
  0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; }
}
@keyframes s2p-shadow {
  0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.2); }
}

.scn-sonnet-xciii {
  background: linear-gradient(180deg, #5a6a6a 0%, #3a4a4a 60%), radial-gradient(ellipse at 50% 20%, #7a8a8a 0%, transparent 70%);
}
.scn-sonnet-xciii .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 100%);
  animation: s93-sky 20s ease-in-out infinite alternate;
}
.scn-sonnet-xciii .cloud {
  position: absolute; top: 15%; left: 20%; width: 120px; height: 24px;
  background: linear-gradient(90deg, rgba(255,255,255,0.3), rgba(200,200,200,0.1));
  border-radius: 50%;
  filter: blur(8px);
  animation: s93-cloud 60s linear infinite;
}
.scn-sonnet-xciii .face-profile {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%;
  animation: s93-face 8s ease-in-out infinite;
}
.scn-sonnet-xciii .veil {
  position: absolute; bottom: 32%; left: 44%; width: 60px; height: 40px;
  background: linear-gradient(135deg, rgba(180,190,190,0.4), rgba(200,200,200,0.1));
  border-radius: 0 50% 50% 0;
  filter: blur(2px);
  transform-origin: left center;
  animation: s93-veil 10s ease-in-out infinite alternate;
}
.scn-sonnet-xciii .flower {
  position: absolute; bottom: 20%; left: 30%; width: 16px; height: 16px;
  background: radial-gradient(circle, #b89878 30%, #907058 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px rgba(144,112,88,0.4);
  animation: s93-flower 6s ease-in-out infinite;
}
@keyframes s93-sky {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; }
}
@keyframes s93-cloud {
  0% { transform: translateX(-80px); } 100% { transform: translateX(120vw); }
}
@keyframes s93-face {
  0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg); }
}
@keyframes s93-veil {
  0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(1.1); } 100% { transform: rotate(-5deg) scaleX(0.9); }
}
@keyframes s93-flower {
  0%,100% { transform: scale(1); } 50% { transform: scale(1.1); }
}

.scn-sonnet-xciv {
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 60%), radial-gradient(ellipse at 50% 80%, #5a6a5a 0%, transparent 70%);
}
.scn-sonnet-xciv .throne {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: s94-throne 12s ease-in-out infinite alternate;
}
.scn-sonnet-xciv .figure-stone {
  position: absolute; bottom: 32%; left: 50%; width: 30px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: s94-figure 16s ease-in-out infinite;
}
.scn-sonnet-xciv .scepter {
  position: absolute; bottom: 45%; left: 52%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 0 0 8px rgba(138,122,90,0.3);
  animation: s94-scepter 7s ease-in-out infinite alternate;
}
.scn-sonnet-xciv .leaves {
  position: absolute; bottom: 10%; left: 20%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #4a6a3a 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: s94-leaves 20s linear infinite alternate;
}
.scn-sonnet-xciv .light {
  position: absolute; top: 20%; left: 40%; width: 60px; height: 100px;
  background: radial-gradient(ellipse, rgba(200,200,180,0.15) 0%, transparent 70%);
  animation: s94-light 5s ease-in-out infinite alternate;
}
@keyframes s94-throne {
  0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); }
}
@keyframes s94-figure {
  0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes s94-scepter {
  0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(15deg) scaleY(1.05); } 100% { transform: rotate(5deg) scaleY(0.95); }
}
@keyframes s94-leaves {
  0% { transform: translateX(0) scale(1); } 50% { transform: translateX(10px) scale(1.1); } 100% { transform: translateX(20px) scale(0.9); }
}
@keyframes s94-light {
  0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.1; }
}

.scn-sonnet-xciv-part2 {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 60%), radial-gradient(ellipse at 50% 70%, #2a3a1a 0%, transparent 60%);
}
.scn-sonnet-xciv-part2 .lily {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: s9p-lily 10s ease-in-out infinite;
}
.scn-sonnet-xciv-part2 .weed {
  position: absolute; bottom: 20%; right: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a5a2a 0%, #2a3a1a 100%);
  border-radius: 10% 60% 30% 50%;
  transform: rotate(15deg);
  animation: s9p-weed 14s ease-in-out infinite alternate;
}
.scn-sonnet-xciv-part2 .petal {
  position: absolute; bottom: 45%; left: 35%; width: 8px; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, #7a7a5a 40%, #5a5a3a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(90,90,50,0.4);
  animation: s9p-petal 6s ease-in-out infinite;
}
.scn-sonnet-xciv-part2 .stain {
  position: absolute; bottom: 10%; left: 40%; width: 40px; height: 30px;
  background: radial-gradient(ellipse, rgba(60,40,20,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: s9p-stain 20s ease-in-out infinite alternate;
}
.scn-sonnet-xciv-part2 .spore {
  position: absolute; bottom: 50%; left: 60%; width: 4px; height: 4px;
  background: radial-gradient(circle, #6a7a4a 30%, #3a4a2a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(60,70,30,0.3);
  animation: s9p-spore 8s ease-in-out infinite;
}
@keyframes s9p-lily {
  0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-20deg) translateY(5px); }
}
@keyframes s9p-weed {
  0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(25deg) scaleY(1.2); } 100% { transform: rotate(10deg) scaleY(0.8); }
}
@keyframes s9p-petal {
  0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-8px) rotate(30deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes s9p-stain {
  0%,100% { opacity: 0.3; } 50% { opacity: 0.7; }
}
@keyframes s9p-spore {
  0%,100% { transform: scale(1); } 50% { transform: scale(1.5); }
}

/* sleep-sight-shadow */
.scn-sleep-sight-shadow {
  background: linear-gradient(180deg, #0b0b2a 0%, #1a1a3e 40%, #2a2a4e 70%, #0d0d20 100%), radial-gradient(ellipse at 50% 10%, #3a3a6e 0%, transparent 60%);
}
.scn-sleep-sight-shadow .night { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,10,30,0.8) 0%, transparent 100%); animation: ss-shadow 15s ease-in-out infinite alternate; }
.scn-sleep-sight-shadow .moon { position:absolute; top:8%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #e0e8ff 0%, #a0b0d0 60%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(160,176,208,0.3); animation: ss-moon 20s ease-in-out infinite alternate; }
.scn-sleep-sight-shadow .cloud { position:absolute; top:12%; left:15%; width:120px; height:20px; background: linear-gradient(90deg, rgba(200,210,230,0.3) 0%, rgba(200,210,230,0.6) 50%, rgba(200,210,230,0.3) 100%); border-radius:50%; filter: blur(8px); animation: ss-cloud 40s linear infinite; }
.scn-sleep-sight-shadow .shadow-figure { position:absolute; bottom:18%; left:50%; width:40px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ss-figure 6s ease-in-out infinite; }
.scn-sleep-sight-shadow .dream-orbs { position:absolute; bottom:40%; left:20%; width:12px; height:12px; background: radial-gradient(circle, #b0c0e0 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 10px 4px rgba(176,192,224,0.5); animation: ss-orb 5s ease-in-out infinite alternate; }
.scn-sleep-sight-shadow .orb2 { left:80%; animation-delay: 2s; }
.scn-sleep-sight-shadow .silhouette-tree { position:absolute; bottom:0; left:5%; width:30px; height:80px; background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%); border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%; transform: skewX(-5deg); animation: ss-tree 12s ease-in-out infinite alternate; }
@keyframes ss-shadow { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ss-moon { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.05) } 100% { transform: translateY(2px) scale(0.98) } }
@keyframes ss-cloud { 0% { transform: translateX(-120px) } 100% { transform: translateX(120vw) } }
@keyframes ss-figure { 0% { transform: translateX(-50%) rotate(-2deg) } 25% { transform: translateX(-50%) translateY(-2px) rotate(0) } 50% { transform: translateX(-50%) translateY(-5px) rotate(2deg) } 75% { transform: translateX(-50%) translateY(-2px) rotate(0) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes ss-orb { 0% { transform: translateY(0) scale(0.8); opacity:0.6 } 50% { transform: translateY(-15px) scale(1.2); opacity:1 } 100% { transform: translateY(-5px) scale(0.9); opacity:0.7 } }
@keyframes ss-tree { 0% { transform: skewX(-5deg) scaleX(1) } 50% { transform: skewX(-3deg) scaleX(1.1) } 100% { transform: skewX(-5deg) scaleX(1) } }

/* substance-thought-distance */
.scn-substance-thought-distance {
  background: linear-gradient(180deg, #2c2c3c 0%, #3c3c4c 30%, #4a4a5a 60%, #1a1a2a 100%), radial-gradient(ellipse at 50% 100%, #5a5a6a 0%, transparent 70%);
}
.scn-substance-thought-distance .storm-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); animation: st-storm 18s ease-in-out infinite alternate; }
.scn-substance-thought-distance .mountains { position:absolute; bottom:35%; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.4); animation: st-mountains 20s ease-in-out infinite alternate; }
.scn-substance-thought-distance .cliff { position:absolute; bottom:25%; left:20%; width:15%; height:30%; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 10% 10% 0 0; transform: skewX(10deg); box-shadow: -10px 0 20px rgba(0,0,0,0.5); }
.scn-substance-thought-distance .figure { position:absolute; bottom:28%; left:22%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: st-figure 4s ease-in-out infinite; }
.scn-substance-thought-distance .lightning { position:absolute; top:15%; left:60%; width:4px; height:50px; background: #e0e0f0; border-radius:20%; box-shadow: 0 0 20px 8px #c0c0e0; animation: st-lightning 6s ease-in-out infinite; opacity:0; }
.scn-substance-thought-distance .rain { position:absolute; top:0; left:10%; width:2px; height:30px; background: rgba(200,200,220,0.3); animation: st-rain 0.8s linear infinite; }
.scn-substance-thought-distance .rain2 { left:35%; animation-delay: 0.4s; }
@keyframes st-storm { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes st-mountains { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes st-figure { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-2px) rotate(0) } 50% { transform: translateY(0) rotate(3deg) } 75% { transform: translateY(-2px) rotate(0) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes st-lightning { 0%, 90%, 100% { opacity:0; transform: scaleY(0.5) } 10% { opacity:1; transform: scaleY(1) } 20% { opacity:0; transform: scaleY(0.8) } 30% { opacity:0.7; transform: scaleY(1.1) } }
@keyframes st-rain { 0% { transform: translateY(-30px) } 100% { transform: translateY(100vh) } }

/* air-fire-embassy */
.scn-air-fire-embassy {
  background: linear-gradient(180deg, #d4c4a0 0%, #c0b090 40%, #a89870 70%, #887858 100%), radial-gradient(ellipse at 50% 80%, #f0d8a0 0%, transparent 60%);
}
.scn-air-fire-embassy .room-wall { position:absolute; inset:0 10% 0 10%; background: linear-gradient(180deg, #d4c4a0 0%, #b8a888 100%); border-radius: 5% / 10%; box-shadow: inset 0 0 40px rgba(0,0,0,0.1); animation: af-wall 30s ease-in-out infinite alternate; }
.scn-air-fire-embassy .hearth { position:absolute; bottom:15%; left:30%; width:120px; height:80px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 10px 20px rgba(0,0,0,0.3); }
.scn-air-fire-embassy .flames { position:absolute; bottom:20%; left:34%; width:40px; height:60px; background: linear-gradient(180deg, #f0c080 0%, #d08040 50%, #a05020 100%); border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%; filter: blur(2px); animation: af-flame 1.5s ease-in-out infinite alternate; }
.scn-air-fire-embassy .flame2 { left:43%; width:30px; height:45px; animation-delay: 0.6s; }
.scn-air-fire-embassy .curtain { position:absolute; top:0; right:5%; width:60px; height:100%; background: linear-gradient(180deg, #b8a888 0%, #a89870 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; transform: skewY(5deg); animation: af-curtain 12s ease-in-out infinite alternate; }
.scn-air-fire-embassy .spark { position:absolute; bottom:30%; left:35%; width:6px; height:6px; background: #ffd080; border-radius:50%; box-shadow: 0 0 10px 4px rgba(255,208,128,0.5); animation: af-spark 2s ease-out infinite; }
.scn-air-fire-embassy .spark2 { left:40%; animation-delay: 1s; }
.scn-air-fire-embassy .window-light { position:absolute; top:15%; left:15%; width:80px; height:100px; background: linear-gradient(135deg, #e0d8c8 0%, #c8b8a0 100%); border-radius: 10% / 15%; box-shadow: 0 0 30px 10px rgba(192,176,144,0.3); animation: af-window 20s ease-in-out infinite alternate; }
@keyframes af-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes af-flame { 0% { transform: translateY(0) scaleX(1) rotate(0) } 50% { transform: translateY(-4px) scaleX(1.1) rotate(2deg) } 100% { transform: translateY(-2px) scaleX(0.95) rotate(-2deg) } }
@keyframes af-curtain { 0% { transform: skewY(5deg) translateX(0) } 50% { transform: skewY(6deg) translateX(-5px) } 100% { transform: skewY(4deg) translateX(3px) } }
@keyframes af-spark { 0% { opacity:1; transform: translateY(0) scale(1) } 100% { opacity:0; transform: translateY(-30px) scale(0.3) } }
@keyframes af-window { 0% { opacity:0.85; transform: scale(0.98) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:0.9; transform: scale(0.99) } }

/* eye-heart-war */
.scn-eye-heart-war {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 70%, #0a0a1a 100%), radial-gradient(ellipse at 20% 50%, #5a3a3a 0%, transparent 60%);
}
.scn-eye-heart-war .dark-bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(20,20,30,0.9) 0%, rgba(30,20,20,0.8) 100%); animation: eh-bg 20s ease-in-out infinite alternate; }
.scn-eye-heart-war .eye-slit { position:absolute; top:30%; left:25%; width:40px; height:20px; background: radial-gradient(ellipse, #c0b090 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(192,176,144,0.3); transform: rotate(-10deg); animation: eh-eye 4s ease-in-out infinite alternate; }
.scn-eye-heart-war .heart-form { position:absolute; bottom:35%; right:25%; width:36px; height:32px; background: radial-gradient(ellipse at 50% 40%, #c8553d 0%, #a0461a 60%, transparent 100%); clip-path: path("M0,12 Q0,0 18,0 Q36,0 36,12 Q36,24 18,32 Q0,24 0,12"); animation: eh-heart 5s ease-in-out infinite alternate; }
.scn-eye-heart-war .spear { position:absolute; top:20%; left:45%; width:6px; height:120px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); transform: rotate(15deg); border-radius: 0 0 30% 30%; box-shadow: 0 0 10px rgba(0,0,0,0.4); animation: eh-spear 3s ease-in-out infinite alternate; }
.scn-eye-heart-war .shield { position:absolute; bottom:20%; left:30%; width:50px; height:60px; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; transform: rotate(-5deg); box-shadow: 0 0 20px rgba(0,0,0,0.5); animation: eh-shield 6s ease-in-out infinite alternate; }
.scn-eye-heart-war .shadow-split { position:absolute; inset:15% 0 15% 45%; width:10px; background: linear-gradient(180deg, transparent 0%, #2a2a3a 50%, transparent 100%); filter: blur(4px); animation: eh-split 8s ease-in-out infinite alternate; }
.scn-eye-heart-war .blood-drop { position:absolute; bottom:50%; left:40%; width:8px; height:12px; background: radial-gradient(ellipse at 50% 30%, #702243 0%, transparent 70%); border-radius: 50% 50% 30% 30%; animation: eh-blood 4s ease-in-out infinite; }
@keyframes eh-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes eh-eye { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(-5deg) scaleX(1.1) } 100% { transform: rotate(-10deg) scaleX(1) } }
@keyframes eh-heart { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes eh-spear { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-5px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes eh-shield { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(5px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes eh-split { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes eh-blood { 0% { opacity:0; transform: translateY(0) scale(0.5) } 50% { opacity:0.8; transform: translateY(10px) scale(1) } 100% { opacity:0; transform: translateY(20px) scale(0.5) } }

.scn-time-scythe {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2040 40%, #4a3a5e 70%, #3a2a3a 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a5e 0%, transparent 70%);
}
.scn-time-scythe .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%);
  animation: ts-sky 12s ease-in-out infinite alternate;
}
.scn-time-scythe .clouds {
  position: absolute; top: 20%; left: 10%; right: 10%; height: 15%;
  background: rgba(255,255,255,0.08);
  border-radius: 50%; filter: blur(40px);
  animation: ts-clouds 30s linear infinite;
}
.scn-time-scythe .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 20% 20% 0 0 / 60% 60% 0 0;
}
.scn-time-scythe .flower {
  position: absolute; bottom: 38%; left: 60%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #a08050 0%, #805030 100%);
  border-radius: 50% 50% 0 0;
  animation: ts-flower 8s ease-in-out infinite;
}
.scn-time-scythe .figure {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ts-figure 6s ease-in-out infinite;
}
.scn-time-scythe .scythe-blade {
  position: absolute; bottom: 42%; left: 32%; width: 60px; height: 8px;
  background: linear-gradient(90deg, #8a8a9a 0%, #6a6a7a 100%);
  border-radius: 0 80% 80% 0 / 0 50% 50% 0;
  transform: rotate(-45deg) translateX(10px);
  animation: ts-blade 3s ease-in-out infinite alternate;
}
.scn-time-scythe .scythe-handle {
  position: absolute; bottom: 30%; left: 32%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(15deg) translateX(-5px);
}
@keyframes ts-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ts-clouds { 0% { transform: translateX(0) } 100% { transform: translateX(100vw) } }
@keyframes ts-flower { 0% { transform: scale(1) rotate(0deg); opacity: 0.8 } 50% { transform: scale(0.8) rotate(-5deg); opacity: 0.4 } 100% { transform: scale(1) rotate(0deg); opacity: 0.8 } }
@keyframes ts-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ts-blade { 0% { transform: rotate(-45deg) translateX(10px) scaleX(1) } 50% { transform: rotate(-50deg) translateX(5px) scaleX(0.9) } 100% { transform: rotate(-45deg) translateX(10px) scaleX(1) } }

.scn-weary-night {
  background: linear-gradient(180deg, #0a0a1e 0%, #1a1a3e 50%, #2a2a4e 100%),
              radial-gradient(ellipse at 50% 0%, #2a2a4e 0%, transparent 60%);
}
.scn-weary-night .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border: 1px solid #2a2a3e;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}
.scn-weary-night .window {
  position: absolute; top: 15%; left: 30%; width: 40%; height: 35%;
  background: #2a2a4e;
  border: 4px solid #3a3a5e;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(100,100,150,0.3);
}
.scn-weary-night .moonlight {
  position: absolute; top: 20%; left: 35%; width: 30%; height: 25%;
  background: linear-gradient(135deg, rgba(180,180,220,0.15) 0%, transparent 100%);
  transform: skewX(-10deg);
  animation: wn-moon 10s ease-in-out infinite alternate;
}
.scn-weary-night .bed {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-weary-night .figure {
  position: absolute; bottom: 15%; left: 40%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wn-figure 4s ease-in-out infinite;
}
.scn-weary-night .shadow {
  position: absolute; bottom: 10%; left: 35%; width: 30px; height: 10px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: wn-shadow 4s ease-in-out infinite;
}
.scn-weary-night .clock {
  position: absolute; top: 10%; right: 15%; width: 20px; height: 20px;
  border: 2px solid #5a5a6a;
  border-radius: 50%;
  background: #2a2a3e;
}
.scn-weary-night .clock::after {
  content: '';
  position: absolute; top: 50%; left: 50%; width: 2px; height: 8px;
  background: #8a8a9a;
  transform-origin: bottom center;
  animation: wn-clock 60s linear infinite;
}
@keyframes wn-moon { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }
@keyframes wn-figure { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(5px) rotate(5deg) } 60% { transform: translateX(-5px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes wn-shadow { 0% { transform: scaleY(1) translateX(0) } 30% { transform: scaleY(1.1) translateX(2px) } 60% { transform: scaleY(0.9) translateX(-2px) } 100% { transform: scaleY(1) translateX(0) } }
@keyframes wn-clock { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }

.scn-watchman-love {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #1a1a0a 100%),
              radial-gradient(ellipse at 50% 80%, #5a3a1a 0%, transparent 70%);
}
.scn-watchman-love .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.7);
}
.scn-watchman-love .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-watchman-love .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-watchman-love .candle {
  position: absolute; bottom: 25%; left: 45%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 2px 2px 30% 30%;
}
.scn-watchman-love .flame {
  position: absolute; bottom: 62%; left: 45%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px #c08040;
  animation: wl-flame 2s ease-in-out infinite alternate;
}
.scn-watchman-love .figure {
  position: absolute; bottom: 12%; left: 35%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wl-figure 5s ease-in-out infinite;
}
.scn-watchman-love .lantern {
  position: absolute; bottom: 28%; left: 30%; width: 10px; height: 16px;
  background: radial-gradient(circle, #f0c060 0%, #b08040 100%);
  border-radius: 20%;
  box-shadow: 0 0 30px 8px rgba(192,128,64,0.6);
  animation: wl-lantern 4s ease-in-out infinite alternate;
}
@keyframes wl-flame { 0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 15px 8px #c08040 } 50% { transform: scaleY(1.3) translateY(-2px); box-shadow: 0 0 25px 12px #e0a050 } 100% { transform: scaleY(1) translateY(0); box-shadow: 0 0 15px 8px #c08040 } }
@keyframes wl-figure { 0% { transform: translateY(0) rotate(0deg) } 33% { transform: translateY(-1px) rotate(1deg) } 66% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes wl-lantern { 0% { opacity: 0.8; transform: rotate(-2deg) } 50% { opacity: 1; transform: rotate(2deg) } 100% { opacity: 0.8; transform: rotate(-2deg) } }

.scn-self-love-sin {
  background: linear-gradient(180deg, #2a2a2e 0%, #3a3a3e 50%, #1a1a1e 100%),
              radial-gradient(ellipse at 50% 0%, #4a4a4e 0%, transparent 80%);
}
.scn-self-love-sin .curtain {
  position: absolute; top: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 20% 20%;
  animation: sl-curtain 15s ease-in-out infinite alternate;
}
.scn-self-love-sin .mirror-frame {
  position: absolute; top: 15%; left: 25%; width: 50%; height: 50%;
  border: 8px solid #6a5a4a;
  border-radius: 4px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
}
.scn-self-love-sin .reflection {
  position: absolute; top: 20%; left: 32%; width: 36%; height: 40%;
  background: linear-gradient(180deg, rgba(255,255,255,0.05) 0%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: sl-reflection 7s ease-in-out infinite;
}
.scn-self-love-sin .vanity {
  position: absolute; bottom: 5%; left: 15%; right: 15%; height: 15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-self-love-sin .figure {
  position: absolute; bottom: 15%; left: 42%; width: 16%; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sl-figure 8s ease-in-out infinite;
}
.scn-self-love-sin .dust {
  position: absolute; top: 10%; left: 0; right: 0; height: 2%;
  background: rgba(255,255,255,0.03);
  filter: blur(8px);
  animation: sl-dust 20s linear infinite;
}
@keyframes sl-curtain { 0% { transform: translateY(0); height: 10% } 50% { transform: translateY(2px); height: 12% } 100% { transform: translateY(0); height: 10% } }
@keyframes sl-reflection { 0% { opacity: 0.3; transform: scaleX(1) } 50% { opacity: 0.5; transform: scaleX(1.02) } 100% { opacity: 0.3; transform: scaleX(1) } }
@keyframes sl-figure { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-1px) rotate(2deg) } 60% { transform: translateY(1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sl-dust { 0% { transform: translateX(0) } 100% { transform: translateX(100vw) } }

.scn-stars-favour-boast {
  background: 
    radial-gradient(ellipse at 70% 20%, #1b2a4a 0%, transparent 50%),
    linear-gradient(180deg, #0d1b2a 0%, #1b2a4a 40%, #2c3e5a 100%);
  position: relative; overflow: hidden;
}
.scn-stars-favour-boast .sky { position:absolute; inset:0; background: radial-gradient(circle at 50% 30%, #3a5a7a 0%, transparent 70%); animation: sf-sky 15s ease-in-out infinite alternate; }
.scn-stars-favour-boast .stars-layer { position:absolute; inset:0; background-image: radial-gradient(2px 2px at 20% 10%, #fff 0%, transparent 100%), radial-gradient(3px 3px at 60% 25%, #e0e8f0 0%, transparent 100%), radial-gradient(2px 2px at 85% 15%, #f0f8ff 0%, transparent 100%), radial-gradient(3px 3px at 40% 40%, #c0d0e0 0%, transparent 100%), radial-gradient(2px 2px at 10% 50%, #fff 0%, transparent 100%); background-size: 100% 100%; animation: sf-stars 20s linear infinite; }
.scn-stars-favour-boast .marigold-stem { position:absolute; bottom:30%; left:38%; width:8px; height:60px; background: linear-gradient(to top, #2a6b3a 0%, #4a8a5a 100%); border-radius:4px; transform-origin: bottom center; animation: sf-stem 10s ease-in-out infinite; }
.scn-stars-favour-boast .marigold-bloom { position:absolute; bottom:calc(30% + 60px); left:38%; width:40px; height:40px; background: radial-gradient(circle, #e8a840 0%, #c08030 40%, #a06020 80%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(200,160,80,.4); animation: sf-bloom 6s ease-in-out infinite alternate; transform-origin: center bottom; }
.scn-stars-favour-boast .figure { position:absolute; bottom:28%; left:55%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sf-figure 8s ease-in-out infinite; transform-origin: bottom center; }
.scn-stars-favour-boast .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 40% 60% 0 0 / 60% 40% 0 0; }
.scn-stars-favour-boast .glow-star { position:absolute; top:15%; right:25%; width:12px; height:12px; background: white; border-radius:50%; box-shadow: 0 0 30px 8px rgba(255,255,255,.3); animation: sf-star-glow 4s ease-in-out infinite alternate; }
@keyframes sf-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes sf-stars { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.02); } 100% { opacity:0.7; transform: scale(0.98); } }
@keyframes sf-stem { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes sf-bloom { 0% { transform: scale(1) rotate(-5deg); opacity:0.9; } 50% { transform: scale(1.1) rotate(0deg); opacity:1; } 100% { transform: scale(0.95) rotate(5deg); opacity:0.95; } }
@keyframes sf-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sf-star-glow { 0% { box-shadow: 0 0 20px 4px rgba(255,255,255,.2); } 50% { box-shadow: 0 0 40px 12px rgba(255,255,255,.5); } 100% { box-shadow: 0 0 24px 6px rgba(255,255,255,.3); } }

.scn-warrior-foiled-love {
  background: linear-gradient(180deg, #1a0e08 0%, #2a1a10 40%, #3a2218 100%),
              radial-gradient(ellipse at 50% 100%, #4a2a18 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-warrior-foiled-love .wall { position:absolute; inset:0; background: linear-gradient(180deg, rgba(40,20,10,.8) 0%, rgba(20,10,5,.9) 100%); }
.scn-warrior-foiled-love .hearth { position:absolute; bottom:10%; left:10%; width:80px; height:60px; background: radial-gradient(ellipse at 50% 70%, #e06030 0%, #b04020 40%, #602010 80%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 60px 20px #c05020; animation: wf-hearth 3s ease-in-out infinite alternate; }
.scn-warrior-foiled-love .warrior { position:absolute; bottom:20%; left:18%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a10 0%, #0e0805 100%); border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%; transform: rotate(5deg); animation: wf-warrior 12s ease-in-out infinite; }
.scn-warrior-foiled-love .beloved { position:absolute; bottom:22%; left:45%; width:24px; height:60px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wf-beloved 14s ease-in-out infinite alternate; }
.scn-warrior-foiled-love .shield { position:absolute; bottom:24%; left:12%; width:20px; height:26px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%); border-radius: 30% 30% 20% 20%; transform: rotate(10deg); animation: wf-shield 20s ease-in-out infinite; }
.scn-warrior-foiled-love .fire-embers { position:absolute; bottom:16%; left:12%; width:4px; height:4px; background: #ff8030; border-radius:50%; box-shadow: 0 -10px 0 0 #ff6020, 10px -15px 0 0 #ff8020, -5px -20px 0 0 #ffa040; animation: wf-embers 2s ease-in-out infinite; }
@keyframes wf-hearth { 0% { transform: scale(1); opacity:0.8; box-shadow: 0 0 40px 10px #c05020; } 50% { transform: scale(1.05); opacity:1; box-shadow: 0 0 80px 20px #e06030; } 100% { transform: scale(0.95); opacity:0.7; box-shadow: 0 0 50px 15px #b04020; } }
@keyframes wf-warrior { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(6deg) translateY(-2px); } 100% { transform: rotate(4deg) translateY(1px); } }
@keyframes wf-beloved { 0% { transform: translateX(0) scale(1); opacity:0.9; } 50% { transform: translateX(8px) scale(1.02); opacity:1; } 100% { transform: translateX(2px) scale(0.98); opacity:0.9; } }
@keyframes wf-shield { 0% { transform: rotate(8deg) scale(1); } 50% { transform: rotate(12deg) scale(1.03); } 100% { transform: rotate(10deg) scale(0.97); } }
@keyframes wf-embers { 0% { transform: translateY(0) scale(1); opacity:0; } 50% { transform: translateY(-15px) scale(1.5); opacity:0.8; } 100% { transform: translateY(-30px) scale(0.5); opacity:0; } }

.scn-duty-star-respect {
  background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3e 40%, #2a3a4e 100%),
              radial-gradient(ellipse at 30% 70%, #2a3a4e 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-duty-star-respect .night-sky { position:absolute; inset:0; background: radial-gradient(circle at 60% 20%, #1e2e42 0%, transparent 70%); animation: ds-sky 12s ease-in-out infinite alternate; }
.scn-duty-star-respect .guide-star { position:absolute; top:15%; right:35%; width:16px; height:16px; background: radial-gradient(circle, #ffffff 0%, #e0e8ff 40%, #a0b8d0 80%); border-radius:50%; box-shadow: 0 0 40px 12px rgba(200,220,255,.5); animation: ds-star 5s ease-in-out infinite alternate; }
.scn-duty-star-respect .hill { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 50% 30% 0 0 / 80% 60% 0 0; animation: ds-hill 18s ease-in-out infinite alternate; }
.scn-duty-star-respect .pilgrim { position:absolute; bottom:28%; left:40%; width:18px; height:40px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%; transform-origin: bottom center; animation: ds-pilgrim 8s ease-in-out infinite; }
.scn-duty-star-respect .path { position:absolute; bottom:20%; left:35%; width:60px; height:20px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 30%; filter: blur(6px); animation: ds-path 12s ease-in-out infinite; }
.scn-duty-star-respect .atmosphere { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, rgba(100,130,180,0.05) 0%, transparent 60%); animation: ds-atmosphere 20s ease-in-out infinite alternate; }
@keyframes ds-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ds-star { 0% { transform: scale(0.9) rotate(0deg); opacity:0.8; box-shadow: 0 0 30px 8px rgba(200,220,255,.3); } 50% { transform: scale(1.2) rotate(10deg); opacity:1; box-shadow: 0 0 60px 20px rgba(200,220,255,.6); } 100% { transform: scale(0.95) rotate(-5deg); opacity:0.85; box-shadow: 0 0 35px 10px rgba(200,220,255,.4); } }
@keyframes ds-hill { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes ds-pilgrim { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ds-path { 0% { transform: scaleX(1) translateX(0); opacity:0.6; } 50% { transform: scaleX(1.1) translateX(5px); opacity:0.9; } 100% { transform: scaleX(0.95) translateX(-2px); opacity:0.7; } }
@keyframes ds-atmosphere { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

.scn-travel-journey-head {
  background: linear-gradient(180deg, #050a10 0%, #0d1218 50%, #141a22 100%),
              radial-gradient(ellipse at 50% 50%, #0d1218 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-travel-journey-head .dark-room { position:absolute; inset:0; background: linear-gradient(180deg, rgba(5,10,16,0.95) 0%, rgba(10,15,22,0.9) 100%); }
.scn-travel-journey-head .bed { position:absolute; bottom:10%; left:20%; right:20%; height:25%; background: linear-gradient(180deg, #1a222a 0%, #0a1018 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-travel-journey-head .sleeper { position:absolute; bottom:12%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: tj-sleep 8s ease-in-out infinite alternate; }
.scn-travel-journey-head .window { position:absolute; top:10%; left:60%; width:50px; height:70px; background: linear-gradient(180deg, #0a1a2a 0%, #050f18 100%); border: 3px solid #1a2a3a; border-radius: 10%; }
.scn-travel-journey-head .moonlight { position:absolute; top:10%; left:60%; width:50px; height:70px; background: radial-gradient(ellipse at 50% 40%, rgba(180,210,240,0.15) 0%, transparent 70%); animation: tj-moon 6s ease-in-out infinite alternate; }
.scn-travel-journey-head .thought-path { position:absolute; top:20%; left:30%; width:80px; height:120px; background: radial-gradient(ellipse at 50% 50%, rgba(100,140,180,0.08) 0%, transparent 60%); filter: blur(8px); animation: tj-thought 15s linear infinite; transform-origin: center; }
.scn-travel-journey-head .candle { position:absolute; bottom:15%; left:45%; width:6px; height:14px; background: linear-gradient(180deg, #e8d0a0 0%, #8a7a5a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 20px 4px #c0a060; animation: tj-candle 4s ease-in-out infinite alternate; }
@keyframes tj-sleep { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(1px); } }
@keyframes tj-moon { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes tj-thought { 0% { transform: rotate(0deg) scale(1); opacity:0.1; } 25% { transform: rotate(90deg) scale(1.2); opacity:0.3; } 50% { transform: rotate(180deg) scale(0.9); opacity:0.2; } 75% { transform: rotate(270deg) scale(1.1); opacity:0.3; } 100% { transform: rotate(360deg) scale(1); opacity:0.1; } }
@keyframes tj-candle { 0% { transform: scaleY(1) rotate(-2deg); box-shadow: 0 0 15px 2px #c0a060; } 50% { transform: scaleY(1.1) rotate(0deg); box-shadow: 0 0 30px 6px #e0c080; } 100% { transform: scaleY(0.9) rotate(2deg); box-shadow: 0 0 18px 3px #b08050; } }

/* sonnet-cxxxii-part2 – pleading, overcast */
.scn-sonnet-cxxxii-part2 {
  background:
    linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 80%, #4a4a5a 0%, transparent 60%);
}
.scn-sonnet-cxxxii-part2 .bg-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  animation: sc132-fade 12s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxii-part2 .bg-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
}
.scn-sonnet-cxxxii-part2 .figure {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: sc132-bow 6s ease-in-out infinite;
}
.scn-sonnet-cxxxii-part2 .cloak {
  position: absolute; bottom: 28%; left: 46%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 0 60% 50% 50% / 0 80% 40% 40%;
  transform-origin: top center;
  animation: sc132-sway 8s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxii-part2 .rose {
  position: absolute; bottom: 32%; left: 55%; width: 10px; height: 14px;
  background: radial-gradient(circle at 30% 30%, #5a1a1a 0%, #3a0a0a 100%);
  border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%;
  box-shadow: 0 0 6px 2px rgba(90,26,26,0.4);
  animation: sc132-rose 4s ease-in-out infinite;
}
.scn-sonnet-cxxxii-part2 .petal-a,
.scn-sonnet-cxxxii-part2 .petal-b {
  position: absolute; width: 8px; height: 6px;
  background: radial-gradient(circle, #5a1a1a 0%, transparent 100%);
  border-radius: 50%; filter: blur(1px);
  animation: sc132-fall 10s linear infinite;
}
.scn-sonnet-cxxxii-part2 .petal-a { left: 48%; top: 10%; animation-delay: 0s; }
.scn-sonnet-cxxxii-part2 .petal-b { left: 52%; top: 5%; animation-delay: -4s; }

@keyframes sc132-fade {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes sc132-bow {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(-5deg) translateY(2px); }
}
@keyframes sc132-sway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg) scaleX(1.05); }
  100% { transform: rotate(-2deg); }
}
@keyframes sc132-rose {
  0%, 100% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(2px,-1px) rotate(10deg); }
}
@keyframes sc132-fall {
  0% { transform: translateY(0) rotate(0deg); opacity: 1; }
  50% { transform: translateY(40vh) rotate(180deg); opacity: 0.7; }
  100% { transform: translateY(80vh) rotate(360deg); opacity: 0; }
}

/* sonnet-cxxxiii – anguished, overcast */
.scn-sonnet-cxxxiii {
  background:
    linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 60%, #4a4a5a 0%, transparent 70%);
}
.scn-sonnet-cxxxiii .bg-wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, #2a2a3a 0px, #2a2a3a 2px, #3a3a4a 2px, #3a3a4a 4px);
  opacity: 0.3;
}
.scn-sonnet-cxxxiii .figure {
  position: absolute; bottom: 25%; left: 50%; width: 28px; height: 58px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  animation: sc133-writhe 5s ease-in-out infinite;
}
.scn-sonnet-cxxxiii .chain-left,
.scn-sonnet-cxxxiii .chain-right {
  position: absolute; top: 20%; width: 80px; height: 6px;
  background: linear-gradient(90deg, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 3px;
  animation: sc133-chain 3s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxiii .chain-left { left: 5%; transform-origin: right center; }
.scn-sonnet-cxxxiii .chain-right { right: 5%; transform-origin: left center; }
.scn-sonnet-cxxxiii .heart {
  position: absolute; bottom: 40%; left: 50%; width: 16px; height: 14px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 30% 30%, #6a2a2a 0%, #3a0a0a 100%);
  border-radius: 50% 50% 0 0;
  clip-path: polygon(0 30%, 50% 0, 100% 30%, 100% 70%, 50% 100%, 0 70%);
  animation: sc133-pulse 2s ease-in-out infinite;
}
.scn-sonnet-cxxxiii .tear {
  position: absolute; bottom: 18%; left: 48%; width: 4px; height: 8px;
  background: radial-gradient(circle, #8a8aaa 0%, #4a4a6a 100%);
  border-radius: 50%;
  animation: sc133-drop 4s ease-in-out infinite;
}
.scn-sonnet-cxxxiii .shadow {
  position: absolute; bottom: 18%; left: 40%; width: 60px; height: 10px;
  background: radial-gradient(ellipse, #1a1a2a 0%, transparent 100%);
  border-radius: 50%;
  animation: sc133-shadow 5s ease-in-out infinite alternate;
}

@keyframes sc133-writhe {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-8deg) translateY(3px); }
  50% { transform: translateX(-50%) rotate(5deg) scaleY(0.95); }
  75% { transform: translateX(-50%) rotate(-3deg) translateY(-2px); }
}
@keyframes sc133-chain {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(5deg) scaleX(0.9); }
  100% { transform: rotate(-5deg) scaleX(1.05); }
}
@keyframes sc133-pulse {
  0% { transform: translateX(-50%) scale(1); opacity: 0.8; }
  50% { transform: translateX(-50%) scale(1.15); opacity: 1; }
  100% { transform: translateX(-50%) scale(1); opacity: 0.8; }
}
@keyframes sc133-drop {
  0% { transform: translateY(0) scaleY(1); opacity: 0.8; }
  50% { transform: translateY(15px) scaleY(1.2); opacity: 1; }
  100% { transform: translateY(30px) scaleY(0.5); opacity: 0; }
}
@keyframes sc133-shadow {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.2); opacity: 0.5; }
  100% { transform: scaleX(0.9); opacity: 0.3; }
}

/* sonnet-cxxxiv – resigned, overcast */
.scn-sonnet-cxxxiv {
  background:
    linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 50%, #1a1a1a 100%),
    radial-gradient(ellipse at 50% 90%, #4a4a4a 0%, transparent 60%);
}
.scn-sonnet-cxxxiv .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-sonnet-cxxxiv .figure {
  position: absolute; bottom: 20%; left: 50%; width: 32px; height: 56px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: sc134-kneel 8s ease-in-out infinite;
}
.scn-sonnet-cxxxiv .scroll {
  position: absolute; bottom: 22%; left: 42%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  transform: rotate(-15deg);
  animation: sc134-unroll 10s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxiv .chain {
  position: absolute; bottom: 30%; left: 45%; width: 2px; height: 40px;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 1px;
  animation: sc134-rattle 4s ease-in-out infinite;
}
.scn-sonnet-cxxxiv .shadow {
  position: absolute; bottom: 15%; left: 35%; width: 70px; height: 12px;
  background: radial-gradient(ellipse, #1a1a1a 0%, transparent 100%);
  border-radius: 50%;
  animation: sc134-shadow 6s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxiv .dust-a,
.scn-sonnet-cxxxiv .dust-b {
  position: absolute; width: 4px; height: 4px;
  background: radial-gradient(circle, #6a6a6a 0%, transparent 100%);
  border-radius: 50%; filter: blur(1px);
  animation: sc134-drift 20s linear infinite;
}
.scn-sonnet-cxxxiv .dust-a { left: 20%; top: 30%; animation-delay: 0s; }
.scn-sonnet-cxxxiv .dust-b { left: 70%; top: 20%; animation-delay: -10s; }

@keyframes sc134-kneel {
  0%, 100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(3px) rotate(-2deg); }
}
@keyframes sc134-unroll {
  0% { transform: rotate(-15deg) scaleY(1); }
  50% { transform: rotate(-5deg) scaleY(1.1); }
  100% { transform: rotate(-15deg) scaleY(0.9); }
}
@keyframes sc134-rattle {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1px) rotate(3deg); }
  75% { transform: translateX(-1px) rotate(-3deg); }
}
@keyframes sc134-shadow {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.15); opacity: 0.5; }
  100% { transform: scaleX(0.85); opacity: 0.3; }
}
@keyframes sc134-drift {
  0% { transform: translate(0, 0) scale(1); opacity: 0.4; }
  50% { transform: translate(10px, -20px) scale(1.5); opacity: 0.8; }
  100% { transform: translate(20px, -40px) scale(0.5); opacity: 0; }
}

/* sonnet-cxxxv – playful, overcast */
.scn-sonnet-cxxxv {
  background:
    linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 50%, #3a3a4a 100%),
    radial-gradient(ellipse at 50% 30%, #6a6a7a 0%, transparent 70%);
}
.scn-sonnet-cxxxv .bg-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%);
  animation: sc135-bright 8s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxv .figure {
  position: absolute; bottom: 15%; left: 50%; width: 28px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: sc135-jump 2s ease-in-out infinite;
}
.scn-sonnet-cxxxv .will-a,
.scn-sonnet-cxxxv .will-b,
.scn-sonnet-cxxxv .will-c {
  position: absolute; width: 12px; height: 12px;
  background: radial-gradient(circle, #c0a060 0%, #a08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(192,160,96,0.4);
  animation: sc135-toss 3s ease-in-out infinite;
}
.scn-sonnet-cxxxv .will-a { bottom: 45%; left: 30%; animation-delay: 0s; }
.scn-sonnet-cxxxv .will-b { bottom: 50%; left: 50%; animation-delay: -1s; }
.scn-sonnet-cxxxv .will-c { bottom: 40%; right: 30%; animation-delay: -2s; }
.scn-sonnet-cxxxv .sparkle-a,
.scn-sonnet-cxxxv .sparkle-b {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, #e0d0a0 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: sc135-spark 4s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxv .sparkle-a { top: 20%; left: 20%; }
.scn-sonnet-cxxxv .sparkle-b { top: 30%; right: 25%; animation-delay: -2s; }

@keyframes sc135-bright {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes sc135-jump {
  0%, 100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-8px) rotate(-5deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(3deg); }
  75% { transform: translateX(-50%) translateY(-4px) rotate(-2deg); }
}
@keyframes sc135-toss {
  0% { transform: translate(0,0) scale(1); opacity: 0.8; }
  50% { transform: translate(0,-30px) scale(1.2); opacity: 1; }
  100% { transform: translate(0,0) scale(0.8); opacity: 0.6; }
}
@keyframes sc135-spark {
  0% { transform: scale(1) rotate(0deg); opacity: 0.3; }
  50% { transform: scale(1.5) rotate(180deg); opacity: 0.7; }
  100% { transform: scale(0.8) rotate(360deg); opacity: 0.1; }
}

/* Scene: sonnet-ci (pleading, overcast) */
.scn-sonnet-ci {
  background: linear-gradient(180deg, #7a7a8a 0%, #4a5a6a 40%, #3a4a5a 100%),
              radial-gradient(ellipse at 30% 70%, #5a6a7a 0%, transparent 70%);
}
.scn-sonnet-ci .overcast-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #6a6a7a 0%, #8a9aaa 80%);
  animation: sc1-sky 14s ease-in-out infinite alternate;
}
.scn-sonnet-ci .distant-hills {
  position: absolute; bottom: 35%; left: -5%; right: -5%; height: 20%;
  background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.3);
  animation: sc1-hills 20s ease-in-out infinite alternate;
}
.scn-sonnet-ci .barren-tree {
  position: absolute; bottom: 35%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: sc1-tree 9s ease-in-out infinite;
}
.scn-sonnet-ci .muse-figure {
  position: absolute; bottom: 30%; left: 45%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sc1-figure 6s ease-in-out infinite;
}
.scn-sonnet-ci .pleading-hand {
  position: absolute; bottom: 40%; left: 48%; width: 10px; height: 14px;
  background: #5a4a3a;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: sc1-hand 5s ease-in-out infinite;
}
.scn-sonnet-ci .ground-mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, rgba(150,160,170,0.6) 0%, transparent 100%);
  filter: blur(10px);
  animation: sc1-mist 12s ease-in-out infinite alternate;
}
.scn-sonnet-ci .cloud-layer {
  position: absolute; height: 30px; border-radius: 50%;
  filter: blur(8px);
}
.scn-sonnet-ci .ci-cloud1 {
  top: 15%; left: 10%; width: 120px;
  background: linear-gradient(180deg, rgba(180,190,200,0.5) 0%, rgba(200,210,220,0.2) 100%);
  animation: sc1-drift1 45s linear infinite;
}
.scn-sonnet-ci .ci-cloud2 {
  top: 25%; right: 5%; width: 80px;
  background: linear-gradient(180deg, rgba(170,180,190,0.4) 0%, rgba(190,200,210,0.1) 100%);
  animation: sc1-drift2 70s linear infinite reverse;
}
@keyframes sc1-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes sc1-hills { 0% { transform: translateY(0px); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0px); } }
@keyframes sc1-tree { 0%, 100% { transform: rotate(-2deg); } 50% { transform: rotate(1deg); } }
@keyframes sc1-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(0.5deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes sc1-hand { 0%, 100% { transform: translateY(0) rotate(10deg); } 50% { transform: translateY(-8px) rotate(20deg); } }
@keyframes sc1-mist { 0% { opacity: 0.5; transform: scaleY(1); } 100% { opacity: 0.8; transform: scaleY(1.1); } }
@keyframes sc1-drift1 { 0% { transform: translateX(-30px); } 100% { transform: translateX(200vw); } }
@keyframes sc1-drift2 { 0% { transform: translateX(0); } 100% { transform: translateX(-300vw); } }

/* Scene: sonnet-ci-part2 (resolute, overcast) */
.scn-sonnet-ci-part2 {
  background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 30%, #3a3a4a 100%),
              radial-gradient(ellipse at 50% 60%, #7a7a8a 0%, transparent 60%);
}
.scn-sonnet-ci-part2 .overcast-glow {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #6a6a7a 0%, #8a8a9a 80%);
  animation: sc2-glow 10s ease-in-out infinite alternate;
}
.scn-sonnet-ci-part2 .sky-glow {
  background: radial-gradient(ellipse at 60% 30%, #b0b0c0 0%, transparent 50%);
}
.scn-sonnet-ci-part2 .tomb-base {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: sc2-base 16s ease-in-out infinite alternate;
}
.scn-sonnet-ci-part2 .tomb-pillar {
  position: absolute; bottom: 32%; left: 35%; width: 40px; height: 80px;
  background: linear-gradient(90deg, #5a5a4a 0%, #7a7a6a 50%, #5a5a4a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: sc2-pillar 20s ease-in-out infinite alternate;
}
.scn-sonnet-ci-part2 .resolute-figure {
  position: absolute; bottom: 28%; left: 50%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: sc2-figure 8s ease-in-out infinite;
}
.scn-sonnet-ci-part2 .laurel-wreath {
  position: absolute; bottom: 48%; left: 50%; width: 18px; height: 6px;
  background: #4a5a3a;
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 6px #5a6a4a;
  animation: sc2-wreath 4s ease-in-out infinite alternate;
}
.scn-sonnet-ci-part2 .age-shadows {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, rgba(20,20,30,0.5) 0%, transparent 100%);
  animation: sc2-shadow 12s ease-in-out infinite alternate;
}
.scn-sonnet-ci-part2 .light-ray {
  position: absolute; top: 10%; left: 55%; width: 80px; height: 120px;
  background: linear-gradient(180deg, rgba(200,200,220,0.3) 0%, transparent 100%);
  clip-path: polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%);
  opacity: 0.6;
  animation: sc2-ray 25s ease-in-out infinite alternate;
}
@keyframes sc2-glow { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes sc2-base { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sc2-pillar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes sc2-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes sc2-wreath { 0% { transform: translateX(-50%) rotate(-5deg); } 100% { transform: translateX(-50%) rotate(5deg); } }
@keyframes sc2-shadow { 0% { opacity: 0.3; } 100% { opacity: 0.6; } }
@keyframes sc2-ray { 0% { opacity: 0.3; transform: scaleX(0.8); } 50% { opacity: 0.7; transform: scaleX(1); } 100% { opacity: 0.4; transform: scaleX(0.9); } }

/* Scene: sonnet-cii (calm, overcast spring) */
.scn-sonnet-cii {
  background: linear-gradient(180deg, #8a9a8a 0%, #6a7a6a 30%, #4a5a4a 100%),
              radial-gradient(ellipse at 70% 50%, #9aaa9a 0%, transparent 60%);
}
.scn-sonnet-cii .spring-meadow {
  position: absolute; inset: 50% 0 0 0;
  background: linear-gradient(0deg, #5a6a3a 0%, #7a8a4a 40%, transparent 80%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  animation: sc3-meadow 15s ease-in-out infinite alternate;
}
.scn-sonnet-cii .blossom-tree {
  position: absolute; bottom: 35%; left: 30%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: sc3-tree 12s ease-in-out infinite;
}
.scn-sonnet-cii .young-love-figure {
  position: absolute; bottom: 30%; left: 55%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sc3-figure 10s ease-in-out infinite;
}
.scn-sonnet-cii .gentle-breeze {
  position: absolute; top: 20%; left: 0; width: 100%; height: 40px;
  background: linear-gradient(90deg, transparent 0%, rgba(200,220,200,0.2) 50%, transparent 100%);
  filter: blur(6px);
  animation: sc3-breeze 8s ease-in-out infinite alternate;
}
.scn-sonnet-cii .soft-cloud {
  position: absolute; height: 25px; border-radius: 50%;
  filter: blur(6px);
}
.scn-sonnet-cii .cii-cloud1 {
  top: 12%; left: 20%; width: 100px;
  background: rgba(200,210,200,0.5);
  animation: sc3-drift1 60s linear infinite;
}
.scn-sonnet-cii .cii-cloud2 {
  top: 28%; right: 10%; width: 70px;
  background: rgba(190,200,190,0.4);
  animation: sc3-drift2 80s linear infinite reverse;
}
.scn-sonnet-cii .grass-blade {
  position: absolute; bottom: 20%; left: 45%; width: 4px; height: 20px;
  background: #5a7a3a;
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: sc3-grass 4s ease-in-out infinite;
}
@keyframes sc3-meadow { 0% { opacity: 0.7; transform: scaleY(0.95); } 100% { opacity: 1; transform: scaleY(1.05); } }
@keyframes sc3-tree { 0%, 100% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } }
@keyframes sc3-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-4px) rotate(0deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes sc3-breeze { 0% { transform: translateX(-10%); opacity: 0.3; } 100% { transform: translateX(10%); opacity: 0.6; } }
@keyframes sc3-drift1 { 0% { transform: translateX(-20px); } 100% { transform: translateX(150vw); } }
@keyframes sc3-drift2 { 0% { transform: translateX(0); } 100% { transform: translateX(-200vw); } }
@keyframes sc3-grass { 0%, 100% { transform: rotate(5deg); } 50% { transform: rotate(-5deg); } }

/* Scene: sonnet-cii-part2 (resigned, overcast night) */
.scn-sonnet-cii-part2 {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #1a2a3a 100%),
              radial-gradient(ellipse at 40% 60%, #2a3a4a 0%, transparent 70%);
}
.scn-sonnet-cii-part2 .night-overcast {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 80%);
  animation: sc4-night 12s ease-in-out infinite alternate;
}
.scn-sonnet-cii-part2 .hushed-figure {
  position: absolute; bottom: 22%; left: 50%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: sc4-figure 8s ease-in-out infinite;
}
.scn-sonnet-cii-part2 .silent-lute {
  position: absolute; bottom: 25%; left: 44%; width: 30px; height: 8px;
  background: #3a2a1a;
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  transform: rotate(15deg);
  animation: sc4-lute 6s ease-in-out infinite alternate;
}
.scn-sonnet-cii-part2 .moon-hint {
  position: absolute; top: 10%; left: 65%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(200,200,220,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: sc4-moon 15s ease-in-out infinite alternate;
}
.scn-sonnet-cii-part2 .dark-bough {
  position: absolute; top: 0; left: 0; width: 60%; height: 50%;
  background: linear-gradient(180deg, #0a0a0a 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  opacity: 0.7;
  animation: sc4-bough 20s ease-in-out infinite alternate;
}
.scn-sonnet-cii-part2 .falling-leaf {
  position: absolute; top: 10%; left: 30%; width: 8px; height: 12px;
  background: #3a2a1a;
  border-radius: 20% 80% 50% 50% / 30% 60% 40% 70%;
  opacity: 0.6;
  animation: sc4-leaf 6s ease-in infinite;
}
.scn-sonnet-cii-part2 .forest-edge {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0a0a0a 0%, #1a1a1a 50%, transparent 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  animation: sc4-edge 18s ease-in-out infinite alternate;
}
@keyframes sc4-night { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes sc4-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(0.5deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(-0.5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes sc4-lute { 0% { transform: rotate(10deg); } 100% { transform: rotate(20deg); } }
@keyframes sc4-moon { 0% { opacity: 0.2; transform: scale(0.8); } 50% { opacity: 0.5; transform: scale(1); } 100% { opacity: 0.3; transform: scale(0.9); } }
@keyframes sc4-bough { 0% { transform: translateY(0); } 100% { transform: translateY(8px); } }
@keyframes sc4-leaf { 0% { transform: translate(0, 0) rotate(0deg); opacity: 0.6; } 100% { transform: translate(10px, 50vh) rotate(270deg); opacity: 0; } }
@keyframes sc4-edge { 0% { transform: scaleY(0.95); } 100% { transform: scaleY(1.05); } }

.scn-worth-sing-absence { background: linear-gradient(180deg, #1e1e2e 0%, #2a2a3e 40%, #3a3a4e 100%), radial-gradient(ellipse at 50% 30%, #3a3a4e 0%, transparent 70%); }
.scn-worth-sing-absence .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1e1e2e 100%); animation: wsa-wall 30s ease-in-out infinite alternate; }
.scn-worth-sing-absence .window-frame { position:absolute; top:10%; left:50%; width:120px; height:150px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: wsa-frame 12s ease-in-out infinite; }
.scn-worth-sing-absence .window-glass { position:absolute; top:12%; left:calc(50% - 54px); width:108px; height:130px; background: linear-gradient(180deg, rgba(180,200,220,.3) 0%, rgba(180,200,220,.1) 50%, rgba(80,100,120,.4) 100%); border-radius:2px; animation: wsa-glass 8s ease-in-out infinite alternate; }
.scn-worth-sing-absence .figure-sitting { position:absolute; bottom:20%; left:40%; width:40px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wsa-figure 6s ease-in-out infinite; }
.scn-worth-sing-absence .desk { position:absolute; bottom:20%; left:30%; right:30%; height:8px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-worth-sing-absence .candle { position:absolute; bottom:28%; left:55%; width:8px; height:20px; background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 100%); border-radius:2px; transform:rotate(3deg); }
.scn-worth-sing-absence .candle-glow { position:absolute; bottom:30%; left:55%; width:20px; height:20px; background: radial-gradient(circle, #ffd080 0%, #b08040 60%, transparent 100%); border-radius:50%; transform:translate(-50%,0); animation: wsa-glow 4s ease-in-out infinite alternate; }
.scn-worth-sing-absence .dust-mote-a { position:absolute; top:20%; left:20%; width:4px; height:4px; background: rgba(255,220,180,.4); border-radius:50%; filter:blur(1px); animation: wsa-dust 20s linear infinite; }
.scn-worth-sing-absence .dust-mote-b { position:absolute; top:40%; left:60%; width:3px; height:3px; background: rgba(255,220,180,.3); border-radius:50%; filter:blur(1px); animation: wsa-dust 25s linear infinite reverse; }
@keyframes wsa-wall { 0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes wsa-frame { 0%,100% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-50%) scale(1.01) } }
@keyframes wsa-glass { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes wsa-figure { 0% { transform:translateY(0) rotate(-1deg) } 30% { transform:translateY(-2px) rotate(1deg) } 60% { transform:translateY(0) rotate(-1deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes wsa-glow { 0% { box-shadow: 0 0 12px 4px #b08040; opacity:.8 } 50% { box-shadow: 0 0 24px 8px #ffd080; opacity:1 } 100% { box-shadow: 0 0 16px 5px #b08040; opacity:.85 } }
@keyframes wsa-dust { 0% { transform:translate(0,0) scale(1) } 25% { transform:translate(10px,-20px) scale(1.2) } 50% { transform:translate(-5px,-40px) scale(.9) } 75% { transform:translate(15px,-20px) scale(1.1) } 100% { transform:translate(0,0) scale(1) } }

.scn-take-loves-robbery { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1e1e2e 100%), radial-gradient(ellipse at 60% 40%, #3a3a4e 0%, transparent 70%); }
.scn-take-loves-robbery .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); animation: tlr-floor 20s ease-in-out infinite; }
.scn-take-loves-robbery .wall-shadow { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1e1e2e 0%, #2a2a3e 80%, transparent 100%); animation: tlr-shadow 5s ease-in-out infinite alternate; }
.scn-take-loves-robbery .figure-left { position:absolute; bottom:22%; left:30%; width:40px; height:70px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tlr-left 3s ease-in-out infinite; }
.scn-take-loves-robbery .figure-right { position:absolute; bottom:22%; right:30%; width:40px; height:70px; background: linear-gradient(180deg, #2a3a2a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tlr-right 3.5s ease-in-out infinite; }
.scn-take-loves-robbery .lamp { position:absolute; top:20%; left:50%; width:12px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:4px; }
.scn-take-loves-robbery .lamp-light { position:absolute; top:18%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse, #f0c060 0%, #b08040 40%, transparent 100%); filter:blur(4px); animation: tlr-light 4s ease-in-out infinite alternate; }
.scn-take-loves-robbery .table { position:absolute; bottom:20%; left:35%; right:35%; height:6px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius:2px; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-take-loves-robbery .shadow-stripe { position:absolute; bottom:30%; left:0; right:0; height:4px; background: linear-gradient(90deg, transparent 0%, #00000040 20%, #00000080 50%, #00000040 80%, transparent 100%); animation: tlr-stripe 6s ease-in-out infinite alternate; }
@keyframes tlr-floor { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes tlr-shadow { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes tlr-left { 0% { transform:translateX(0) rotate(-2deg) } 25% { transform:translateX(-5px) rotate(2deg) scale(1.02) } 50% { transform:translateX(0) rotate(-2deg) } 75% { transform:translateX(3px) rotate(1deg) scale(.98) } 100% { transform:translateX(0) rotate(-2deg) } }
@keyframes tlr-right { 0% { transform:translateX(0) rotate(2deg) } 25% { transform:translateX(5px) rotate(-2deg) scale(1.02) } 50% { transform:translateX(0) rotate(2deg) } 75% { transform:translateX(-3px) rotate(-1deg) scale(.98) } 100% { transform:translateX(0) rotate(2deg) } }
@keyframes tlr-light { 0% { opacity:.7; filter:blur(4px) brightness(1) } 50% { opacity:1; filter:blur(3px) brightness(1.3) } 100% { opacity:.8; filter:blur(4px) brightness(1) } }
@keyframes tlr-stripe { 0% { transform:translateY(0) scaleX(1) } 50% { transform:translateY(-2px) scaleX(1.1) } 100% { transform:translateY(0) scaleX(1) } }

.scn-petty-wrongs-liberty { background: linear-gradient(180deg, #6a6a7a 0%, #8a8a9a 30%, #9a9aaa 60%, #7a7a8a 100%), radial-gradient(ellipse at 50% 30%, #9a9aaa 0%, transparent 60%); }
.scn-petty-wrongs-liberty .sky-overcast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a5a6a 0%, #7a7a8a 100%); animation: pwl-sky 25s ease-in-out infinite alternate; }
.scn-petty-wrongs-liberty .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a5a3a 0%, #3a4a2a 100%); border-radius: 40% 0 0 0 / 20% 0 0 0; }
.scn-petty-wrongs-liberty .tree-trunk { position:absolute; bottom:30%; left:20%; width:18px; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; transform-origin: bottom center; animation: pwl-tree 10s ease-in-out infinite; }
.scn-petty-wrongs-liberty .tree-canopy { position:absolute; bottom:65%; left:10%; right:60%; height:25%; background: radial-gradient(ellipse at 50% 60%, #5a7a4a 0%, #3a5a2a 60%, transparent 100%); border-radius:50%; filter:blur(3px); animation: pwl-canopy 12s ease-in-out infinite alternate; }
.scn-petty-wrongs-liberty .figure-woman { position:absolute; bottom:30%; left:55%; width:30px; height:70px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pwl-woman 4s ease-in-out infinite; }
.scn-petty-wrongs-liberty .dress-drape { position:absolute; bottom:30%; left:53%; width:40px; height:50px; background: linear-gradient(180deg, #8a6a5a 0%, #5a4a3a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; transform-origin: top center; animation: pwl-dress 5s ease-in-out infinite alternate; }
.scn-petty-wrongs-liberty .falling-leaf { position:absolute; top:20%; left:40%; width:10px; height:8px; background: #7a8a4a; border-radius: 50% 0 50% 0; transform:rotate(30deg); animation: pwl-leaf 8s linear infinite; }
.scn-petty-wrongs-liberty .wind-sweep { position:absolute; top:10%; left:0; right:0; height:2px; background: linear-gradient(90deg, transparent 0%, rgba(100,120,160,.1) 30%, rgba(200,220,240,.2) 60%, transparent 100%); filter:blur(2px); animation: pwl-wind 6s ease-in-out infinite; }
@keyframes pwl-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pwl-tree { 0%,100% { transform:rotate(-2deg) } 50% { transform:rotate(2deg) } }
@keyframes pwl-canopy { 0% { opacity:.7; transform:scale(.95) } 50% { opacity:.9; transform:scale(1.02) } 100% { opacity:.8; transform:scale(1) } }
@keyframes pwl-woman { 0% { transform:translateY(0) rotate(0deg) } 30% { transform:translateY(-3px) rotate(2deg) } 60% { transform:translateY(0) rotate(-1deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes pwl-dress { 0% { transform:rotate(0deg) scaleX(1) } 50% { transform:rotate(5deg) scaleX(1.1) } 100% { transform:rotate(0deg) scaleX(1) } }
@keyframes pwl-leaf { 0% { transform:translate(0,0) rotate(30deg); opacity:1 } 25% { transform:translate(20px,30px) rotate(60deg); opacity:.8 } 50% { transform:translate(40px,60px) rotate(90deg); opacity:.6 } 75% { transform:translate(60px,90px) rotate(120deg); opacity:.4 } 100% { transform:translate(80px,120px) rotate(150deg); opacity:0 } }
@keyframes pwl-wind { 0% { transform:translateX(0) scaleY(1) } 50% { transform:translateX(20px) scaleY(3) } 100% { transform:translateX(0) scaleY(1) } }

.scn-grief-loss-cross { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 50%, #1a1a2a 0%, transparent 80%); }
.scn-grief-loss-cross .bg-void { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 60%, #0a0a1a 100%); animation: glc-void 15s ease-in-out infinite alternate; }
.scn-grief-loss-cross .figure-center { position:absolute; bottom:20%; left:50%; width:40px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: glc-center 8s ease-in-out infinite; }
.scn-grief-loss-cross .figure-her { position:absolute; bottom:20%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: glc-her 6s ease-in-out infinite alternate; }
.scn-grief-loss-cross .figure-him { position:absolute; bottom:20%; right:30%; width:30px; height:60px; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: glc-him 6.5s ease-in-out infinite alternate; }
.scn-grief-loss-cross .ground-line { position:absolute; bottom:20%; left:0; right:0; height:2px; background: linear-gradient(90deg, transparent 0%, #2a2a4a 20%, #3a3a5a 50%, #2a2a4a 80%, transparent 100%); filter:blur(1px); }
.scn-grief-loss-cross .shadow-pool { position:absolute; bottom:0; left:30%; right:30%; height:20%; background: radial-gradient(ellipse, #1a1a2a 0%, transparent 100%); filter:blur(6px); animation: glc-pool 7s ease-in-out infinite; }
.scn-grief-loss-cross .tear-drop { position:absolute; top:30%; left:50%; width:6px; height:10px; background: radial-gradient(circle, #6a8aaa 0%, #3a5a7a 100%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; transform:translateX(-50%); animation: glc-tear 4s ease-in-out infinite; }
.scn-grief-loss-cross .flicker { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(circle at 50% 50%, rgba(100,120,160,.05) 0%, transparent 70%); animation: glc-flicker 3s ease-in-out infinite alternate; }
@keyframes glc-void { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes glc-center { 0% { transform:translateX(-50%) translateY(0) rotate(0deg) } 25% { transform:translateX(-50%) translateY(-5px) rotate(-2deg) scale(1.02) } 50% { transform:translateX(-50%) translateY(0) rotate(0deg) } 75% { transform:translateX(-50%) translateY(-3px) rotate(1deg) scale(.98) } 100% { transform:translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes glc-her { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(-8px) rotate(-5deg) scale(1.03) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes glc-him { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(8px) rotate(5deg) scale(1.03) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes glc-pool { 0% { opacity:.3; transform:scale(1) } 50% { opacity:.5; transform:scale(1.1) } 100% { opacity:.3; transform:scale(1) } }
@keyframes glc-tear { 0% { transform:translateX(-50%) translateY(0); opacity:.9 } 30% { transform:translateX(-50%) translateY(20px); opacity:.6 } 60% { transform:translateX(-50%) translateY(40px); opacity:.3 } 100% { transform:translateX(-50%) translateY(60px); opacity:0 } }
@keyframes glc-flicker { 0% { opacity:.4 } 50% { opacity:.8 } 100% { opacity:.3 } }

/* item-wardrobe-hide */
.scn-item-wardrobe-hide {
  background: linear-gradient(180deg, #1e1a2b 0%, #2c2535 40%, #1a1520 100%), radial-gradient(ellipse at 50% 80%, #3d324a 0%, transparent 70%);
}
.scn-item-wardrobe-hide .wall {
  position: absolute; inset: 0; background: linear-gradient(0deg, #1a1520, #2c2535 80%); z-index: 0;
}
.scn-item-wardrobe-hide .wardrobe {
  position: absolute; bottom: 10%; left: 30%; width: 30%; height: 70%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2d221a 30%, #1f1812 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: inset -8px 0 12px rgba(0,0,0,0.6), inset 8px 0 12px rgba(0,0,0,0.3);
  animation: war-wardrobe 10s ease-in-out infinite;
}
.scn-item-wardrobe-hide .wardrobe-door-left,
.scn-item-wardrobe-hide .wardrobe-door-right {
  position: absolute; bottom: 10%; width: 14%; height: 60%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border: 2px solid #1f1812; border-radius: 2%; z-index: 1;
}
.scn-item-wardrobe-hide .wardrobe-door-left { left: 30%; animation: war-door-left 6s ease-in-out infinite alternate; transform-origin: left center; }
.scn-item-wardrobe-hide .wardrobe-door-right { right: 30%; animation: war-door-right 6s ease-in-out infinite alternate; transform-origin: right center; }
.scn-item-wardrobe-hide .chest {
  position: absolute; bottom: 18%; left: 36%; width: 20%; height: 12%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%);
  border-radius: 6% 6% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: war-chest 8s ease-in-out infinite;
}
.scn-item-wardrobe-hide .crack-light {
  position: absolute; bottom: 38%; left: 42%; width: 0.5%; height: 8%;
  background: radial-gradient(ellipse at center, #f0d080 0%, #c09040 100%);
  box-shadow: 0 0 16px 4px #c09040, 0 0 32px 8px rgba(192,144,64,0.4);
  animation: war-glow 4s ease-in-out infinite alternate;
}
.scn-item-wardrobe-hide .shadow-figure {
  position: absolute; bottom: 10%; left: 25%; width: 8%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.7) 0%, transparent 70%);
  border-radius: 40% 40% 20% 20%; filter: blur(2px);
  animation: war-figure 12s ease-in-out infinite;
}
@keyframes war-wardrobe { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes war-door-left { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(-30deg); } 100% { transform: rotateY(-15deg); } }
@keyframes war-door-right { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(30deg); } 100% { transform: rotateY(15deg); } }
@keyframes war-chest { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.02); } }
@keyframes war-glow { 0% { opacity: 0.6; box-shadow: 0 0 8px 2px #c09040; } 50% { opacity: 1; box-shadow: 0 0 24px 6px #f0d080, 0 0 48px 12px rgba(240,208,128,0.4); } 100% { opacity: 0.8; box-shadow: 0 0 12px 3px #c09040; } }
@keyframes war-figure { 0%,100% { transform: translate(0,0) rotate(0); } 25% { transform: translate(-2px, -1px) rotate(-3deg); } 50% { transform: translate(0, -2px) rotate(0); } 75% { transform: translate(2px, -1px) rotate(3deg); } }

/* shadows-of-beauty */
.scn-shadows-of-beauty {
  background: linear-gradient(0deg, #4a4a5a 0%, #7a7a8a 30%, #a0a0b0 60%, #c8c8d4 100%), radial-gradient(ellipse at 50% 100%, #6a6a7a 0%, transparent 60%);
}
.scn-shadows-of-beauty .overcast-sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(0deg, #b0b0c0 0%, #d0d0e0 100%); animation: sha-sky 15s ease-in-out infinite;
}
.scn-shadows-of-beauty .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #3a3a4a 0%, #5a5a6a 100%); border-radius: 60% 60% 0 0 / 30% 30% 0 0;
}
.scn-shadows-of-beauty .central-figure {
  position: absolute; bottom: 28%; left: 48%; width: 6%; height: 40%;
  background: linear-gradient(0deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sha-figure 6s ease-in-out infinite;
}
.scn-shadows-of-beauty .shadow-a,
.scn-shadows-of-beauty .shadow-b,
.scn-shadows-of-beauty .shadow-c,
.scn-shadows-of-beauty .shadow-d,
.scn-shadows-of-beauty .shadow-e {
  position: absolute; background: radial-gradient(ellipse at center, rgba(40,40,50,0.6) 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
}
.scn-shadows-of-beauty .shadow-a { bottom: 35%; left: 20%; width: 8%; height: 12%; animation: sha-drift-a 20s linear infinite; }
.scn-shadows-of-beauty .shadow-b { bottom: 32%; left: 75%; width: 6%; height: 10%; animation: sha-drift-b 25s linear infinite reverse; }
.scn-shadows-of-beauty .shadow-c { bottom: 40%; left: 10%; width: 10%; height: 8%; animation: sha-drift-c 18s linear infinite; }
.scn-shadows-of-beauty .shadow-d { bottom: 30%; left: 65%; width: 7%; height: 14%; animation: sha-drift-d 22s linear infinite; }
.scn-shadows-of-beauty .shadow-e { bottom: 38%; left: 45%; width: 5%; height: 6%; background: radial-gradient(ellipse at center, rgba(80,80,100,0.4) 0%, transparent); animation: sha-pulse 10s ease-in-out infinite alternate; }
@keyframes sha-sky { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes sha-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes sha-drift-a { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes sha-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }
@keyframes sha-drift-c { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(30px) scale(1.1); } 100% { transform: translateX(0) scale(1); } }
@keyframes sha-drift-d { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-40px) rotate(10deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sha-pulse { 0% { opacity: 0.3; transform: scale(1); } 100% { opacity: 0.8; transform: scale(1.5); } }

/* eternal-shapes */
.scn-eternal-shapes {
  background: linear-gradient(0deg, #d4c8a0 0%, #c0b080 30%, #a09070 70%, #807050 100%), radial-gradient(ellipse at 30% 50%, #e0d0b0 0%, transparent 70%);
}
.scn-eternal-shapes .bg-horizon {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #b8a888 0%, #c8b898 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  animation: ete-horizon 12s ease-in-out infinite;
}
.scn-eternal-shapes .amphora-left,
.scn-eternal-shapes .amphora-right {
  position: absolute; bottom: 20%; width: 15%; height: 60%;
  background: linear-gradient(0deg, #8a7a5a 0%, #a09070 50%, #8a7a5a 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: inset -4px 0 8px rgba(0,0,0,0.2);
}
.scn-eternal-shapes .amphora-left { left: 30%; transform: skewX(-5deg); animation: ete-amph-left 8s ease-in-out infinite; }
.scn-eternal-shapes .amphora-right { right: 30%; transform: skewX(5deg); animation: ete-amph-right 8s ease-in-out infinite; }
.scn-eternal-shapes .amphora-neck {
  position: absolute; bottom: 65%; left: 43%; width: 14%; height: 20%;
  background: linear-gradient(0deg, #a09070 0%, #b0a080 100%);
  border-radius: 30% 30% 20% 20%; z-index: 2; animation: ete-neck 6s ease-in-out infinite alternate;
}
.scn-eternal-shapes .amphora-base {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 8%;
  background: linear-gradient(0deg, #7a6a4a 0%, #8a7a5a 100%);
  border-radius: 30% 30% 20% 20%; animation: ete-base 4s ease-in-out infinite;
}
.scn-eternal-shapes .leaf-spring-left,
.scn-eternal-shapes .leaf-spring-right {
  position: absolute; bottom: 40%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #7a9a4a 0%, #5a7a2a 100%);
  border-radius: 50% 50% 20% 20%; filter: blur(2px);
}
.scn-eternal-shapes .leaf-spring-left { left: 10%; transform: rotate(-40deg); animation: ete-leaf-left 10s ease-in-out infinite alternate; }
.scn-eternal-shapes .leaf-spring-right { right: 10%; transform: rotate(40deg); animation: ete-leaf-right 10s ease-in-out infinite alternate; }
.scn-eternal-shapes .radiant-aura {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 50%;
  background: radial-gradient(ellipse at center, #f0e0c0 0%, rgba(240,224,192,0.3) 40%, transparent 70%);
  animation: ete-aura 9s ease-in-out infinite alternate;
}
@keyframes ete-horizon { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ete-amph-left { 0%,100% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-7deg) translateY(-1px); } }
@keyframes ete-amph-right { 0%,100% { transform: skewX(5deg) translateY(0); } 50% { transform: skewX(7deg) translateY(-1px); } }
@keyframes ete-neck { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes ete-base { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } }
@keyframes ete-leaf-left { 0% { transform: rotate(-40deg) scaleX(1); } 50% { transform: rotate(-35deg) scaleX(1.1); } 100% { transform: rotate(-40deg) scaleX(1); } }
@keyframes ete-leaf-right { 0% { transform: rotate(40deg) scaleX(1); } 50% { transform: rotate(35deg) scaleX(1.1); } 100% { transform: rotate(40deg) scaleX(1); } }
@keyframes ete-aura { 0% { opacity: 0.4; transform: scale(0.95); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.6; transform: scale(1); } }

/* rose-and-odour */
.scn-rose-and-odour {
  background: linear-gradient(0deg, #f0e0c0 0%, #ffd080 30%, #ffc060 60%, #ffe0a0 100%), radial-gradient(ellipse at 50% 30%, #fff0e0 0%, transparent 70%);
}
.scn-rose-and-odour .sunlit-glare {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255,255,255,0.3) 0%, transparent 50%, rgba(255,200,100,0.2) 100%);
  animation: ros-glare 8s ease-in-out infinite alternate;
}
.scn-rose-and-odour .stem {
  position: absolute; bottom: 10%; left: 50%; width: 2%; height: 50%;
  background: linear-gradient(0deg, #4a7a3a 0%, #6a9a4a 100%);
  border-radius: 10%; transform: translateX(-50%); z-index: 1;
}
.scn-rose-and-odour .rose-petal-big {
  position: absolute; bottom: 40%; left: 35%; width: 30%; height: 30%;
  background: radial-gradient(ellipse at 50% 40%, #d09080 0%, #b07060 50%, #905040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(200,144,128,0.3);
  animation: ros-petal 6s ease-in-out infinite alternate;
}
.scn-rose-and-odour .rose-center {
  position: absolute; bottom: 48%; left: 43%; width: 14%; height: 14%;
  background: radial-gradient(circle, #d0a060 0%, #b08040 100%);
  border-radius: 50%; box-shadow: inset 0 0 6px #502020;
}
.scn-rose-and-odour .canker-bloom-left,
.scn-rose-and-odour .canker-bloom-right {
  position: absolute; bottom: 30%; width: 12%; height: 12%;
  background: radial-gradient(ellipse at 50% 60%, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50%; filter: blur(2px);
  animation: ros-canker 10s ease-in-out infinite;
}
.scn-rose-and-odour .canker-bloom-left { left: 15%; transform: rotate(-20deg); }
.scn-rose-and-odour .canker-bloom-right { right: 15%; transform: rotate(20deg); }
.scn-rose-and-odour .thorn-left,
.scn-rose-and-odour .thorn-right {
  position: absolute; bottom: 25%; width: 4%; height: 8%;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a3a2a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}
.scn-rose-and-odour .thorn-left { left: 40%; transform: rotate(-30deg); animation: ros-thorn 4s ease-in-out infinite alternate; }
.scn-rose-and-odour .thorn-right { right: 40%; transform: rotate(30deg); animation: ros-thorn 4s ease-in-out infinite alternate reverse; }
.scn-rose-and-odour .scent-particle {
  position: absolute; bottom: 55%; left: 55%; width: 4%; height: 4%;
  background: radial-gradient(circle, rgba(255,200,150,0.6) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: ros-scent 15s linear infinite;
}
@keyframes ros-glare { 0% { opacity: 0.3; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes ros-petal { 0% { transform: scale(1) rotate(-1deg); } 50% { transform: scale(1.03) rotate(1deg); } 100% { transform: scale(1) rotate(-1deg); } }
@keyframes ros-canker { 0%,100% { transform: scale(1) rotate(0); } 50% { transform: scale(1.1) rotate(5deg); } }
@keyframes ros-thorn { 0% { transform: rotate(-30deg) scaleY(1); } 50% { transform: rotate(-25deg) scaleY(1.1); } 100% { transform: rotate(-30deg) scaleY(1); } }
@keyframes ros-scent { 0% { transform: translateY(0) scale(1); opacity: 0.4; } 50% { transform: translateY(-30px) scale(2); opacity: 0.1; } 100% { transform: translateY(-60px) scale(0.5); opacity: 0; } }

/* ambush-young-days */
.scn-ambush-young-days {
  background:
    linear-gradient(180deg, #6b7a7a 0%, #4a5a5a 40%, #3a4a4a 100%),
    radial-gradient(ellipse at 50% 80%, #4a5a5a 0%, #2a3a3a 70%);
}
.scn-ambush-young-days .mist-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #7a8a8a 0%, transparent 100%);
  animation: ayd-mist 20s ease-in-out infinite alternate;
}
.scn-ambush-young-days .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 60% 40% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,.5);
}
.scn-ambush-young-days .tree-l {
  position: absolute; bottom: 30%; left: 12%; width: 40px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: ayd-tree 8s ease-in-out infinite alternate;
}
.scn-ambush-young-days .tree-r {
  position: absolute; bottom: 30%; right: 18%; width: 50px; height: 140px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 30% 20% 10% 10%;
  transform-origin: bottom center;
  animation: ayd-tree-r 9s ease-in-out infinite alternate;
}
.scn-ambush-young-days .path {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 12%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.4);
  animation: ayd-path 6s ease-in-out infinite;
}
.scn-ambush-young-days .figure {
  position: absolute; bottom: 18%; left: 44%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ayd-figure 4s ease-in-out infinite;
}
.scn-ambush-young-days .fog-a {
  position: absolute; top: 20%; left: 10%; width: 100px; height: 30px;
  background: linear-gradient(180deg, rgba(200,200,200,.3) 0%, rgba(200,200,200,.05) 100%);
  border-radius: 50%; filter: blur(10px);
  animation: ayd-fog-a 40s linear infinite;
}
.scn-ambush-young-days .fog-b {
  position: absolute; top: 30%; right: 5%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(200,200,200,.25) 0%, rgba(200,200,200,.02) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: ayd-fog-b 55s linear infinite reverse;
}
.scn-ambush-young-days .leaf {
  position: absolute; top: 15%; left: 60%; width: 8px; height: 8px;
  background: #7a6a4a; border-radius: 50% 0 50% 0;
  animation: ayd-leaf 7s linear infinite;
  filter: blur(1px);
}
@keyframes ayd-mist { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes ayd-tree { 0% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(2deg) scaleY(.98) } 100% { transform: rotate(-1deg) scaleY(1) } }
@keyframes ayd-tree-r { 0% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(-2deg) scaleY(.97) } 100% { transform: rotate(1deg) scaleY(1) } }
@keyframes ayd-path { 0% { transform: scaleY(1) } 50% { transform: scaleY(.95) translateY(2px) } 100% { transform: scaleY(1) } }
@keyframes ayd-figure { 0% { transform: rotate(-1deg) translateX(0) } 25% { transform: rotate(1deg) translateX(8px) } 50% { transform: rotate(-1deg) translateX(16px) } 75% { transform: rotate(1deg) translateX(24px) } 100% { transform: rotate(0) translateX(32px) } }
@keyframes ayd-fog-a { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes ayd-fog-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes ayd-leaf { 0% { transform: translate(0,0) rotate(0) } 50% { transform: translate(40px,80px) rotate(180deg) } 100% { transform: translate(80px,160px) rotate(360deg) opacity:0 } }

/* surly-sullen-bell */
.scn-surly-sullen-bell {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2c2244 30%, #4a3a6e 60%, #6a4a3a 85%, #8a6a4a 100%),
    radial-gradient(ellipse at 50% 100%, #8a6a4a 0%, transparent 60%);
}
.scn-surly-sullen-bell .dusk-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #4a3a6e 50%, transparent 100%);
  animation: ssb-sky 12s ease-in-out infinite alternate;
}
.scn-surly-sullen-bell .horizon {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #6a4a3a 0%, #8a6a4a 100%);
  border-radius: 40% 60% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
}
.scn-surly-sullen-bell .tower {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 0 20px rgba(0,0,0,.6);
}
.scn-surly-sullen-bell .bell {
  position: absolute; bottom: 62%; left: 50%; width: 30px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 60%, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 10px 2px rgba(200,180,120,.3);
  animation: ssb-bell 4s ease-in-out infinite alternate;
}
.scn-surly-sullen-bell .rope {
  position: absolute; bottom: 42%; left: 50%; width: 4px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a1a 100%);
  border-radius: 2px;
  animation: ssb-rope 4s ease-in-out infinite;
}
.scn-surly-sullen-bell .mourner {
  position: absolute; bottom: 10%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ssb-mourner 7s ease-in-out infinite;
}
.scn-surly-sullen-bell .shadow-arch {
  position: absolute; bottom: 20%; left: 35%; right: 35%; height: 50px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: ssb-arch 9s ease-in-out infinite alternate;
}
@keyframes ssb-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes ssb-bell { 0% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(0deg) } 100% { transform: translateX(-50%) rotate(5deg) } }
@keyframes ssb-rope { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(4px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes ssb-mourner { 0% { transform: rotate(0) } 25% { transform: rotate(-3deg) } 50% { transform: rotate(0) } 75% { transform: rotate(3deg) } 100% { transform: rotate(0) } }
@keyframes ssb-arch { 0% { opacity: .3 } 50% { opacity: .7 } 100% { opacity: .5 } }

/* clay-decay */
.scn-clay-decay {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, transparent 70%);
}
.scn-clay-decay .dark-walls {
  position: absolute; inset: 5% 5% 15% 5%;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(0,0,0,.7);
}
.scn-clay-decay .floor {
  position: absolute; bottom: 5%; left: 5%; right: 5%; height: 15%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.8);
}
.scn-clay-decay .urn {
  position: absolute; bottom: 18%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 0 20px rgba(0,0,0,.5);
}
.scn-clay-decay .candle {
  position: absolute; bottom: 38%; left: 45%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px 4px 2px 2px;
  animation: cld-candle 6s ease-in-out infinite alternate;
}
.scn-clay-decay .hand {
  position: absolute; bottom: 24%; left: 56%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 30% 50% 40% 40% / 40% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cld-hand 8s ease-in-out infinite;
}
.scn-clay-decay .petal-1 {
  position: absolute; bottom: 20%; left: 42%; width: 12px; height: 12px;
  background: #a0461a; /* terracotta */
  border-radius: 50% 0 50% 0;
  animation: cld-petal1 5s ease-in-out infinite alternate;
}
.scn-clay-decay .petal-2 {
  position: absolute; bottom: 18%; left: 55%; width: 10px; height: 10px;
  background: #b87878; /* dusty rose */
  border-radius: 0 50% 0 50%;
  animation: cld-petal2 7s ease-in-out infinite alternate-reverse;
}
@keyframes cld-candle { 0% { opacity: .8; transform: translate(-50%,0) scaleY(1) } 50% { opacity: 1; transform: translate(-50%,-2px) scaleY(1.02) } 100% { opacity: .7; transform: translate(-50%,0) scaleY(1) } }
@keyframes cld-hand { 0% { transform: rotate(0) } 25% { transform: rotate(3deg) translateX(2px) } 50% { transform: rotate(0) translateX(0) } 75% { transform: rotate(-3deg) translateX(-2px) } 100% { transform: rotate(0) } }
@keyframes cld-petal1 { 0% { transform: translate(0,0) rotate(0) } 100% { transform: translate(10px,-15px) rotate(60deg) opacity: .6 } }
@keyframes cld-petal2 { 0% { transform: translate(0,0) rotate(0) } 100% { transform: translate(-8px,-12px) rotate(-45deg) opacity: .5 } }

/* forget-me-quite */
.scn-forget-me-quite {
  background:
    linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 30%, #2a3a3a 60%, #1a2a2a 100%),
    radial-gradient(ellipse at 50% 60%, #3a4a4a 0%, transparent 60%);
}
.scn-forget-me-quite .room-bg {
  position: absolute; inset: 8% 5% 12% 5%;
  background: linear-gradient(135deg, #4a5a5a 0%, #3a4a4a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.4);
}
.scn-forget-me-quite .desk {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 -4px 10px rgba(0,0,0,.3);
}
.scn-forget-me-quite .paper {
  position: absolute; bottom: 30%; left: 38%; width: 50px; height: 60px;
  background: linear-gradient(135deg, #e8e0c0 0%, #c8b890 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: fmq-paper 10s ease-in-out infinite alternate;
}
.scn-forget-me-quite .inkwell {
  position: absolute; bottom: 20%; left: 52%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 8px rgba(0,0,0,.5);
}
.scn-forget-me-quite .quill {
  position: absolute; bottom: 32%; left: 58%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  transform-origin: bottom center;
  animation: fmq-quill 3s ease-in-out infinite alternate;
}
.scn-forget-me-quite .figure-ghost {
  position: absolute; bottom: 15%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, rgba(200,200,200,.3) 0%, rgba(200,200,200,.05) 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  filter: blur(3px);
  animation: fmq-ghost 6s ease-in-out infinite;
}
.scn-forget-me-quite .curtain-l {
  position: absolute; top: 5%; left: 2%; width: 40px; height: 80%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 0 20% 20% 0;
  box-shadow: 2px 0 8px rgba(0,0,0,.3);
  animation: fmq-curtain 8s ease-in-out infinite alternate;
}
.scn-forget-me-quite .curtain-r {
  position: absolute; top: 5%; right: 2%; width: 40px; height: 80%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 20% 0 0 20%;
  box-shadow: -2px 0 8px rgba(0,0,0,.3);
  animation: fmq-curtain 8s ease-in-out infinite alternate-reverse;
}
@keyframes fmq-paper { 0% { transform: translate(0,0) rotate(0) } 50% { transform: translate(2px,-3px) rotate(1deg) } 100% { transform: translate(-1px,0) rotate(-1deg) } }
@keyframes fmq-quill { 0% { transform: rotate(0) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes fmq-ghost { 0% { opacity: .2; transform: translate(0,0) } 50% { opacity: .5; transform: translate(4px,-6px) } 100% { opacity: .2; transform: translate(-4px,0) } }
@keyframes fmq-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }

.scn-copy-nature {
  background: linear-gradient(180deg, #7a8a7a 0%, #5a6a5a 40%, #3a4a3a 100%),
              radial-gradient(ellipse at 30% 40%, #8a9a8a 0%, transparent 60%);
}
.scn-copy-nature .sky-layer {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #8a9a8a 0%, #6a7a6a 60%, transparent 100%);
  animation: cn-sky 14s ease-in-out infinite alternate;
}
.scn-copy-nature .tree-trunk {
  position: absolute; bottom: 35%; left: 30%; width: 14px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20%; transform-origin: bottom center;
  box-shadow: 2px 0 6px rgba(0,0,0,.3);
  animation: cn-sway 7s ease-in-out infinite;
}
.scn-copy-nature .tree-crown {
  position: absolute; bottom: 58%; left: 28%; width: 60px; height: 50px;
  background: radial-gradient(ellipse at 40% 60%, #5a7a4a 0%, #3a5a2a 70%);
  border-radius: 50% 40% 60% 50% / 60% 50% 50% 40%;
  box-shadow: inset -4px -4px 12px rgba(0,0,0,.3);
  animation: cn-sway 7s ease-in-out infinite reverse;
}
.scn-copy-nature .pool {
  position: absolute; bottom: 22%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 50%, #2a3a3a 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
  animation: cn-ripple 10s ease-in-out infinite;
}
.scn-copy-nature .reflection-tree {
  position: absolute; bottom: 18%; left: 28%; width: 50px; height: 40px;
  background: radial-gradient(ellipse at 40% 40%, rgba(90,110,70,.4) 0%, rgba(50,70,40,.2) 70%);
  border-radius: 50% 40% 60% 50% / 60% 50% 50% 40%;
  filter: blur(2px); opacity: 0.6;
  animation: cn-reflect 10s ease-in-out infinite;
}
.scn-copy-nature .figure {
  position: absolute; bottom: 30%; left: 50%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cn-bow 6s ease-in-out infinite;
}
.scn-copy-nature .leaf-a {
  position: absolute; top: 28%; left: 20%; width: 8px; height: 10px;
  background: radial-gradient(ellipse, #8a7a4a 0%, #6a5a2a 100%);
  border-radius: 50% 0 50% 0; transform-origin: center;
  animation: cn-leaf-a 5s ease-in-out infinite;
}
.scn-copy-nature .leaf-b {
  position: absolute; top: 32%; left: 60%; width: 6px; height: 8px;
  background: radial-gradient(ellipse, #7a8a5a 0%, #5a6a3a 100%);
  border-radius: 0 50% 0 50%; transform-origin: center;
  animation: cn-leaf-b 7s ease-in-out infinite 2s;
}
@keyframes cn-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes cn-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes cn-ripple { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes cn-reflect { 0% { opacity: 0.5; transform: scaleY(-0.7) } 50% { opacity: 0.7; transform: scaleY(-0.72) } 100% { opacity: 0.5; transform: scaleY(-0.7) } }
@keyframes cn-bow { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(-4px) rotate(3deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes cn-leaf-a { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(12px,15px) rotate(80deg) } 100% { transform: translate(24px,30px) rotate(160deg) } }
@keyframes cn-leaf-b { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(-18px,10px) rotate(-90deg) } 100% { transform: translate(-36px,20px) rotate(-180deg) } }

.scn-tongue-tied-muse {
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 40%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 30%, #5a5a6a 0%, transparent 70%);
}
.scn-tongue-tied-muse .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 60%, transparent 100%);
  animation: tm-wall 16s ease-in-out infinite alternate;
}
.scn-tongue-tied-muse .desk {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 12%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: 0 -2px 8px rgba(0,0,0,.5);
  animation: tm-desk 9s ease-in-out infinite;
}
.scn-tongue-tied-muse .figure {
  position: absolute; bottom: 22%; left: 38%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: tm-seated 6s ease-in-out infinite;
}
.scn-tongue-tied-muse .quill {
  position: absolute; bottom: 38%; left: 45%; width: 3px; height: 28px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 80%);
  border-radius: 50% 50% 20% 20%; transform-origin: bottom center;
  box-shadow: 0 0 4px rgba(200,180,120,.3);
  animation: tm-write 4s ease-in-out infinite;
}
.scn-tongue-tied-muse .paper {
  position: absolute; bottom: 22%; left: 42%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: tm-write 4s ease-in-out infinite reverse;
}
.scn-tongue-tied-muse .thought-a {
  position: absolute; top: 22%; left: 35%; width: 12px; height: 12px;
  background: radial-gradient(circle, rgba(180,170,140,.5) 0%, transparent 70%);
  border-radius: 50%; filter: blur(3px);
  animation: tm-thought-a 8s ease-in-out infinite;
}
.scn-tongue-tied-muse .thought-b {
  position: absolute; top: 18%; left: 55%; width: 10px; height: 10px;
  background: radial-gradient(circle, rgba(180,170,140,.4) 0%, transparent 70%);
  border-radius: 50%; filter: blur(3px);
  animation: tm-thought-b 10s ease-in-out infinite 3s;
}
.scn-tongue-tied-muse .glow {
  position: absolute; bottom: 42%; left: 46%; width: 6px; height: 6px;
  background: radial-gradient(circle, #c8b890 0%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 20px 4px rgba(200,184,144,.5);
  animation: tm-glow 3s ease-in-out infinite alternate;
}
@keyframes tm-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes tm-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes tm-seated { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes tm-write { 0% { transform: rotate(-10deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-10deg) } }
@keyframes tm-thought-a { 0% { transform: translate(0,0) scale(0.8); opacity: 0.3 } 50% { transform: translate(10px,-8px) scale(1.2); opacity: 0.7 } 100% { transform: translate(20px,-16px) scale(0.9); opacity: 0.2 } }
@keyframes tm-thought-b { 0% { transform: translate(0,0) scale(0.7); opacity: 0.2 } 50% { transform: translate(-12px,-6px) scale(1.1); opacity: 0.6 } 100% { transform: translate(-24px,-12px) scale(0.8); opacity: 0.1 } }
@keyframes tm-glow { 0% { box-shadow: 0 0 12px 2px rgba(200,184,144,.4); opacity: 0.7 } 100% { box-shadow: 0 0 28px 8px rgba(200,184,144,.7); opacity: 1 } }

.scn-dumb-thoughts-speaking {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 80%, #4a4a5a 0%, transparent 60%);
}
.scn-dumb-thoughts-speaking .bg-shade {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 50%, transparent 100%);
  animation: ds-shade 20s ease-in-out infinite alternate;
}
.scn-dumb-thoughts-speaking .figure {
  position: absolute; bottom: 25%; left: 48%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: ds-stand 5s ease-in-out infinite;
}
.scn-dumb-thoughts-speaking .thought-thread {
  position: absolute; bottom: 50%; left: 50%; width: 2px; height: 30px;
  background: linear-gradient(180deg, transparent 0%, rgba(160,150,140,.4) 50%, transparent 100%);
  transform: translateX(-50%);
  animation: ds-thread 7s ease-in-out infinite;
}
.scn-dumb-thoughts-speaking .word-a {
  position: absolute; bottom: 55%; left: 35%; width: 10px; height: 8px;
  background: radial-gradient(ellipse, rgba(160,150,140,.5) 0%, transparent 70%);
  border-radius: 40% 60% 30% 70%; filter: blur(2px);
  animation: ds-word-a 6s ease-in-out infinite;
}
.scn-dumb-thoughts-speaking .word-b {
  position: absolute; bottom: 60%; left: 55%; width: 8px; height: 6px;
  background: radial-gradient(ellipse, rgba(160,150,140,.4) 0%, transparent 70%);
  border-radius: 60% 40% 70% 30%; filter: blur(2px);
  animation: ds-word-b 8s ease-in-out infinite 2s;
}
.scn-dumb-thoughts-speaking .word-c {
  position: absolute; bottom: 65%; left: 45%; width: 14px; height: 10px;
  background: radial-gradient(ellipse, rgba(180,170,160,.3) 0%, transparent 70%);
  border-radius: 50% 50% 40% 60%; filter: blur(3px);
  animation: ds-word-c 9s ease-in-out infinite 4s;
}
.scn-dumb-thoughts-speaking .ground-mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(60,60,70,.3) 100%);
  filter: blur(8px);
  animation: ds-mist 12s ease-in-out infinite alternate;
}
@keyframes ds-shade { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.65 } }
@keyframes ds-stand { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(-3px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes ds-thread { 0% { opacity: 0.3; transform: translateX(-50%) scaleY(0.8) } 50% { opacity: 0.7; transform: translateX(-50%) scaleY(1.2) } 100% { opacity: 0.2; transform: translateX(-50%) scaleY(0.9) } }
@keyframes ds-word-a { 0% { transform: translate(0,0) scale(0.6); opacity: 0.1 } 50% { transform: translate(8px,-14px) scale(1.1); opacity: 0.6 } 100% { transform: translate(16px,-28px) scale(0.7); opacity: 0 } }
@keyframes ds-word-b { 0% { transform: translate(0,0) scale(0.5); opacity: 0.1 } 50% { transform: translate(-10px,-10px) scale(1); opacity: 0.5 } 100% { transform: translate(-20px,-20px) scale(0.6); opacity: 0 } }
@keyframes ds-word-c { 0% { transform: translate(0,0) scale(0.4); opacity: 0 } 50% { transform: translate(6px,-18px) scale(1.2); opacity: 0.5 } 100% { transform: translate(12px,-36px) scale(0.5); opacity: 0 } }
@keyframes ds-mist { 0% { opacity: 0.4 } 50% { opacity: 0.7 } 100% { opacity: 0.3 } }

.scn-proud-sail-verse {
  background: linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 40%, #2a3a3a 100%),
              radial-gradient(ellipse at 50% 80%, #5a6a6a 0%, transparent 70%);
}
.scn-proud-sail-verse .sky-mist {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 50%, transparent 100%);
  animation: pv-sky 18s ease-in-out infinite alternate;
}
.scn-proud-sail-verse .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 50%, #1a2a2a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 24px rgba(0,0,0,.5);
  animation: pv-sea 12s ease-in-out infinite;
}
.scn-proud-sail-verse .ship-hull {
  position: absolute; bottom: 28%; left: 30%; width: 80px; height: 22px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: pv-roll 8s ease-in-out infinite;
}
.scn-proud-sail-verse .sail-main {
  position: absolute; bottom: 44%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 60% 40% 50% 50% / 50% 30% 70% 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,.3), inset -4px -4px 8px rgba(0,0,0,.2);
  transform-origin: bottom center;
  animation: pv-billow 6s ease-in-out infinite;
}
.scn-proud-sail-verse .sail-foresail {
  position: absolute; bottom: 40%; left: 28%; width: 30px; height: 36px;
  background: linear-gradient(135deg, #7a6a4a 0%, #4a3a1a 100%);
  border-radius: 50% 40% 40% 60% / 40% 30% 70% 60%;
  box-shadow: 0 3px 8px rgba(0,0,0,.3), inset -3px -3px 6px rgba(0,0,0,.2);
  transform-origin: bottom center;
  animation: pv-billow 6s ease-in-out infinite -3s;
}
.scn-proud-sail-verse .mast {
  position: absolute; bottom: 28%; left: 38%; width: 4px; height: 68px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 4px rgba(0,0,0,.4);
  animation: pv-roll 8s ease-in-out infinite;
}
.scn-proud-sail-verse .wave-a {
  position: absolute; bottom: 22%; left: 0; width: 100%; height: 14px;
  background: radial-gradient(ellipse at 30% 50%, rgba(60,80,80,.4) 0%, transparent 70%);
  border-radius: 50%; filter: blur(3px);
  animation: pv-wave-a 10s ease-in-out infinite;
}
.scn-proud-sail-verse .wave-b {
  position: absolute; bottom: 15%; left: 0; width: 100%; height: 10px;
  background: radial-gradient(ellipse at 70% 50%, rgba(60,80,80,.3) 0%, transparent 70%);
  border-radius: 50%; filter: blur(3px);
  animation: pv-wave-b 14s ease-in-out infinite 5s;
}
@keyframes pv-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.65 } }
@keyframes pv-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes pv-roll { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes pv-billow { 0% { transform: scaleX(0.9) rotate(-1deg) } 50% { transform: scaleX(1.1) rotate(2deg) } 100% { transform: scaleX(0.9) rotate(-1deg) } }
@keyframes pv-wave-a { 0% { transform: translateX(-10px) scale(1) } 50% { transform: translateX(10px) scale(1.1) } 100% { transform: translateX(-10px) scale(1) } }
@keyframes pv-wave-b { 0% { transform: translateX(8px) scale(0.9) } 50% { transform: translateX(-8px) scale(1.05) } 100% { transform: translateX(8px) scale(0.9) } }

.scn-sonnet-cxxvii-part2 {
  background: 
    linear-gradient(180deg, #5b6b6b 0%, #4a5a5a 40%, #3a4a4a 100%),
    radial-gradient(ellipse at 50% 30%, #6b7b7b 0%, transparent 60%);
}
.scn-sonnet-cxxvii-part2 .bg-cloud { position:absolute; inset:0; background: repeating-linear-gradient(0deg, rgba(200,200,200,.1) 0px, transparent 60px); animation: s2-cloud-drift 60s linear infinite; }
.scn-sonnet-cxxvii-part2 .profile { position:absolute; left:50%; bottom:20%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 70%, #0a1a1a 100%); border-radius: 50% 35% 40% 40% / 60% 40% 40% 40%; box-shadow: inset -10px 0 10px rgba(0,0,0,.4); animation: s2-breathe 5s ease-in-out infinite; }
.scn-sonnet-cxxvii-part2 .halo { position:absolute; left:50%; bottom:60%; width:90px; height:90px; transform:translate(-50%,-50%); background: radial-gradient(circle, rgba(200,180,140,.5) 0%, rgba(200,180,140,.1) 50%, transparent 70%); border-radius:50%; animation: s2-glow 4s ease-in-out infinite alternate; }
.scn-sonnet-cxxvii-part2 .shoulder { position:absolute; left:50%; bottom:10%; width:110px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-sonnet-cxxvii-part2 .mote { position:absolute; width:6px; height:6px; background: rgba(220,200,160,.7); border-radius:50%; box-shadow: 0 0 6px 3px rgba(220,200,160,.4); }
.scn-sonnet-cxxvii-part2 .mote-a { top:50%; left:30%; animation: s2-drift-a 12s ease-in-out infinite; }
.scn-sonnet-cxxvii-part2 .mote-b { top:40%; right:25%; animation: s2-drift-b 14s ease-in-out infinite reverse; }
@keyframes s2-cloud-drift { 0% { background-position: 0 0; } 100% { background-position: 0 200px; } }
@keyframes s2-breathe { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(2px); } }
@keyframes s2-glow { 0% { opacity:.5; transform: translate(-50%,-50%) scale(.9); } 50% { opacity:.8; transform: translate(-50%,-50%) scale(1.1); } 100% { opacity:.6; transform: translate(-50%,-50%) scale(1); } }
@keyframes s2-drift-a { 0% { transform: translate(-20px, -10px) rotate(0deg); } 25% { transform: translate(0, -20px) rotate(90deg); } 50% { transform: translate(20px, 0) rotate(180deg); } 75% { transform: translate(10px, 10px) rotate(270deg); } 100% { transform: translate(-20px, -10px) rotate(360deg); } }
@keyframes s2-drift-b { 0% { transform: translate(10px,20px) rotate(0deg); } 33% { transform: translate(-5px,10px) rotate(120deg); } 66% { transform: translate(15px,-5px) rotate(240deg); } 100% { transform: translate(10px,20px) rotate(360deg); } }

.scn-sonnet-cxxviii {
  background: 
    linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 50%, #2a3a3a 100%),
    radial-gradient(ellipse at 20% 60%, #5a6a6a 0%, transparent 60%);
}
.scn-sonnet-cxxviii .wall-back { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a5a5a 0%, transparent 100%); }
.scn-sonnet-cxxviii .wall-side { position:absolute; bottom:30%; left:0; right:0; height:70%; background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-sonnet-cxxviii .keyboard { position:absolute; bottom:35%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #b8a888 0%, #988868 100%); border-radius: 4px 4px 8px 8px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-sonnet-cxxviii .hand { position:absolute; bottom:45%; width:40px; height:60px; background: linear-gradient(180deg, #c8b8a8 0%, #988878 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; }
.scn-sonnet-cxxviii .hand-l { left:25%; transform:rotate(15deg); animation: s3-hand-l 5s ease-in-out infinite; }
.scn-sonnet-cxxviii .hand-r { right:25%; transform:rotate(-15deg); animation: s3-hand-r 5s ease-in-out infinite alternate; }
.scn-sonnet-cxxviii .jack { position:absolute; bottom:50%; width:8px; height:20px; background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 100%); border-radius: 2px; }
.scn-sonnet-cxxviii .jack-a { left:30%; animation: s3-jack 2s ease-in-out infinite; }
.scn-sonnet-cxxviii .jack-b { left:45%; animation: s3-jack 2.3s ease-in-out infinite 0.6s; }
.scn-sonnet-cxxviii .jack-c { left:60%; animation: s3-jack 1.8s ease-in-out infinite 1.2s; }
@keyframes s3-hand-l { 0% { bottom:45%; transform:rotate(15deg) translateX(0); } 40% { bottom:42%; transform:rotate(10deg) translateX(2px); } 100% { bottom:45%; transform:rotate(15deg) translateX(0); } }
@keyframes s3-hand-r { 0% { bottom:45%; transform:rotate(-15deg) translateX(0); } 50% { bottom:43%; transform:rotate(-12deg) translateX(-1px); } 100% { bottom:45%; transform:rotate(-15deg) translateX(0); } }
@keyframes s3-jack { 0% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-15px) rotate(5deg); } 50% { transform:translateY(0) rotate(0deg); } 75% { transform:translateY(-8px) rotate(-3deg); } 100% { transform:translateY(0) rotate(0deg); } }

.scn-sonnet-cxxviii-part2 {
  background: 
    linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 50%, #1a2a3a 100%),
    radial-gradient(ellipse at 80% 30%, #4a5a6a 0%, transparent 60%);
}
.scn-sonnet-cxxviii-part2 .bg-curtain { position:absolute; inset:0; background: repeating-linear-gradient(90deg, rgba(30,40,50,.3) 0px, transparent 3px); animation: s4-curtain 8s ease-in-out infinite; }
.scn-sonnet-cxxviii-part2 .wood { position:absolute; bottom:30%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 8px 8px 12px 12px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-sonnet-cxxviii-part2 .finger { position:absolute; bottom:42%; left:30%; width:18px; height:50px; background: linear-gradient(180deg, #b8a898 0%, #887868 100%); border-radius: 40%; transform-origin: bottom center; animation: s4-finger 3s ease-in-out infinite; }
.scn-sonnet-cxxviii-part2 .lips { position:absolute; bottom:60%; left:50%; width:40px; height:15px; transform:translateX(-50%); background: linear-gradient(180deg, #887878 0%, #685858 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: s4-lips 2.5s ease-in-out infinite alternate; }
.scn-sonnet-cxxviii-part2 .jack-inner { position:absolute; bottom:40%; left:40%; width:6px; height:14px; background: #7a8a7a; border-radius: 2px; animation: s4-jack-inner 1.5s ease-in-out infinite; }
.scn-sonnet-cxxviii-part2 .glow-warm { position:absolute; bottom:50%; left:45%; width:70px; height:70px; background: radial-gradient(circle, rgba(180,160,140,.3) 0%, transparent 60%); border-radius:50%; animation: s4-glow 4s ease-in-out infinite alternate; }
@keyframes s4-curtain { 0% { background-position: 0 0; } 50% { background-position: -20px 0; } 100% { background-position: 0 0; } }
@keyframes s4-finger { 0% { transform: rotate(-20deg) translateY(0); } 25% { transform: rotate(-10deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-15deg) translateY(-1px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes s4-lips { 0% { transform: translateX(-50%) scale(.9); opacity:.7; } 50% { transform: translateX(-50%) scale(1.05); opacity:1; } 100% { transform: translateX(-50%) scale(.95); opacity:.8; } }
@keyframes s4-jack-inner { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-12px) rotate(8deg); } 60% { transform: translateY(0) rotate(0deg); } 80% { transform: translateY(-6px) rotate(-4deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes s4-glow { 0% { opacity:.3; transform: scale(.8); } 50% { opacity:.6; transform: scale(1.1); } 100% { opacity:.4; transform: scale(.9); } }

.scn-sonnet-cxxix {
  background: 
    linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 30%, #0a0a0a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a2a 0%, transparent 70%);
}
.scn-sonnet-cxxix .bg-void { position:absolute; inset:0; background: repeating-linear-gradient(0deg, rgba(10,10,10,.5) 0px, transparent 2px); }
.scn-sonnet-cxxix .figure-hunched { position:absolute; left:50%; bottom:20%; width:80px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: inset 0 20px 30px rgba(0,0,0,.7); animation: s5-tremble 4s ease-in-out infinite; }
.scn-sonnet-cxxix .drip { position:absolute; width:6px; height:20px; background: linear-gradient(180deg, #8a3a2a 0%, #5a1a0a 100%); border-radius: 2px; opacity:0; }
.scn-sonnet-cxxix .drip-a { left:40%; bottom:45%; animation: s5-drip 3s ease-in infinite; }
.scn-sonnet-cxxix .drip-b { left:55%; bottom:50%; animation: s5-drip 3.5s ease-in infinite 1.5s; }
.scn-sonnet-cxxix .puddle { position:absolute; left:50%; bottom:5%; width:120px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(80,30,20,.4) 0%, transparent 70%); border-radius:50%; animation: s5-puddle 6s ease-in-out infinite; }
.scn-sonnet-cxxix .shadow { position:absolute; left:50%; bottom:10%; width:100px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); border-radius:50%; animation: s5-shadow 4s ease-in-out infinite alternate; }
@keyframes s5-tremble { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 20% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 40% { transform: translateX(-50%) translateY(1px) rotate(-1deg); } 60% { transform: translateX(-50%) translateY(-1px) rotate(0deg); } 80% { transform: translateX(-50%) translateY(2px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes s5-drip { 0% { opacity:0; transform: translateY(0); } 10% { opacity:1; } 80% { opacity:1; transform: translateY(80px); } 100% { opacity:0; transform: translateY(100px); } }
@keyframes s5-puddle { 0% { transform: translateX(-50%) scale(1); opacity:.8; } 50% { transform: translateX(-50%) scale(1.05); opacity:1; } 100% { transform: translateX(-50%) scale(1); opacity:.8; } }
@keyframes s5-shadow { 0% { transform: translateX(-50%) scale(1); opacity:.3; } 50% { transform: translateX(-50%) scale(1.1); opacity:.5; } 100% { transform: translateX(-50%) scale(1); opacity:.3; } }

/* sonnet-cxxi-part2: overcast judgment, strong mood */
.scn-sonnet-cxxi-part2 {
  background:
    linear-gradient(180deg, #5b6a7a 0%, #3b4a5a 40%, #2a3848 100%),
    radial-gradient(ellipse at 50% 100%, #7a8a9a 0%, transparent 70%);
}
.scn-sonnet-cxxi-part2 .sky-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #7a8a9a 0%, #5b6a7a 100%);
  animation: c21-sky 12s ease-in-out infinite alternate;
}
.scn-sonnet-cxxi-part2 .pillar-left,
.scn-sonnet-cxxi-part2 .pillar-right {
  position: absolute; bottom: 25%; width: 14px; height: 70px;
  background: linear-gradient(180deg, #6b7a8a 0%, #4a5a6a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset -4px 0 6px rgba(0,0,0,0.3);
  animation: c21-pillar 8s ease-in-out infinite alternate;
}
.scn-sonnet-cxxi-part2 .pillar-left { left: 20%; transform: rotate(-3deg); }
.scn-sonnet-cxxi-part2 .pillar-right { right: 20%; transform: rotate(4deg); }
.scn-sonnet-cxxi-part2 .torch {
  position: absolute; bottom: 32%; left: 48%; width: 8px; height: 12px;
  background: radial-gradient(circle, #b08a5a 0%, #7a5a3a 70%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 0 20px 6px #7a5a3a, 0 0 40px 12px rgba(122,90,58,0.4);
  animation: c21-torch 3s ease-in-out infinite alternate;
}
.scn-sonnet-cxxi-part2 .figure-straight {
  position: absolute; bottom: 24%; left: 50%; width: 20px; height: 44px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a3848 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -2px 0 4px rgba(0,0,0,0.4);
  animation: c21-fig 5s ease-in-out infinite;
}
.scn-sonnet-cxxi-part2 .shadow-straight {
  position: absolute; bottom: 22%; left: 50%; width: 30px; height: 4px;
  transform: translateX(-50%);
  background: rgba(0,0,0,0.2); border-radius: 50%;
  filter: blur(3px);
  animation: c21-shadow 5s ease-in-out infinite;
}
.scn-sonnet-cxxi-part2 .mote {
  position: absolute; width: 4px; height: 4px;
  background: rgba(200,200,210,0.5); border-radius: 50%;
  filter: blur(1px);
  animation: c21-mote 20s linear infinite;
}
.scn-sonnet-cxxi-part2 .mote-1 { top: 20%; left: 30%; animation-delay: -5s; }
.scn-sonnet-cxxi-part2 .mote-2 { top: 35%; right: 40%; animation-delay: -12s; }
@keyframes c21-sky { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes c21-pillar { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes c21-torch { 0% { box-shadow: 0 0 16px 4px #7a5a3a, 0 0 32px 8px rgba(122,90,58,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 28px 8px #b08a5a, 0 0 50px 14px rgba(176,138,90,0.5); opacity: 1; } 100% { box-shadow: 0 0 20px 5px #7a5a3a, 0 0 36px 9px rgba(122,90,58,0.35); opacity: 0.9; } }
@keyframes c21-fig { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(1deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(0deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes c21-shadow { 0% { width: 30px; opacity: 0.3; } 50% { width: 28px; opacity: 0.2; } 100% { width: 30px; opacity: 0.3; } }
@keyframes c21-mote { 0% { transform: translateY(0) translateX(0); } 50% { transform: translateY(-20px) translateX(10px); opacity: 0.6; } 100% { transform: translateY(0) translateX(0); } }

/* sonnet-cxxii: eternal memory, overcast */
.scn-sonnet-cxxii {
  background:
    linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 50%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 40%, #6a7a8a 0%, transparent 70%);
}
.scn-sonnet-cxxii .bg-brain {
  position: absolute; top: 20%; left: 20%; width: 60%; height: 55%;
  background: radial-gradient(ellipse at 50% 60%, #5b6a7a 0%, #3a4a5a 80%);
  border-radius: 50% 50% 45% 45% / 60% 60% 45% 45%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
  animation: c22-brain 20s ease-in-out infinite;
}
.scn-sonnet-cxxii .tablet-left,
.scn-sonnet-cxxii .tablet-right {
  position: absolute; top: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 4px 0 8px rgba(0,0,0,0.4), inset 0 0 10px rgba(255,255,255,0.1);
  animation: c22-tablet 12s ease-in-out infinite alternate;
}
.scn-sonnet-cxxii .tablet-left { left: 25%; transform: rotate(-5deg); }
.scn-sonnet-cxxii .tablet-right { right: 25%; transform: rotate(5deg); animation-delay: -4s; }
.scn-sonnet-cxxii .carve-marks {
  position: absolute; top: 38%; left: 27%; width: 20px; height: 0;
  border-top: 1px solid #9a8a7a;
  box-shadow: 0 4px 0 #9a8a7a, 0 8px 0 #9a8a7a;
  animation: c22-carve 3s ease-in-out infinite;
}
.scn-sonnet-cxxii .spark {
  position: absolute; width: 4px; height: 4px;
  background: #c8c8d0; border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,200,210,0.5);
  animation: c22-spark 5s ease-in-out infinite;
}
.scn-sonnet-cxxii .spark-1 { top: 15%; left: 40%; animation-delay: -2s; }
.scn-sonnet-cxxii .spark-2 { top: 50%; right: 35%; animation-delay: -4s; }
.scn-sonnet-cxxii .spark-3 { bottom: 25%; left: 55%; animation-delay: -7s; }
.scn-sonnet-cxxii .dust-cloud {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,210,220,0.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: c22-dust 30s linear infinite;
}
@keyframes c22-brain { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(1deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes c22-tablet { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-4px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes c22-carve { 0% { opacity: 0.3; } 50% { opacity: 0.8; } 100% { opacity: 0.3; } }
@keyframes c22-spark { 0% { transform: translateY(0) scale(1); opacity: 0.7; } 50% { transform: translateY(-15px) scale(1.5); opacity: 1; } 100% { transform: translateY(0) scale(1); opacity: 0.7; } }
@keyframes c22-dust { 0% { transform: translateX(-10%) scale(1); } 50% { transform: translateX(5%) scale(1.2); } 100% { transform: translateX(-10%) scale(1); } }

/* sonnet-cxxii-part2: sure trust, overcast */
.scn-sonnet-cxxii-part2 {
  background:
    linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 50%, #3a4a5a 100%),
    radial-gradient(ellipse at 50% 30%, #7a8a9a 0%, transparent 70%);
}
.scn-sonnet-cxxii-part2 .bg-steadfast {
  position: absolute; inset: 10% 5% 10% 5%;
  background: linear-gradient(135deg, #4a5a6a 0%, #3a4a5a 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.3);
  animation: c22p-bg 15s ease-in-out infinite;
}
.scn-sonnet-cxxii-part2 .table-center {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #6a5a4a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  animation: c22p-table 6s ease-in-out infinite alternate;
}
.scn-sonnet-cxxii-part2 .hand-holding {
  position: absolute; bottom: 20%; left: 42%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: c22p-hand 7s ease-in-out infinite;
}
.scn-sonnet-cxxii-part2 .inscription {
  position: absolute; bottom: 35%; left: 50%; width: 50px; height: 0;
  transform: translateX(-50%);
  border-top: 2px solid #9a8a7a;
  box-shadow: 0 6px 0 #9a8a7a, 0 12px 0 #9a8a7a;
  animation: c22p-inscr 4s ease-in-out infinite;
}
.scn-sonnet-cxxii-part2 .light-beam {
  position: absolute; top: -10%; left: 40%; width: 20%; height: 120%;
  background: linear-gradient(180deg, rgba(200,210,220,0.2) 0%, transparent 100%);
  transform: rotate(15deg);
  animation: c22p-beam 6s ease-in-out infinite alternate;
}
.scn-sonnet-cxxii-part2 .shadow-guard {
  position: absolute; bottom: 22%; left: 35%; width: 30%; height: 6px;
  background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(4px);
  animation: c22p-guard 8s ease-in-out infinite;
}
.scn-sonnet-cxxii-part2 .fog {
  position: absolute; width: 40%; height: 15%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,210,220,0.12) 0%, transparent 70%);
  filter: blur(8px);
  animation: c22p-fog 25s linear infinite;
}
.scn-sonnet-cxxii-part2 .fog-a { top: 10%; left: -10%; }
.scn-sonnet-cxxii-part2 .fog-b { top: 60%; right: -10%; animation-delay: -10s; }
@keyframes c22p-bg { 0% { transform: scale(1); } 50% { transform: scale(0.98); } 100% { transform: scale(1); } }
@keyframes c22p-table { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.02) translateY(-2px); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes c22p-hand { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes c22p-inscr { 0% { opacity: 0.4; } 50% { opacity: 0.9; } 100% { opacity: 0.4; } }
@keyframes c22p-beam { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }
@keyframes c22p-guard { 0% { transform: scaleX(1); opacity: 0.2; } 50% { transform: scaleX(1.2); opacity: 0.4; } 100% { transform: scaleX(1); opacity: 0.2; } }
@keyframes c22p-fog { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(30px) scale(1.2); } 100% { transform: translateX(0) scale(1); } }

/* sonnet-cxxiii: defiant over time, overcast */
.scn-sonnet-cxxiii {
  background:
    linear-gradient(180deg, #3b4a5a 0%, #2a3a4a 50%, #1a2a3a 100%),
    radial-gradient(ellipse at 50% 30%, #5b6a7a 0%, transparent 70%);
}
.scn-sonnet-cxxiii .bg-defiant {
  position: absolute; inset: 5% 10% 10% 10%;
  background: radial-gradient(ellipse at 50% 100%, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: c23-bg 15s ease-in-out infinite alternate;
}
.scn-sonnet-cxxiii .pyramid-gone {
  position: absolute; bottom: 30%; left: 50%; width: 0; height: 0;
  transform: translateX(-50%);
  border-left: 60px solid transparent; border-right: 60px solid transparent;
  border-bottom: 40px solid #4a5a6a; opacity: 0.3;
  animation: c23-pyramid 12s ease-in-out infinite;
}
.scn-sonnet-cxxiii .hourglass-broken {
  position: absolute; top: 20%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #7a7a8a 0%, #5a5a6a 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  transform: rotate(-25deg);
  animation: c23-glass 8s ease-in-out infinite;
}
.scn-sonnet-cxxiii .figure-standing {
  position: absolute; bottom: 20%; left: 50%; width: 22px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  box-shadow: -2px 0 6px rgba(0,0,0,0.5);
  animation: c23-fig 6s ease-in-out infinite;
}
.scn-sonnet-cxxiii .staff {
  position: absolute; bottom: 15%; left: 52%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  animation: c23-staff 7s ease-in-out infinite;
}
.scn-sonnet-cxxiii .ground-crack {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 2px;
  background: #3a4a5a;
  box-shadow: 0 8px 0 #3a4a5a, 0 16px 0 #3a4a5a;
  animation: c23-crack 5s ease-in-out infinite;
}
.scn-sonnet-cxxiii .dust-storm {
  position: absolute; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,190,200,0.1) 0%, transparent 70%);
  filter: blur(6px);
  animation: c23-dust 20s linear infinite;
}
.scn-sonnet-cxxiii .dust-1 { top: 10%; left: -5%; animation-delay: -3s; }
.scn-sonnet-cxxiii .dust-2 { bottom: 30%; right: -10%; animation-delay: -12s; }
.scn-sonnet-cxxiii .wind-mark {
  position: absolute; top: 40%; left: 10%; width: 60%; height: 0;
  border-top: 1px solid rgba(180,190,200,0.2);
  animation: c23-wind 10s ease-in-out infinite;
}
@keyframes c23-bg { 0% { transform: scale(1); } 50% { transform: scale(0.97); } 100% { transform: scale(1); } }
@keyframes c23-pyramid { 0% { border-bottom-color: #4a5a6a; transform: translateX(-50%) scaleY(1); } 50% { border-bottom-color: #5b6a7a; transform: translateX(-50%) scaleY(0.9); } 100% { border-bottom-color: #4a5a6a; transform: translateX(-50%) scaleY(1); } }
@keyframes c23-glass { 0% { transform: rotate(-25deg) translateY(0); } 50% { transform: rotate(-28deg) translateY(-4px); } 100% { transform: rotate(-25deg) translateY(0); } }
@keyframes c23-fig { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(0deg); } 100% { transform: translateX(-50%) translateY(0) rotate(1deg); } }
@keyframes c23-staff { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(7deg) translateY(-3px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes c23-crack { 0% { opacity: 0.3; } 50% { opacity: 0.8; } 100% { opacity: 0.3; } }
@keyframes c23-dust { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(20px) scale(1.3); } 100% { transform: translateX(0) scale(1); } }
@keyframes c23-wind { 0% { opacity: 0.1; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.5); } 100% { opacity: 0.1; transform: scaleX(1); } }

/* death-thought (dt) – dusk sorrow */
.scn-death-thought {
  background: linear-gradient(180deg, #3b2947 0%, #5c3a4a 40%, #8c5c4a 75%, #b88a6a 100%),
              radial-gradient(ellipse at 50% 0%, #d4a070 0%, transparent 60%);
}
.scn-death-thought .dt-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a3a5a 0%, #6a4a4a 50%, transparent 100%);
  animation: dt-sky 12s ease-in-out infinite alternate;
}
.scn-death-thought .dt-hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a1a 100%);
  border-radius: 60% 40% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,.6);
  animation: dt-hills 20s ease-in-out infinite alternate;
}
.scn-death-thought .dt-sun {
  position: absolute; bottom: 50%; left: 50%; width: 50px; height: 50px;
  transform: translate(-50%, 50%);
  background: radial-gradient(circle, #f0b080 0%, #d08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,120,60,.5), 0 0 80px 40px rgba(200,120,60,.2);
  animation: dt-sun 8s ease-in-out infinite alternate;
}
.scn-death-thought .dt-figure {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dt-figure 6s ease-in-out infinite;
}
.scn-death-thought .dt-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-death-thought .dt-cloud-a {
  position: absolute; top: 12%; left: 10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(255,200,180,.4) 0%, rgba(255,200,180,.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: dt-drift-a 40s linear infinite;
}
.scn-death-thought .dt-cloud-b {
  position: absolute; top: 22%; right: 15%; width: 70px; height: 15px;
  background: linear-gradient(180deg, rgba(255,200,180,.3) 0%, rgba(255,200,180,.05) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: dt-drift-b 60s linear infinite reverse;
}
@keyframes dt-sky    { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes dt-hills  { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes dt-sun    { 0% { transform: translate(-50%, 50%) scale(1); opacity: .9 } 50% { transform: translate(-50%, 50%) scale(1.05); opacity: 1 } 100% { transform: translate(-50%, 50%) scale(.95); opacity: .85 } }
@keyframes dt-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(0) } 50% { transform: translateX(0) translateY(1px) rotate(2deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(0) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes dt-drift-a{ 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes dt-drift-b{ 0% { transform: translateX(0) } 100% { transform: translateX(-110vw) } }

/* beauty-flower (bf) – overcast fearful */
.scn-beauty-flower {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #4a4a5a 80%, #3a3a4a 100%),
              radial-gradient(ellipse at 50% 100%, #4a4a5a 0%, transparent 70%);
}
.scn-beauty-flower .bf-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 50%, transparent 100%);
  animation: bf-sky 15s ease-in-out infinite alternate;
}
.scn-beauty-flower .bf-cloud {
  position: absolute; top: 10%; left: 20%; width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(80,80,90,.5) 0%, rgba(60,60,70,.2) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: bf-cloud 25s linear infinite;
}
.scn-beauty-flower .bf-wind {
  position: absolute; top: 25%; left: 0; right: 0; height: 8px;
  background: linear-gradient(90deg, transparent 0%, rgba(180,180,200,.3) 30%, transparent 60%);
  filter: blur(4px);
  animation: bf-wind 3s ease-in-out infinite;
}
.scn-beauty-flower .bf-stem {
  position: absolute; bottom: 35%; left: 50%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%);
  border-radius: 20%;
  transform-origin: bottom center;
  animation: bf-stem 4s ease-in-out infinite alternate;
}
.scn-beauty-flower .bf-petal-1 {
  position: absolute; bottom: 68%; left: 48%; width: 20px; height: 20px;
  background: radial-gradient(circle, #c0a080 0%, #a08060 100%);
  border-radius: 50% 0 50% 0;
  transform-origin: bottom left;
  animation: bf-petal 2s ease-in-out infinite alternate;
}
.scn-beauty-flower .bf-petal-2 {
  position: absolute; bottom: 65%; left: 52%; width: 18px; height: 18px;
  background: radial-gradient(circle, #b09070 0%, #907050 100%);
  border-radius: 0 50% 0 50%;
  transform-origin: bottom right;
  animation: bf-petal 2s ease-in-out infinite alternate-reverse;
}
.scn-beauty-flower .bf-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
}
@keyframes bf-sky   { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes bf-cloud { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(60px) scaleX(1.1) } 100% { transform: translateX(120px) scaleX(1) } }
@keyframes bf-wind  { 0% { opacity: 0; transform: scaleX(.5) } 50% { opacity: .8; transform: scaleX(1.2) } 100% { opacity: 0; transform: scaleX(.5) } }
@keyframes bf-stem  { 0% { transform: rotate(-8deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.02) } 100% { transform: rotate(-2deg) scaleY(1) } }
@keyframes bf-petal { 0% { transform: rotate(-5deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(0deg) } }

/* black-ink-miracle (bi) – dim interior hopeful */
.scn-black-ink-miracle {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 40%, #1a1a1a 100%),
              radial-gradient(ellipse at 30% 70%, #3a2a1a 0%, transparent 60%);
}
.scn-black-ink-miracle .bi-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 50%, #1a1a1a 100%);
}
.scn-black-ink-miracle .bi-desk {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.5);
}
.scn-black-ink-miracle .bi-inkwell {
  position: absolute; bottom: 30%; left: 35%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: bi-inkwell 6s ease-in-out infinite alternate;
}
.scn-black-ink-miracle .bi-candle {
  position: absolute; bottom: 32%; left: 55%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 20%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.3);
}
.scn-black-ink-miracle .bi-flame {
  position: absolute; bottom: 62%; left: 55.5%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #e0a060 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 10px rgba(255,200,100,.5), 0 0 40px 20px rgba(255,200,100,.2);
  animation: bi-flame 2s ease-in-out infinite alternate;
}
.scn-black-ink-miracle .bi-hand {
  position: absolute; bottom: 28%; left: 30%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: bi-hand 4s ease-in-out infinite alternate;
}
.scn-black-ink-miracle .bi-glow {
  position: absolute; bottom: 30%; left: 35%; right: 20%; height: 40%;
  background: radial-gradient(ellipse at 60% 50%, rgba(255,200,100,.15) 0%, transparent 70%);
  animation: bi-glow 5s ease-in-out infinite alternate;
}
@keyframes bi-inkwell { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes bi-flame   { 0% { transform: scaleY(.9); opacity: .8 } 50% { transform: scaleY(1.1); opacity: 1 } 100% { transform: scaleY(.95); opacity: .9 } }
@keyframes bi-hand    { 0% { transform: translateX(0) rotate(5deg) } 50% { transform: translateX(4px) rotate(-3deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes bi-glow    { 0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .6 } }

/* restful-death-cry (rc) – overcast despair */
.scn-restful-death-cry {
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 40%, #4a4a4a 80%, #3a3a3a 100%),
              radial-gradient(ellipse at 50% 100%, #4a4a4a 0%, transparent 70%);
}
.scn-restful-death-cry .rc-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a4a4a 0%, #3a3a3a 50%, transparent 100%);
  animation: rc-sky 18s ease-in-out infinite alternate;
}
.scn-restful-death-cry .rc-tree {
  position: absolute; bottom: 35%; left: 20%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 20%;
  transform-origin: bottom center;
  animation: rc-tree 8s ease-in-out infinite alternate;
}
.scn-restful-death-cry .rc-tree::after {
  content: ''; position: absolute; top: -20px; left: -12px; width: 30px; height: 30px;
  background: radial-gradient(circle, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50%;
  filter: blur(3px);
}
.scn-restful-death-cry .rc-grave {
  position: absolute; bottom: 25%; left: 55%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.4);
  animation: rc-grave 12s ease-in-out infinite alternate;
}
.scn-restful-death-cry .rc-figure {
  position: absolute; bottom: 28%; left: 45%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rc-figure 5s ease-in-out infinite alternate;
}
.scn-restful-death-cry .rc-mist-1 {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(80,80,80,.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: rc-mist 30s linear infinite;
}
.scn-restful-death-cry .rc-mist-2 {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, rgba(90,90,90,.2) 0%, transparent 100%);
  filter: blur(8px);
  animation: rc-mist 40s linear infinite reverse;
}
.scn-restful-death-cry .rc-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  box-shadow: inset 0 6px 15px rgba(0,0,0,.5);
}
@keyframes rc-sky    { 0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .6 } }
@keyframes rc-tree   { 0% { transform: rotate(-3deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes rc-grave  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes rc-figure { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(2px) translateY(-1px) } 50% { transform: translateX(0) translateY(1px) } 75% { transform: translateX(-2px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes rc-mist   { 0% { opacity: .3; transform: scaleX(1) } 50% { opacity: .6; transform: scaleX(1.2) } 100% { opacity: .3; transform: scaleX(1) } }

/* sonnet-cxv — growing, overcast interior with fireplace */
.scn-sonnet-cxv {
  background: 
    linear-gradient(180deg, #8a9a8a 0%, #6a7a6a 40%, #4a5a4a 100%),
    radial-gradient(ellipse at 50% 30%, #6a7a6a 0%, #3a4a3a 80%);
}
.scn-sonnet-cxv .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b0b8b0 0%, #8a9a8a 100%);
  animation: scxv-sky 15s ease-in-out infinite alternate;
}
.scn-sonnet-cxv .window {
  position: absolute; bottom: 35%; left: 50%; width: 80px; height: 60px;
  transform: translateX(-50%);
  background: #c8d0c8;
  border: 6px solid #5a4a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: scxv-window 12s ease-in-out infinite;
}
.scn-sonnet-cxv .mantle {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 6px;
  background: linear-gradient(90deg, #6a5a4a, #8a7a6a, #6a5a4a);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-sonnet-cxv .firepit {
  position: absolute; bottom: 20%; left: 50%; width: 48px; height: 30px;
  transform: translateX(-50%);
  background: #3a2a1a;
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.5);
}
.scn-sonnet-cxv .flame {
  position: absolute; bottom: 22%; left: 50%; width: 20px; height: 36px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #e0a050 0%, #c07030 40%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(200,100,40,0.4);
  animation: scxv-flame 3s ease-in-out infinite;
}
.scn-sonnet-cxv .ivy-left {
  position: absolute; bottom: 30%; left: 25%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #4a7a3a, #2a5a1a);
  border-radius: 60% 0 0 40% / 80% 0 0 60%;
  transform: rotate(-10deg);
  animation: scxv-ivy 6s ease-in-out infinite alternate;
}
.scn-sonnet-cxv .ivy-right {
  position: absolute; bottom: 30%; right: 25%; width: 12px; height: 36px;
  background: linear-gradient(180deg, #5a8a4a, #3a6a2a);
  border-radius: 0 60% 40% 0 / 0 80% 60% 0;
  transform: rotate(10deg);
  animation: scxv-ivy 6s ease-in-out infinite alternate-reverse;
}
@keyframes scxv-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.85; }
  100% { opacity: 0.75; }
}
@keyframes scxv-window {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
  100% { transform: translateX(-50%) scale(0.98); }
}
@keyframes scxv-flame {
  0% { transform: translateX(-50%) scale(1) rotate(-2deg); opacity: 0.8; }
  50% { transform: translateX(-50%) scale(1.15) rotate(2deg); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95) rotate(-1deg); opacity: 0.85; }
}
@keyframes scxv-ivy {
  0% { transform: rotate(-10deg) scaleY(1); }
  50% { transform: rotate(-5deg) scaleY(1.05); }
  100% { transform: rotate(-12deg) scaleY(0.95); }
}

/* sonnet-cxv-part2 — uncertain, overcast nursery/fog scene */
.scn-sonnet-cxv-part2 {
  background: 
    linear-gradient(180deg, #8a9090 0%, #6a7070 50%, #5a6060 100%),
    radial-gradient(ellipse at 50% 50%, #7a8080 0%, #4a5050 100%);
}
.scn-sonnet-cxv-part2 .fog {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(180,190,190,0.3) 0%, rgba(200,210,210,0.5) 50%, rgba(160,170,170,0.3) 100%);
  animation: scxv2-fog 20s ease-in-out infinite alternate;
}
.scn-sonnet-cxv-part2 .window {
  position: absolute; top: 15%; right: 10%; width: 70px; height: 50px;
  background: #c0c8c8;
  border: 4px solid #4a4a4a;
  border-radius: 2px;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.2);
  animation: scxv2-window 15s ease-in-out infinite;
}
.scn-sonnet-cxv-part2 .cradle {
  position: absolute; bottom: 25%; left: 40%; width: 90px; height: 60px;
  background: linear-gradient(180deg, #7a6a5a, #5a4a3a);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: scxv2-cradle 8s ease-in-out infinite;
}
.scn-sonnet-cxv-part2 .blanket {
  position: absolute; bottom: 28%; left: 42%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #6a8a7a, #4a6a5a);
  border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%;
  transform: rotate(-5deg);
  animation: scxv2-blanket 5s ease-in-out infinite alternate;
}
.scn-sonnet-cxv-part2 .mobile-a {
  position: absolute; top: 30%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, #b0b8b8 0%, #808888 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(0,0,0,0.2);
  animation: scxv2-mobile 12s linear infinite;
}
.scn-sonnet-cxv-part2 .mobile-b {
  position: absolute; top: 28%; left: 60%; width: 16px; height: 16px;
  background: radial-gradient(circle, #a0a8a8 0%, #707878 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(0,0,0,0.2);
  animation: scxv2-mobile 15s linear infinite reverse;
}
@keyframes scxv2-fog {
  0% { opacity: 0.5; transform: translateX(-2%); }
  50% { opacity: 0.7; transform: translateX(0); }
  100% { opacity: 0.4; transform: translateX(2%); }
}
@keyframes scxv2-window {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.02); opacity: 0.9; }
  100% { transform: scale(0.98); opacity: 0.75; }
}
@keyframes scxv2-cradle {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes scxv2-blanket {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(-3deg) scaleY(1.05); }
  100% { transform: rotate(-7deg) scaleY(0.95); }
}
@keyframes scxv2-mobile {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-8px) rotate(90deg); }
  50% { transform: translateY(-12px) rotate(180deg); }
  75% { transform: translateY(-6px) rotate(270deg); }
  100% { transform: translateY(0) rotate(360deg); }
}

/* sonnet-cxvi — defiant, overcast storm with lighthouse */
.scn-sonnet-cxvi {
  background: 
    linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 40%, #1a2a3a 100%),
    radial-gradient(ellipse at 50% 0%, #4a5a6a 0%, #1a2a3a 80%);
}
.scn-sonnet-cxvi .storm-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  animation: scxvi-sky 20s ease-in-out infinite alternate;
}
.scn-sonnet-cxvi .ocean {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 80%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: scxvi-ocean 10s ease-in-out infinite;
}
.scn-sonnet-cxvi .cliff {
  position: absolute; bottom: 25%; left: 20%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #3a4a3a, #1a2a1a);
  border-radius: 60% 0 0 0 / 80% 0 0 0;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.5);
}
.scn-sonnet-cxvi .lighthouse {
  position: absolute; bottom: 28%; left: 32%; width: 28px; height: 90px;
  background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 80%);
  border-radius: 10% 10% 4% 4% / 30% 30% 4% 4%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.6);
  animation: scxvi-lighthouse 6s ease-in-out infinite;
}
.scn-sonnet-cxvi .beam {
  position: absolute; bottom: 35%; left: 30%; width: 80px; height: 120px;
  background: linear-gradient(135deg, rgba(255,220,100,0.6) 0%, rgba(255,220,100,0) 100%);
  clip-path: polygon(0% 50%, 100% 0%, 100% 100%);
  transform-origin: left center;
  animation: scxvi-beam 4s ease-in-out infinite;
}
.scn-sonnet-cxvi .ship {
  position: absolute; bottom: 15%; right: 25%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #3a3a3a, #1a1a1a);
  border-radius: 0 60% 20% 0 / 0 80% 20% 0;
  transform: rotate(5deg);
  animation: scxvi-ship 12s ease-in-out infinite;
}
.scn-sonnet-cxvi .wave-break {
  position: absolute; bottom: 20%; left: 25%; width: 60px; height: 20px;
  background: linear-gradient(180deg, rgba(200,210,220,0.3), transparent);
  border-radius: 50%;
  filter: blur(3px);
  animation: scxvi-wave 8s ease-in-out infinite;
}
@keyframes scxvi-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.7; }
}
@keyframes scxvi-ocean {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(0.98); }
}
@keyframes scxvi-lighthouse {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes scxvi-beam {
  0% { transform: rotate(-10deg) scaleX(1); opacity: 0.7; }
  50% { transform: rotate(5deg) scaleX(1.1); opacity: 1; }
  100% { transform: rotate(-8deg) scaleX(0.95); opacity: 0.8; }
}
@keyframes scxvi-ship {
  0% { transform: rotate(5deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(-8px); }
  100% { transform: rotate(6deg) translateX(0); }
}
@keyframes scxvi-wave {
  0% { transform: translateX(0) scale(1); opacity: 0.4; }
  50% { transform: translateX(10px) scale(1.1); opacity: 0.6; }
  100% { transform: translateX(-5px) scale(0.95); opacity: 0.3; }
}

/* sonnet-cxvi-part2 — steadfast, overcast mountain with lone figure */
.scn-sonnet-cxvi-part2 {
  background: 
    linear-gradient(180deg, #7a8a7a 0%, #5a6a5a 50%, #3a4a3a 100%),
    radial-gradient(ellipse at 50% 100%, #5a6a5a 0%, #2a3a2a 80%);
}
.scn-sonnet-cxvi-part2 .horizon {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #b0c0b0 0%, #8a9a8a 100%);
  animation: scxvi2-horizon 25s ease-in-out infinite alternate;
}
.scn-sonnet-cxvi-part2 .mountain {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.3);
  animation: scxvi2-mountain 20s ease-in-out infinite;
}
.scn-sonnet-cxvi-part2 .figure {
  position: absolute; bottom: 20%; left: 48%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a, #1a1a1a);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: scxvi2-figure 4s ease-in-out infinite;
}
.scn-sonnet-cxvi-part2 .cloak {
  position: absolute; bottom: 20%; left: 46%; width: 28px; height: 36px;
  background: linear-gradient(180deg, #3a3a3a, #1a1a1a);
  border-radius: 40% 40% 20% 20% / 80% 80% 30% 30%;
  transform: rotate(-10deg);
  animation: scxvi2-cloak 6s ease-in-out infinite alternate;
}
.scn-sonnet-cxvi-part2 .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a4a3a, #2a3a2a);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-sonnet-cxvi-part2 .clouds {
  position: absolute; top: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(200,210,200,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: scxvi2-clouds 40s linear infinite;
}
@keyframes scxvi2-horizon {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes scxvi2-mountain {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
  100% { transform: scaleY(0.99); }
}
@keyframes scxvi2-figure {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-0.5deg) translateY(0); }
}
@keyframes scxvi2-cloak {
  0% { transform: rotate(-10deg) scaleX(1); }
  50% { transform: rotate(-8deg) scaleX(1.05); }
  100% { transform: rotate(-12deg) scaleX(0.95); }
}
@keyframes scxvi2-clouds {
  0% { transform: translateX(-10%); }
  50% { transform: translateX(5%); }
  100% { transform: translateX(-10%); }
}

/* Scene 1: worst-at-first */
.scn-worst-at-first {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #141428 40%, #1a1a3e 70%, #0d0d1f 100%),
    radial-gradient(ellipse at 50% 0%, #1f1f3f 0%, transparent 60%);
}
.scn-worst-at-first .waf-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, rgba(20,20,60,0.8) 0%, transparent 100%);
  animation: waf-sky 20s ease-in-out infinite alternate;
}
.scn-worst-at-first .waf-cliff {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
  animation: waf-cliff 12s ease-in-out infinite alternate;
}
.scn-worst-at-first .waf-figure {
  position: absolute; bottom: 22%; left: 45%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: waf-figure 6s ease-in-out infinite;
}
.scn-worst-at-first .waf-cloak {
  position: absolute; bottom: 22%; left: 40%; width: 50px; height: 40px;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: top center;
  animation: waf-cloak 3s ease-in-out infinite alternate;
}
.scn-worst-at-first .waf-cloud1 {
  position: absolute; top: 12%; left: 10%; width: 100px; height: 25px;
  background: linear-gradient(180deg, rgba(60,60,90,0.6) 0%, rgba(30,30,60,0.2) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: waf-cloud1 35s linear infinite;
}
.scn-worst-at-first .waf-cloud2 {
  position: absolute; top: 20%; right: 5%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(50,50,80,0.5) 0%, rgba(20,20,40,0.1) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: waf-cloud2 45s linear infinite reverse;
}
.scn-worst-at-first .waf-lightning {
  position: absolute; top: 10%; left: 50%; width: 4px; height: 60px;
  background: rgba(200,200,255,0.4);
  border-radius: 2px;
  box-shadow: 0 0 20px 10px rgba(200,200,255,0.3);
  animation: waf-lightning 8s ease-in-out infinite;
}
@keyframes waf-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes waf-cliff { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes waf-figure { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(2deg) } }
@keyframes waf-cloak { 0% { transform: rotate(0deg) scale(1) } 100% { transform: rotate(8deg) scale(1.05) } }
@keyframes waf-cloud1 { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes waf-cloud2 { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes waf-lightning { 0%,100% { opacity: 0 } 30% { opacity: 1 } 40% { opacity: 0 } 50% { opacity: 0.8 } 60% { opacity: 0 } }
/* Scene 2: glory-in-birth */
.scn-glory-in-birth {
  background:
    linear-gradient(180deg, #a0a0b0 0%, #808090 30%, #606070 60%, #404050 100%),
    radial-gradient(ellipse at 30% 80%, #9090a0 0%, transparent 50%);
}
.scn-glory-in-birth .gib-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 5px 10px rgba(0,0,0,0.3);
}
.scn-glory-in-birth .gib-horse {
  position: absolute; bottom: 18%; left: 30%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 40% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: left center;
  animation: gib-horse 3s ease-in-out infinite;
}
.scn-glory-in-birth .gib-rider {
  position: absolute; bottom: 35%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gib-rider 3s ease-in-out infinite alternate;
}
.scn-glory-in-birth .gib-cape {
  position: absolute; bottom: 30%; left: 38%; width: 40px; height: 35px;
  background: linear-gradient(135deg, #c8553d 0%, #a0461a 100%);
  border-radius: 30% 50% 30% 30%;
  transform-origin: top left;
  animation: gib-cape 5s ease-in-out infinite alternate;
}
.scn-glory-in-birth .gib-lance {
  position: absolute; bottom: 35%; left: 60%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 4px;
  transform-origin: bottom center;
  animation: gib-lance 4s ease-in-out infinite;
}
.scn-glory-in-birth .gib-shield {
  position: absolute; bottom: 25%; left: 50%; width: 25px; height: 30px;
  background: linear-gradient(180deg, #a09070 0%, #706050 100%);
  border-radius: 0 0 30% 30% / 0 0 40% 40%;
  box-shadow: inset -2px -2px 4px rgba(0,0,0,0.4);
  transform-origin: center;
  animation: gib-shield 6s ease-in-out infinite alternate;
}
.scn-glory-in-birth .gib-hawk {
  position: absolute; top: 25%; left: 55%; width: 30px; height: 15px;
  background: radial-gradient(ellipse at 30% 50%, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: right center;
  animation: gib-hawk 2s ease-in-out infinite;
}
@keyframes gib-horse { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(5px) rotate(2deg) } }
@keyframes gib-rider { 0% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(-3px) rotate(2deg) } }
@keyframes gib-cape { 0% { transform: rotate(0deg) scale(1) } 100% { transform: rotate(10deg) scale(1.03) } }
@keyframes gib-lance { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } }
@keyframes gib-shield { 0% { transform: scale(1) } 100% { transform: scale(0.95) rotate(5deg) } }
@keyframes gib-hawk { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-8px) rotate(-5deg) } }
/* Scene 3: love-better-than-all */
.scn-love-better-than-all {
  background:
    linear-gradient(180deg, #c0b8a8 0%, #b0a898 30%, #a09888 60%, #908878 100%),
    radial-gradient(ellipse at 50% 50%, #d8d0c0 0%, transparent 70%);
}
.scn-love-better-than-all .lbt-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
}
.scn-love-better-than-all .lbt-fig1 {
  position: absolute; bottom: 25%; left: 38%; width: 35px; height: 55px;
  background: linear-gradient(180deg, #b87878 0%, #8a5a5a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lbt-fig1 4s ease-in-out infinite alternate;
}
.scn-love-better-than-all .lbt-fig2 {
  position: absolute; bottom: 25%; left: 48%; width: 35px; height: 55px;
  background: linear-gradient(180deg, #7a8a7a 0%, #5a6a5a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lbt-fig2 4s ease-in-out infinite alternate;
}
.scn-love-better-than-all .lbt-halo {
  position: absolute; bottom: 40%; left: 40%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,230,200,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: lbt-halo 6s ease-in-out infinite alternate;
}
.scn-love-better-than-all .lbt-petal1 {
  position: absolute; top: 30%; left: 20%; width: 12px; height: 12px;
  background: radial-gradient(circle, #f0c0a0 0%, #d0a080 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: lbt-petal 12s linear infinite;
}
.scn-love-better-than-all .lbt-petal2 {
  position: absolute; top: 45%; left: 55%; width: 10px; height: 10px;
  background: radial-gradient(circle, #e0b090 0%, #c09070 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: lbt-petal 15s linear infinite 2s;
}
.scn-love-better-than-all .lbt-petal3 {
  position: absolute; top: 35%; left: 70%; width: 14px; height: 14px;
  background: radial-gradient(circle, #d0a080 0%, #b08060 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: lbt-petal 18s linear infinite 5s;
}
@keyframes lbt-fig1 { 0% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(2px) rotate(3deg) } }
@keyframes lbt-fig2 { 0% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(-2px) rotate(-3deg) } }
@keyframes lbt-halo { 0% { opacity: 0.5; transform: scale(0.95) } 100% { opacity: 1; transform: scale(1.05) } }
@keyframes lbt-petal { 0% { transform: translateY(0) rotate(0deg) scale(1) } 50% { transform: translateY(-40px) rotate(180deg) scale(0.8) } 100% { transform: translateY(0) rotate(360deg) scale(1) } }
/* Scene 4: sonnet-xcii-part1 */
.scn-sonnet-xcii-part1 {
  background:
    linear-gradient(180deg, #404050 0%, #303040 30%, #202030 60%, #101020 100%),
    radial-gradient(ellipse at 50% 20%, #505070 0%, transparent 60%);
}
.scn-sonnet-xcii-part1 .s92-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
}
.scn-sonnet-xcii-part1 .s92-figure {
  position: absolute; bottom: 20%; left: 45%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s92-figure 5s ease-in-out infinite;
}
.scn-sonnet-xcii-part1 .s92-chain1 {
  position: absolute; bottom: 30%; left: 38%; width: 4px; height: 30px;
  background: #7a7a8a;
  border-radius: 2px;
  box-shadow: 0 15px 0 #7a7a8a, 0 30px 0 #7a7a8a;
  animation: s92-chain 3s ease-in-out infinite;
}
.scn-sonnet-xcii-part1 .s92-chain2 {
  position: absolute; bottom: 30%; left: 54%; width: 4px; height: 30px;
  background: #7a7a8a;
  border-radius: 2px;
  box-shadow: 0 15px 0 #7a7a8a, 0 30px 0 #7a7a8a;
  animation: s92-chain 3s ease-in-out infinite 0.5s;
}
.scn-sonnet-xcii-part1 .s92-wind1 {
  position: absolute; top: 15%; left: 10%; width: 60px; height: 3px;
  background: linear-gradient(90deg, transparent 0%, rgba(200,200,220,0.4) 50%, transparent 100%);
  border-radius: 2px;
  filter: blur(1px);
  animation: s92-wind 8s linear infinite;
}
.scn-sonnet-xcii-part1 .s92-wind2 {
  position: absolute; top: 30%; left: 30%; width: 80px; height: 3px;
  background: linear-gradient(90deg, transparent 0%, rgba(200,200,220,0.3) 50%, transparent 100%);
  border-radius: 2px;
  filter: blur(1px);
  animation: s92-wind 10s linear infinite 2s;
}
.scn-sonnet-xcii-part1 .s92-cloud {
  position: absolute; top: 5%; left: 60%; width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(60,60,90,0.5) 0%, rgba(30,30,60,0.1) 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: s92-cloud 30s linear infinite alternate;
}
@keyframes s92-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes s92-chain { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } }
@keyframes s92-wind { 0% { transform: translateX(-80px) } 100% { transform: translateX(120vw) } }
@keyframes s92-cloud { 0% { transform: translateX(0) scale(1) } 100% { transform: translateX(-30px) scale(1.1) } }

.scn-sonnet-cxix {
  background: linear-gradient(180deg, #3b3b4a 0%, #4c4c5e 40%, #5a5a6e 100%), radial-gradient(ellipse at 50% 100%, #5a5a6e 0%, transparent 60%);
}
.scn-sonnet-cxix .sky-overcast {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #6a6a7a 100%);
  animation: s119-sky 14s ease-in-out infinite alternate;
}
.scn-sonnet-cxix .horizon-mist {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 15%;
  background: linear-gradient(90deg, rgba(80,80,90,0.4) 0%, rgba(100,100,110,0.1) 50%, rgba(80,80,90,0.4) 100%);
  filter: blur(8px);
  animation: s119-mist 20s ease-in-out infinite;
}
.scn-sonnet-cxix .alembic {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a8a9a 0%, #6a6a7a 100%);
  border-radius: 10% 10% 30% 30% / 10% 10% 40% 40%;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,0.3);
  animation: s119-alembic 6s ease-in-out infinite;
}
.scn-sonnet-cxix .liquid-tear {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #a0a0b0 0%, #7a7a8a 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(160,160,176,0.3);
  animation: s119-tear 3s ease-in-out infinite alternate;
}
.scn-sonnet-cxix .drop-a {
  position: absolute; bottom: 18%; left: 40%; width: 6px; height: 10px;
  background: linear-gradient(180deg, #b0b0c0 0%, #8a8a9a 100%);
  border-radius: 50%;
  animation: s119-drop 2.5s ease-in infinite;
}
.scn-sonnet-cxix .drop-b {
  position: absolute; bottom: 18%; left: 60%; width: 6px; height: 10px;
  background: linear-gradient(180deg, #b0b0c0 0%, #8a8a9a 100%);
  border-radius: 50%;
  animation: s119-drop 3.2s ease-in infinite 0.8s;
}
.scn-sonnet-cxix .shadow-figure {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s119-walk 8s ease-in-out infinite;
}
.scn-sonnet-cxix .smoke {
  position: absolute; border-radius: 50%; filter: blur(5px);
  opacity: 0.5;
}
.scn-sonnet-cxix .plume-a {
  bottom: 28%; left: 35%; width: 30px; height: 30px;
  background: rgba(120,120,130,0.3);
  animation: s119-smoke 6s ease-out infinite;
}
.scn-sonnet-cxix .plume-b {
  bottom: 25%; left: 65%; width: 20px; height: 20px;
  background: rgba(120,120,130,0.2);
  animation: s119-smoke 7s ease-out infinite 1.5s;
}
@keyframes s119-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes s119-mist { 0% { transform: translateX(-10px); } 50% { transform: translateX(10px); } 100% { transform: translateX(-5px); } }
@keyframes s119-alembic { 0% { transform: translateX(-50%) rotate(-1deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(1deg) scaleY(1.02); } 100% { transform: translateX(-50%) rotate(0deg) scaleY(1); } }
@keyframes s119-tear { 0% { transform: translateX(-50%) scale(1); opacity: 0.6; } 50% { transform: translateX(-50%) scale(1.1); opacity: 1; } 100% { transform: translateX(-50%) scale(1); opacity: 0.7; } }
@keyframes s119-drop { 0% { transform: translateY(-20px) scale(0.8); opacity: 0; } 20% { opacity: 0.8; } 80% { opacity: 0.8; } 100% { transform: translateY(60px) scale(1.2); opacity: 0; } }
@keyframes s119-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(10px) translateY(0) rotate(2deg); } 75% { transform: translateX(5px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes s119-smoke { 0% { transform: translate(0,0) scale(0.5); opacity: 0.5; } 50% { transform: translate(-10px,-20px) scale(1.5); opacity: 0.2; } 100% { transform: translate(-20px,-40px) scale(2); opacity: 0; } }

.scn-sonnet-cxix-part2 {
  background: linear-gradient(180deg, #4a5a4a 0%, #5a6a5a 40%, #6a7a6a 100%), radial-gradient(ellipse at 50% 50%, #6a7a6a 0%, transparent 70%);
}
.scn-sonnet-cxix-part2 .sky-brighten {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8a9a8a 0%, #a0b0a0 100%);
  animation: s119p2-sky 12s ease-in-out infinite alternate;
}
.scn-sonnet-cxix-part2 .ground-fresh {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
}
.scn-sonnet-cxix-part2 .ruin {
  position: absolute; bottom: 30%; width: 25px; height: 60px;
  background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 100%);
  border-radius: 4px;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
}
.scn-sonnet-cxix-part2 .pillar-left {
  left: 35%;
  animation: s119p2-ruin 20s ease-in-out infinite;
}
.scn-sonnet-cxix-part2 .pillar-right {
  left: 55%;
  animation: s119p2-ruin 20s ease-in-out infinite 3s;
}
.scn-sonnet-cxix-part2 .new-sprout {
  position: absolute; bottom: 28%; left: 45%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #90b090 0%, #70a070 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: s119p2-sprout 4s ease-in-out infinite alternate;
}
.scn-sonnet-cxix-part2 .light-ray {
  position: absolute; top: 10%; width: 80px; height: 4px;
  background: linear-gradient(90deg, rgba(200,220,200,0.6) 0%, rgba(200,220,200,0) 100%);
  transform-origin: left center;
  filter: blur(2px);
}
.scn-sonnet-cxix-part2 .ray-one {
  left: 20%;
  animation: s119p2-ray 10s ease-in-out infinite alternate;
}
.scn-sonnet-cxix-part2 .ray-two {
  left: 50%;
  animation: s119p2-ray 12s ease-in-out infinite alternate 2s;
}
.scn-sonnet-cxix-part2 .butterfly {
  position: absolute; bottom: 40%; left: 48%; width: 12px; height: 8px;
  background: #c0d0c0;
  border-radius: 50%;
  box-shadow: 4px 0 0 #a0b0a0;
  animation: s119p2-butterfly 6s ease-in-out infinite;
}
@keyframes s119p2-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes s119p2-ruin { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes s119p2-sprout { 0% { transform: scaleY(0.8) rotate(-5deg); } 50% { transform: scaleY(1.1) rotate(3deg); } 100% { transform: scaleY(0.9) rotate(-2deg); } }
@keyframes s119p2-ray { 0% { transform: rotate(-15deg) scaleX(0.5); opacity: 0.3; } 50% { transform: rotate(5deg) scaleX(1.2); opacity: 0.8; } 100% { transform: rotate(-10deg) scaleX(0.8); opacity: 0.5; } }
@keyframes s119p2-butterfly { 0% { transform: translate(0,0) rotate(0deg) scale(1); } 50% { transform: translate(20px,-10px) rotate(10deg) scale(1.2); } 100% { transform: translate(0,0) rotate(-5deg) scale(1); } }

.scn-sonnet-cxx {
  background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 50%, #5a5a6a 100%), radial-gradient(ellipse at 50% 50%, #4a4a5a 0%, transparent 60%);
}
.scn-sonnet-cxx .sky-dim {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #7a7a8a 100%);
  animation: s120-sky 15s ease-in-out infinite alternate;
}
.scn-sonnet-cxx .ground-path {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-sonnet-cxx .tree-trunk {
  position: absolute; bottom: 25%; left: 50%; width: 24px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px 6px 4px 4px;
  animation: s120-trunk 12s ease-in-out infinite;
}
.scn-sonnet-cxx .tree-canopy {
  position: absolute; bottom: 55%; left: 50%; width: 90px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #5a6a5a 0%, #3a4a3a 100%);
  border-radius: 50%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
  animation: s120-canopy 18s ease-in-out infinite alternate;
}
.scn-sonnet-cxx .figure-bowing {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s120-bow 4s ease-in-out infinite;
}
.scn-sonnet-cxx .leaf {
  position: absolute; width: 10px; height: 6px;
  background: #7a8a6a;
  border-radius: 50%;
  filter: blur(1px);
}
.scn-sonnet-cxx .leaf-a {
  top: 30%; left: 30%;
  animation: s120-fall 5s linear infinite;
}
.scn-sonnet-cxx .leaf-b {
  top: 20%; left: 60%;
  animation: s120-fall 6s linear infinite 2s;
}
.scn-sonnet-cxx .pool {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, #6a7a8a 0%, #4a5a6a 100%);
  border-radius: 50%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.2);
  animation: s120-pool 8s ease-in-out infinite alternate;
}
@keyframes s120-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes s120-trunk { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes s120-canopy { 0% { transform: translateX(-50%) scaleX(0.95) rotate(-2deg); } 50% { transform: translateX(-50%) scaleX(1.05) rotate(2deg); } 100% { transform: translateX(-50%) scaleX(0.98) rotate(0deg); } }
@keyframes s120-bow { 0% { transform: translateX(0) translateY(0) rotate(-5deg); } 50% { transform: translateX(0) translateY(-3px) rotate(10deg); } 100% { transform: translateX(0) translateY(0) rotate(-5deg); } }
@keyframes s120-fall { 0% { transform: translateY(0) rotate(0deg) translateX(0); opacity: 1; } 50% { transform: translateY(40px) rotate(180deg) translateX(10px); opacity: 0.8; } 100% { transform: translateY(80px) rotate(360deg) translateX(20px); opacity: 0; } }
@keyframes s120-pool { 0% { transform: scaleX(0.8); opacity: 0.5; } 50% { transform: scaleX(1.2); opacity: 0.8; } 100% { transform: scaleX(0.9); opacity: 0.6; } }

.scn-sonnet-cxxi {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 50%, #4a4a5a 100%), radial-gradient(ellipse at 50% 30%, #4a4a5a 0%, transparent 70%);
}
.scn-sonnet-cxxi .sky-storm {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #5a5a6a 100%);
  animation: s121-sky 10s ease-in-out infinite alternate;
}
.scn-sonnet-cxxi .ground-barren {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-sonnet-cxxi .figure-defiant {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 4px rgba(0,0,0,0.5);
  animation: s121-defiant 5s ease-in-out infinite;
}
.scn-sonnet-cxxi .shackle {
  position: absolute; bottom: 30%; width: 20px; height: 16px;
  border: 3px solid #5a5a6a;
  border-radius: 50%;
  background: transparent;
}
.scn-sonnet-cxxi .left {
  left: 38%;
  animation: s121-shackle 8s ease-in-out infinite;
}
.scn-sonnet-cxxi .right {
  left: 56%;
  animation: s121-shackle 8s ease-in-out infinite 1s;
}
.scn-sonnet-cxxi .staff {
  position: absolute; bottom: 20%; left: 42%; width: 6px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 3px;
  transform-origin: bottom center;
  animation: s121-staff 6s ease-in-out infinite alternate;
}
.scn-sonnet-cxxi .light-break {
  position: absolute; top: 10%; left: 40%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(200,200,220,0.2) 0%, transparent 70%);
  filter: blur(10px);
  animation: s121-light 12s ease-in-out infinite alternate;
}
.scn-sonnet-cxxi .dust {
  position: absolute; width: 4px; height: 4px;
  background: #7a7a8a;
  border-radius: 50%;
  filter: blur(1px);
}
.scn-sonnet-cxxi .motes {
  top: 20%; left: 30%;
  animation: s121-dust 8s linear infinite;
}
@keyframes s121-sky { 0% { opacity: 0.5; background-color: #3a3a4a; } 50% { opacity: 0.9; background-color: #4a4a5a; } 100% { opacity: 0.6; background-color: #3a3a4a; } }
@keyframes s121-defiant { 0% { transform: translateX(-50%) rotate(-3deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(3deg) scaleY(1.05); } 100% { transform: translateX(-50%) rotate(-2deg) scaleY(1); } }
@keyframes s121-shackle { 0% { transform: translateY(0) rotate(0deg); opacity: 0.6; } 50% { transform: translateY(-5px) rotate(10deg); opacity: 1; } 100% { transform: translateY(0) rotate(-5deg); opacity: 0.7; } }
@keyframes s121-staff { 0% { transform: rotate(-10deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-8deg); } }
@keyframes s121-light { 0% { transform: scale(0.8); opacity: 0.2; } 50% { transform: scale(1.2); opacity: 0.5; } 100% { transform: scale(0.9); opacity: 0.3; } }
@keyframes s121-dust { 0% { transform: translateY(0) translateX(0); opacity: 0; } 20% { opacity: 0.8; } 80% { opacity: 0.5; } 100% { transform: translateY(-40px) translateX(10px); opacity: 0; } }

/* widow-fear-issueless */
.scn-widow-fear-issueless {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 40%, #2c2240 100%), radial-gradient(ellipse at 30% 80%, #2c2240 0%, transparent 60%);
}
.scn-widow-fear-issueless .room-walls {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #141428 0%, #1e1a2e 50%, #2a2038 100%);
  animation: wf-walls 10s ease-in-out infinite alternate;
}
.scn-widow-fear-issueless .window-frame {
  position: absolute; top: 15%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 100%);
  border-radius: 4% 4% 10% 10%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
  animation: wf-frame 8s ease-in-out infinite alternate;
}
.scn-widow-fear-issueless .widow-silhouette {
  position: absolute; bottom: 22%; left: 38%; width: 24%; height: 50%;
  background: linear-gradient(180deg, #0a0a14 0%, #14101a 50%, #1a1422 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wf-widow 4s ease-in-out infinite;
}
.scn-widow-fear-issueless .candle-flame {
  position: absolute; bottom: 28%; left: 52%; width: 2%; height: 4%;
  background: radial-gradient(circle, #f0c068 0%, #b08040 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #d09050, 0 0 40px 12px rgba(208,144,80,0.4);
  animation: wf-flame 0.6s ease-in-out infinite alternate;
}
.scn-widow-fear-issueless .candle-body {
  position: absolute; bottom: 24%; left: 52%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 10% 10% 20% 20%;
  transform: translateX(-50%);
}
.scn-widow-fear-issueless .shadow-veil {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,0.5) 100%);
  animation: wf-veil 12s ease-in-out infinite alternate;
}
.scn-widow-fear-issueless .dust-motes {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 60%;
  background: radial-gradient(circle at 20% 30%, rgba(200,180,160,0.3) 0%, transparent 50%),
              radial-gradient(circle at 80% 70%, rgba(180,160,140,0.2) 0%, transparent 50%);
  filter: blur(3px);
  animation: wf-dust 30s linear infinite;
}
@keyframes wf-walls { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes wf-frame { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes wf-widow { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(8%) translateY(-2%) rotate(1deg); } 50% { transform: translateX(16%) translateY(0) rotate(-1deg); } 75% { transform: translateX(8%) translateY(1%) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes wf-flame { 0% { transform: scale(1) translateY(0); opacity:0.8; } 50% { transform: scale(1.2) translateY(-5%); opacity:1; } 100% { transform: scale(0.9) translateY(2%); opacity:0.7; } }
@keyframes wf-veil { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes wf-dust { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }

/* beauty-waste-murderous-shame */
.scn-beauty-waste-murderous-shame {
  background: linear-gradient(180deg, #1a1020 0%, #2a1a2e 50%, #3a2a40 100%), radial-gradient(ellipse at 50% 120%, #3a2a40 0%, transparent 60%);
}
.scn-beauty-waste-murderous-shame .dim-room {
  position: absolute; inset: 0;
  background: linear-gradient(45deg, #1c1422 0%, #241a30 50%, #2a1a28 100%);
  animation: bw-room 15s ease-in-out infinite alternate;
}
.scn-beauty-waste-murderous-shame .mirror-oval {
  position: absolute; top: 20%; left: 50%; width: 30%; height: 50%;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #4a3a4a 0%, #6a5a6a 50%, #4a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 0 20px rgba(0,0,0,0.4);
  animation: bw-mirror 12s ease-in-out infinite alternate;
}
.scn-beauty-waste-murderous-shame .figure-waste {
  position: absolute; bottom: 20%; left: 42%; width: 16%; height: 50%;
  background: linear-gradient(180deg, #2a1a2a 0%, #3a2a3a 40%, #2a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: bw-fig 5s ease-in-out infinite;
}
.scn-beauty-waste-murderous-shame .candle-drip {
  position: absolute; bottom: 28%; left: 56%; width: 1.5%; height: 8%;
  background: linear-gradient(180deg, #c8a070 0%, #8a6040 100%);
  border-radius: 20% 20% 10% 10%;
  animation: bw-candle 3s ease-in-out infinite alternate;
}
.scn-beauty-waste-murderous-shame .wax-pool {
  position: absolute; bottom: 24%; left: 56%; width: 4%; height: 2%;
  background: radial-gradient(circle, #d0b080 0%, #a08050 70%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: bw-wax 6s ease-in-out infinite;
}
.scn-beauty-waste-murderous-shame .clock-pendulum {
  position: absolute; top: 10%; left: 30%; width: 2%; height: 30%;
  background: linear-gradient(180deg, #503020 0%, #302010 100%);
  border-radius: 40% 40% 10% 10%;
  transform-origin: top center;
  animation: bw-clock 2s ease-in-out infinite;
}
.scn-beauty-waste-murderous-shame .shadow-crawl {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  border-radius: 50%;
  animation: bw-shadow 20s ease-in-out infinite alternate;
}
@keyframes bw-room { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes bw-mirror { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.03); } 100% { transform: translateX(-50%) scale(0.97); } }
@keyframes bw-fig { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(5%) translateY(-2%); } 50% { transform: translateX(10%) translateY(0); } 75% { transform: translateX(5%) translateY(2%); } 100% { transform: translateX(0) translateY(0); } }
@keyframes bw-candle { 0% { transform: scaleY(1); opacity:0.8; } 50% { transform: scaleY(1.1); opacity:1; } 100% { transform: scaleY(0.9); opacity:0.7; } }
@keyframes bw-wax { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.5); } }
@keyframes bw-clock { 0% { transform: rotate(-15deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-15deg); } }
@keyframes bw-shadow { 0% { transform: scaleX(0.8); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(0.8); } }

/* grant-love-change-thought */
.scn-grant-love-change-thought {
  background: linear-gradient(180deg, #f0d8b0 0%, #e8c8a0 50%, #d0a880 100%), radial-gradient(ellipse at 50% 0%, #f0e0c0 0%, transparent 70%);
}
.scn-grant-love-change-thought .sunlit-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8d0b0 0%, #d8b890 50%, #c8a070 100%);
  animation: gl-wall 12s ease-in-out infinite alternate;
}
.scn-grant-love-change-thought .window-arch {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #f0e0c8 0%, #e0c8a8 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  box-shadow: inset 0 0 30px rgba(200,180,150,0.6);
  animation: gl-arch 10s ease-in-out infinite alternate;
}
.scn-grant-love-change-thought .sunbeam-dust {
  position: absolute; top: 20%; left: 35%; width: 30%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,220,180,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: gl-beam 8s ease-in-out infinite alternate;
}
.scn-grant-love-change-thought .beloved-figure {
  position: absolute; bottom: 20%; left: 35%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #c8a080 0%, #a88060 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: gl-beloved 6s ease-in-out infinite;
}
.scn-grant-love-change-thought .hateful-figure {
  position: absolute; bottom: 20%; right: 35%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #8a6050 0%, #6a4030 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: gl-hateful 7s ease-in-out infinite;
}
.scn-grant-love-change-thought .rose-petal {
  position: absolute; bottom: 35%; left: 48%; width: 4%; height: 3%;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 60%, transparent 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 10px 2px rgba(200,85,61,0.5);
  animation: gl-rose 4s ease-in-out infinite alternate;
}
.scn-grant-love-change-thought .warm-hearth {
  position: absolute; bottom: 5%; left: 30%; width: 40%; height: 25%;
  background: linear-gradient(180deg, #b08040 0%, #8a6020 100%);
  border-radius: 40% 40% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
}
@keyframes gl-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes gl-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes gl-beam { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes gl-beloved { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2%) rotate(1deg); } 50% { transform: translateX(4%) rotate(-1deg); } 75% { transform: translateX(2%) rotate(0deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes gl-hateful { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-2%) rotate(-1deg); } 50% { transform: translateX(-4%) rotate(1deg); } 75% { transform: translateX(-2%) rotate(0deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes gl-rose { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5%) scale(1.2); } 100% { transform: translateY(0) scale(1); } }

/* self-another-copy */
.scn-self-another-copy {
  background: linear-gradient(180deg, #e0f0ff 0%, #c0d8f0 50%, #a0c0e0 100%), radial-gradient(ellipse at 50% 100%, #c0d8f0 0%, transparent 70%);
}
.scn-self-another-copy .garden-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c0d8f0 0%, #e0e8f0 100%);
  animation: sa-sky 20s ease-in-out infinite alternate;
}
.scn-self-another-copy .garden-grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #80a060 0%, #609040 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  animation: sa-grass 15s ease-in-out infinite alternate;
}
.scn-self-another-copy .reflection-pool {
  position: absolute; bottom: 25%; left: 50%; width: 20%; height: 15%;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #a0c0d0 0%, #80a0b0 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.1), 0 0 30px rgba(160,192,208,0.3);
  animation: sa-pool 8s ease-in-out infinite alternate;
}
.scn-self-another-copy .self-figure {
  position: absolute; bottom: 20%; left: 40%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #c8a080 0%, #a88060 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: sa-self 5s ease-in-out infinite;
}
.scn-self-another-copy .mirror-self {
  position: absolute; bottom: 20%; left: 52%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #b89878 0%, #987060 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: scaleX(-1);
  opacity: 0.8;
  animation: sa-mirror 5s ease-in-out infinite;
}
.scn-self-another-copy .sun-glow {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(circle, rgba(255,240,200,0.6) 0%, rgba(255,220,160,0.2) 50%, transparent 80%);
  filter: blur(8px);
  animation: sa-sun 12s ease-in-out infinite alternate;
}
.scn-self-another-copy .flower-stems {
  position: absolute; bottom: 25%; left: 10%; width: 80%; height: 20%;
  background: radial-gradient(ellipse at 10% 100%, #508020 0%, transparent 20%),
              radial-gradient(ellipse at 30% 100%, #408020 0%, transparent 20%),
              radial-gradient(ellipse at 50% 100%, #508020 0%, transparent 20%),
              radial-gradient(ellipse at 70% 100%, #408020 0%, transparent 20%),
              radial-gradient(ellipse at 90% 100%, #508020 0%, transparent 20%);
  background-size: 20% 100%, 20% 100%, 20% 100%, 20% 100%, 20% 100%;
  background-repeat: no-repeat;
  animation: sa-flowers 6s ease-in-out infinite alternate;
}
@keyframes sa-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes sa-grass { 0% { transform: translateY(0); } 50% { transform: translateY(-2%); } 100% { transform: translateY(0); } }
@keyframes sa-pool { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05); } 100% { transform: translateX(-50%) scale(0.95); } }
@keyframes sa-self { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(3%) translateY(-2%); } 50% { transform: translateX(6%) translateY(0); } 75% { transform: translateX(3%) translateY(2%); } 100% { transform: translateX(0) translateY(0); } }
@keyframes sa-mirror { 0% { transform: scaleX(-1) translateX(0) translateY(0); } 25% { transform: scaleX(-1) translateX(-3%) translateY(-2%); } 50% { transform: scaleX(-1) translateX(-6%) translateY(0); } 75% { transform: scaleX(-1) translateX(-3%) translateY(2%); } 100% { transform: scaleX(-1) translateX(0) translateY(0); } }
@keyframes sa-sun { 0% { transform: scale(1); opacity:0.6; } 50% { transform: scale(1.2); opacity:0.8; } 100% { transform: scale(0.9); opacity:0.5; } }
@keyframes sa-flowers { 0% { background-position: 10% 100%, 30% 100%, 50% 100%, 70% 100%, 90% 100%; } 100% { background-position: 12% 100%, 28% 100%, 52% 100%, 68% 100%, 88% 100%; } }

.scn-item-chest-treasure {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #0f0a08 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-item-chest-treasure .chest-base {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 120px;
  height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2418 100%);
  border-radius: 4% 4% 6% 6%;
  box-shadow: 0 8px 16px rgba(0,0,0,.7);
  animation: ch-base 8s ease-in-out infinite;
}
.scn-item-chest-treasure .chest-lid {
  position: absolute;
  bottom: calc(20% + 50px);
  left: 50%;
  width: 100px;
  height: 25px;
  transform: translateX(-50%) rotate(0deg);
  background: linear-gradient(180deg, #6a4a2e 0%, #4a2e18 100%);
  border-radius: 6% 6% 2% 2%;
  transform-origin: bottom center;
  animation: ch-lid 4s ease-in-out infinite alternate;
  box-shadow: 0 -4px 8px rgba(0,0,0,.5);
}
.scn-item-chest-treasure .glow {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 40px;
  height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #b07830 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #b07830, 0 0 60px 20px rgba(176,120,48,.4);
  animation: ch-glow 2.5s ease-in-out infinite alternate;
}
.scn-item-chest-treasure .shadow {
  position: absolute;
  bottom: 16%;
  left: 50%;
  width: 140px;
  height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  animation: ch-shadow 4s ease-in-out infinite alternate;
}
.scn-item-chest-treasure .figure {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #1a120e 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ch-figure 6s ease-in-out infinite;
}
.scn-item-chest-treasure .dust {
  position: absolute;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(200,160,100,.15);
  filter: blur(2px);
}
.scn-item-chest-treasure .dust-a {
  top: 30%;
  left: 60%;
  animation: ch-dust-a 12s linear infinite;
}
.scn-item-chest-treasure .dust-b {
  top: 50%;
  left: 20%;
  animation: ch-dust-b 18s linear infinite reverse;
}

@keyframes ch-base {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
}
@keyframes ch-lid {
  0% { transform: translateX(-50%) rotate(-5deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(-8deg); }
}
@keyframes ch-glow {
  0% { opacity: .6; box-shadow: 0 0 20px 5px #b07830, 0 0 40px 10px rgba(176,120,48,.3); }
  50% { opacity: 1; box-shadow: 0 0 40px 15px #ffd080, 0 0 80px 25px rgba(255,208,128,.5); }
  100% { opacity: .7; box-shadow: 0 0 25px 8px #b07830, 0 0 50px 15px rgba(176,120,48,.35); }
}
@keyframes ch-shadow {
  0% { transform: translateX(-50%) scaleX(1); opacity: .6; }
  100% { transform: translateX(-50%) scaleX(1.2); opacity: .8; }
}
@keyframes ch-figure {
  0%, 100% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(8px) rotate(1deg); }
  50% { transform: translateX(16px) rotate(-1deg); }
  75% { transform: translateX(24px) rotate(2deg); }
}
@keyframes ch-dust-a {
  0% { transform: translate(0, 0) scale(1); opacity: .4; }
  50% { transform: translate(-20px, -30px) scale(1.5); opacity: .1; }
  100% { transform: translate(-40px, -60px) scale(1); opacity: .4; }
}
@keyframes ch-dust-b {
  0% { transform: translate(0, 0) scale(1); opacity: .3; }
  33% { transform: translate(15px, -20px) scale(1.3); opacity: .5; }
  66% { transform: translate(30px, -40px) scale(.8); opacity: .2; }
  100% { transform: translate(45px, -60px) scale(1); opacity: .3; }
}

.scn-self-defence {
  background: 
    linear-gradient(180deg, #3a3a42 0%, #2a2a32 40%, #1a1a22 100%),
    radial-gradient(ellipse at 50% 80%, #4a4a52 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-self-defence .sky {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a5a62 0%, #2a2a32 100%);
  animation: sd-sky 15s ease-in-out infinite alternate;
}
.scn-self-defence .figure {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 40px;
  height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0c0c12 0%, #040408 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sd-figure 5s ease-in-out infinite;
}
.scn-self-defence .arm {
  position: absolute;
  bottom: 55%;
  left: 50%;
  width: 12px;
  height: 60px;
  transform: translateX(-50%) rotate(30deg);
  transform-origin: bottom center;
  background: linear-gradient(180deg, #0c0c12 0%, #040408 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  animation: sd-arm 3.5s ease-in-out infinite alternate;
}
.scn-self-defence .shadow {
  position: absolute;
  bottom: 18%;
  left: 50%;
  width: 80px;
  height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%);
  animation: sd-shadow 4s ease-in-out infinite alternate;
}
.scn-self-defence .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #2a2a32 0%, #1a1a22 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}

@keyframes sd-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes sd-figure {
  0%, 100% { transform: translateX(-50%) rotate(-2deg) translateY(0); }
  25% { transform: translateX(-50%) rotate(1deg) translateY(-2px); }
  50% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  75% { transform: translateX(-50%) rotate(-1deg) translateY(-3px); }
}
@keyframes sd-arm {
  0% { transform: translateX(-50%) rotate(20deg) scaleY(1); }
  50% { transform: translateX(-50%) rotate(40deg) scaleY(1.05); }
  100% { transform: translateX(-50%) rotate(25deg) scaleY(1); }
}
@keyframes sd-shadow {
  0% { transform: translateX(-50%) scaleX(1); opacity: .6; }
  50% { transform: translateX(-50%) scaleX(1.3); opacity: .9; }
  100% { transform: translateX(-50%) scaleX(1); opacity: .6; }
}

.scn-lawful-reasons {
  background: 
    linear-gradient(180deg, #3f3f47 0%, #2f2f37 50%, #1f1f27 100%),
    radial-gradient(ellipse at 50% 60%, #4f4f57 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-lawful-reasons .hand {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 30px;
  height: 40px;
  transform: translateX(-50%) rotate(-10deg);
  background: linear-gradient(180deg, #2a241a 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: lr-hand 3s ease-in-out infinite alternate;
}
.scn-lawful-reasons .arm {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 14px;
  height: 70px;
  transform: translateX(-50%) rotate(15deg);
  transform-origin: bottom center;
  background: linear-gradient(180deg, #2a241a 0%, #1a1410 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: lr-arm 3s ease-in-out infinite alternate;
}
.scn-lawful-reasons .book {
  position: absolute;
  bottom: 50%;
  left: 40%;
  width: 40px;
  height: 30px;
  transform: translateY(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e16 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 2px 2px 8px rgba(0,0,0,.5);
  animation: lr-book 6s ease-in-out infinite;
}
.scn-lawful-reasons .scale-left {
  position: absolute;
  bottom: 55%;
  right: 30%;
  width: 20px;
  height: 20px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2e 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform-origin: top center;
  animation: lr-scale-l 4s ease-in-out infinite alternate;
}
.scn-lawful-reasons .scale-right {
  position: absolute;
  bottom: 55%;
  left: 30%;
  width: 20px;
  height: 20px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2e 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform-origin: top center;
  animation: lr-scale-r 4s ease-in-out infinite alternate;
}
.scn-lawful-reasons .glow {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 50px;
  height: 50px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #c8a060 0%, #a07830 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px #a07830;
  animation: lr-glow 2s ease-in-out infinite alternate;
}

@keyframes lr-hand {
  0% { transform: translateX(-50%) rotate(-15deg) scale(1); }
  50% { transform: translateX(-50%) rotate(-5deg) scale(1.05); }
  100% { transform: translateX(-50%) rotate(-10deg) scale(1); }
}
@keyframes lr-arm {
  0% { transform: translateX(-50%) rotate(10deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(20deg) translateY(-5px); }
  100% { transform: translateX(-50%) rotate(15deg) translateY(0); }
}
@keyframes lr-book {
  0%, 100% { transform: translateY(-50%) rotate(0deg); }
  50% { transform: translateY(-50%) rotate(5deg); }
}
@keyframes lr-scale-l {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-5px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes lr-scale-r {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-5px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes lr-glow {
  0% { opacity: .4; box-shadow: 0 0 20px 5px #a07830; }
  50% { opacity: .8; box-shadow: 0 0 50px 15px #d0a050; }
  100% { opacity: .5; box-shadow: 0 0 30px 8px #a07830; }
}

.scn-heavy-journey {
  background: 
    linear-gradient(180deg, #4a4a50 0%, #3a3a40 40%, #2a2a30 100%),
    radial-gradient(ellipse at 50% 80%, #5a5a62 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-heavy-journey .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a5a62 0%, #3a3a40 100%);
  animation: hj-sky 20s ease-in-out infinite alternate;
}
.scn-heavy-journey .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #3a3a30 0%, #2a2a20 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-heavy-journey .beast {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 100px;
  height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e16 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: hj-beast 8s ease-in-out infinite;
}
.scn-heavy-journey .rider {
  position: absolute;
  bottom: 52%;
  left: 50%;
  width: 30px;
  height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hj-rider 8s ease-in-out infinite;
}
.scn-heavy-journey .reins {
  position: absolute;
  bottom: 50%;
  left: 50%;
  width: 40px;
  height: 4px;
  transform: translate(-50%, -50%) rotate(-10deg);
  background: #1a1410;
  border-radius: 2px;
  animation: hj-reins 8s ease-in-out infinite;
}
.scn-heavy-journey .road {
  position: absolute;
  bottom: 18%;
  left: 0;
  right: 0;
  height: 6px;
  background: linear-gradient(90deg, transparent, #4a3a2a, transparent);
  animation: hj-road 12s linear infinite;
  opacity: .5;
}
.scn-heavy-journey .dust {
  position: absolute;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(80,70,60,.15);
  filter: blur(3px);
}
.scn-heavy-journey .dust-a {
  bottom: 35%;
  left: 40%;
  animation: hj-dust-a 15s linear infinite;
}
.scn-heavy-journey .dust-b {
  bottom: 30%;
  left: 60%;
  animation: hj-dust-b 20s linear infinite reverse;
}

@keyframes hj-sky {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .6; }
}
@keyframes hj-beast {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  25% { transform: translateX(-50%) translateY(-4px) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(0deg); }
  75% { transform: translateX(-50%) translateY(-5px) rotate(1deg); }
}
@keyframes hj-rider {
  0%, 100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-4px) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(0deg); }
  75% { transform: translateX(-50%) translateY(-5px) rotate(2deg); }
}
@keyframes hj-reins {
  0%, 100% { transform: translate(-50%, -50%) rotate(-10deg); }
  50% { transform: translate(-50%, -50%) rotate(-5deg); }
}
@keyframes hj-road {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}
@keyframes hj-dust-a {
  0% { transform: translate(0, 0) scale(1); opacity: .3; }
  50% { transform: translate(-30px, -40px) scale(1.5); opacity: .1; }
  100% { transform: translate(-60px, -80px) scale(1); opacity: .3; }
}
@keyframes hj-dust-b {
  0% { transform: translate(0, 0) scale(1); opacity: .2; }
  33% { transform: translate(20px, -25px) scale(1.3); opacity: .4; }
  66% { transform: translate(40px, -50px) scale(.8); opacity: .1; }
  100% { transform: translate(60px, -75px) scale(1); opacity: .2; }
}

/* Scene: usury-breeding – dim interior, calm */
.scn-usury-breeding {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1f18 30%, #3a2a20 70%, #2a1f18 100%),
    radial-gradient(ellipse at 50% 80%, #4a3528 0%, transparent 70%);
}
.scn-usury-breeding .room-bg {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #2a1f18 0%, #0a0806 100%); animation: ub-pulse 12s ease-in-out infinite alternate;
}
.scn-usury-breeding .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a0e0a 0%, #2a1a12 50%, #3a2218 100%); border-radius: 20% 0 0 0 / 10% 0 0 0;
}
.scn-usury-breeding .table {
  position:absolute; bottom:20%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: ub-float 8s ease-in-out infinite;
}
.scn-usury-breeding .lamp {
  position:absolute; bottom:35%; left:42%; width:12px; height:20px; background: linear-gradient(180deg, #c08040 0%, #8a6020 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 30px 8px #c08040, 0 0 60px 16px rgba(192,128,64,0.4);
  animation: ub-glow 4s ease-in-out infinite alternate;
}
.scn-usury-breeding .coins {
  position:absolute; bottom:22%; left:35%; width:40px; height:12px; background: radial-gradient(circle at 30% 50%, #d4a040 0%, #a07820 50%, #6a4810 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: ub-shimmer 6s ease-in-out infinite;
}
.scn-usury-breeding .figure {
  position:absolute; bottom:22%; left:60%; width:28px; height:50px; background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: ub-breathe 9s ease-in-out infinite;
}
.scn-usury-breeding .hand {
  position:absolute; bottom:25%; left:45%; width:14px; height:6px; background: #2a1a12; border-radius: 50%; transform: rotate(20deg);
  animation: ub-reach 5s ease-in-out infinite;
}
@keyframes ub-pulse {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ub-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes ub-glow {
  0% { box-shadow: 0 0 20px 4px #c08040, 0 0 40px 10px rgba(192,128,64,0.3); opacity: 0.7; }
  50% { box-shadow: 0 0 35px 10px #e0a050, 0 0 70px 20px rgba(224,160,80,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px #c08040, 0 0 50px 12px rgba(192,128,64,0.35); opacity: 0.8; }
}
@keyframes ub-shimmer {
  0%, 100% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.05); opacity: 1; }
}
@keyframes ub-breathe {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes ub-reach {
  0%, 100% { transform: rotate(20deg) translateX(0); }
  50% { transform: rotate(25deg) translateX(4px); }
}

/* Scene: orient-light-sunrise – dawn, calm */
.scn-orient-light-sunrise {
  background:
    linear-gradient(180deg, #1a2a4a 0%, #3a5070 20%, #6a80a0 40%, #c0a060 65%, #e0b070 80%, #f0c080 100%),
    radial-gradient(ellipse at 50% 0%, #f0c080 0%, transparent 60%);
}
.scn-orient-light-sunrise .sky {
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a2a4a 0%, #4a6080 50%, #8a9ab0 100%); animation: ol-sky 15s ease-in-out infinite alternate;
}
.scn-orient-light-sunrise .sun {
  position:absolute; top:10%; left:50%; width:80px; height:80px; margin-left:-40px; background: radial-gradient(circle, #ffe080 0%, #f0a030 40%, #c07010 70%, transparent 100%); border-radius: 50%;
  animation: ol-rise 20s ease-in-out infinite;
}
.scn-orient-light-sunrise .hills {
  position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: ol-hills 18s ease-in-out infinite alternate;
}
.scn-orient-light-sunrise .cloud1 {
  position:absolute; top:18%; 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(6px);
  animation: ol-drift-a 40s linear infinite;
}
.scn-orient-light-sunrise .cloud2 {
  position:absolute; top:30%; right:15%; width:70px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.05) 100%); border-radius: 50%; filter: blur(5px);
  animation: ol-drift-b 55s linear infinite reverse;
}
.scn-orient-light-sunrise .figure {
  position:absolute; bottom:25%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: ol-look-up 12s ease-in-out infinite;
}
@keyframes ol-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ol-rise {
  0% { transform: translateY(20px) scale(0.9); opacity: 0.5; }
  50% { transform: translateY(0) scale(1); opacity: 1; }
  100% { transform: translateY(-5px) scale(1.02); opacity: 0.9; }
}
@keyframes ol-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes ol-drift-a {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}
@keyframes ol-drift-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}
@keyframes ol-look-up {
  0%, 100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-4px) rotate(3deg); }
}

/* Scene: noon-son-necessity – sunlit, tense */
.scn-noon-son-necessity {
  background:
    linear-gradient(180deg, #4a6a8a 0%, #7a9ab0 30%, #c0d0e0 60%, #e8e0c0 85%, #d0b080 100%),
    radial-gradient(ellipse at 50% 0%, #ffe8b0 0%, transparent 50%);
}
.scn-noon-son-necessity .sky {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a6a8a 0%, #80a0c0 50%, #c0d0e0 100%); animation: ns-haze 8s ease-in-out infinite alternate;
}
.scn-noon-son-necessity .sun {
  position:absolute; top:5%; left:50%; width:100px; height:100px; margin-left:-50px; background: radial-gradient(circle, #fff4c0 0%, #ffe080 30%, #f0a030 60%, transparent 100%); border-radius: 50%;
  animation: ns-blast 6s ease-in-out infinite;
}
.scn-noon-son-necessity .ground {
  position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #6a5a3a 0%, #8a7a5a 50%, #a09070 100%); border-radius: 30% 0 0 0 / 15% 0 0 0;
}
.scn-noon-son-necessity .figure {
  position:absolute; bottom:28%; left:40%; width:30px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: ns-stagger 4s ease-in-out infinite;
}
.scn-noon-son-necessity .shadow {
  position:absolute; bottom:5%; left:32%; width:70px; height:20px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(8px);
  animation: ns-stretch 7s ease-in-out infinite;
}
.scn-noon-son-necessity .staff {
  position:absolute; bottom:30%; left:55%; width:4px; height:50px; background: #4a3a2a; border-radius: 2px; transform-origin: bottom center;
  animation: ns-waver 3s ease-in-out infinite;
}
@keyframes ns-haze {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ns-blast {
  0% { transform: scale(1); opacity: 0.9; box-shadow: 0 0 60px 20px #ffe080; }
  50% { transform: scale(1.03); opacity: 1; box-shadow: 0 0 80px 30px #ffe080; }
  100% { transform: scale(0.98); opacity: 0.95; box-shadow: 0 0 50px 15px #ffe080; }
}
@keyframes ns-stagger {
  0%, 100% { transform: translateY(0) rotate(2deg); }
  25% { transform: translateY(-4px) rotate(-1deg); }
  50% { transform: translateY(-8px) rotate(3deg); }
  75% { transform: translateY(-2px) rotate(-2deg); }
}
@keyframes ns-stretch {
  0%, 100% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.4); opacity: 0.5; }
}
@keyframes ns-waver {
  0%, 100% { transform: rotate(-3deg); }
  50% { transform: rotate(5deg); }
}

/* Scene: concord-marriage-single – bright interior, calm */
.scn-concord-marriage-single {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 40%, #c0b090 100%),
    radial-gradient(ellipse at 50% 30%, #faf0e0 0%, transparent 70%);
}
.scn-concord-marriage-single .room-bg {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, #f0e8d0 0%, #d0c0a0 100%); animation: cm-warm 10s ease-in-out infinite alternate;
}
.scn-concord-marriage-single .harp {
  position:absolute; bottom:20%; left:35%; width:80px; height:120px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 50%, #4a3a2a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 6px 16px rgba(0,0,0,0.2);
  animation: cm-respire 12s ease-in-out infinite;
}
.scn-concord-marriage-single .string1 {
  position:absolute; bottom:25%; left:42%; width:2px; height:80px; background: #c0a060; transform-origin: top center;
  animation: cm-vibrate 4s ease-in-out infinite;
}
.scn-concord-marriage-single .string2 {
  position:absolute; bottom:28%; left:47%; width:2px; height:75px; background: #b09050; transform-origin: top center;
  animation: cm-vibrate 5s ease-in-out infinite 0.5s;
}
.scn-concord-marriage-single .music-stand {
  position:absolute; bottom:15%; left:55%; width:40px; height:50px; background: linear-gradient(180deg, #a09070 0%, #807050 100%); border-radius: 4px; clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  animation: cm-stand 8s ease-in-out infinite alternate;
}
.scn-concord-marriage-single .bow {
  position:absolute; bottom:35%; left:65%; width:60px; height:6px; background: #6a5a3a; border-radius: 50% / 100% 100% 0 0; transform-origin: left center;
  animation: cm-bow 7s ease-in-out infinite;
}
@keyframes cm-warm {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes cm-respire {
  0%, 100% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.01) translateY(-2px); }
}
@keyframes cm-vibrate {
  0% { transform: rotate(-2deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(3deg); }
  100% { transform: rotate(0); }
}
@keyframes cm-stand {
  0%, 100% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
}
@keyframes cm-bow {
  0%, 100% { transform: rotate(-10deg); }
  50% { transform: rotate(15deg); }
}

.scn-nature-store {
  background: linear-gradient(180deg, #6b7a7a 0%, #4a5a5a 40%, #3a4a4a 100%), radial-gradient(ellipse at 30% 20%, #7a8a8a 0%, transparent 60%);
}
.scn-nature-store .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 100%);
  animation: ns-sky 15s ease-in-out infinite alternate;
}
.scn-nature-store .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 30% 0 0 0;
}
.scn-nature-store .tree {
  position: absolute; bottom: 35%; left: 35%; width: 16px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 4px 4px 0 0;
  transform-origin: bottom center;
  animation: ns-tree 6s ease-in-out infinite;
}
.scn-nature-store .branch-l {
  position: absolute; bottom: 65%; left: 35%; width: 40px; height: 6px;
  background: #2a1a0a;
  border-radius: 3px;
  transform-origin: right center;
  transform: rotate(40deg);
  animation: ns-branch 7s ease-in-out infinite alternate;
}
.scn-nature-store .branch-r {
  position: absolute; bottom: 58%; left: 38%; width: 32px; height: 5px;
  background: #2a1a0a;
  border-radius: 2px;
  transform-origin: left center;
  transform: rotate(-30deg);
  animation: ns-branch 8s ease-in-out infinite alternate;
}
.scn-nature-store .leaf1 {
  position: absolute; bottom: 70%; left: 32%; width: 14px; height: 8px;
  background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 50% 0 50% 0;
  animation: ns-leaf 5s ease-in-out infinite;
}
.scn-nature-store .leaf2 {
  position: absolute; bottom: 62%; left: 34%; width: 12px; height: 7px;
  background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 0 50% 0 50%;
  animation: ns-leaf 6s ease-in-out infinite reverse;
}
.scn-nature-store .scroll {
  position: absolute; bottom: 18%; left: 50%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #d4c4a0 0%, #a09070 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ns-scroll 12s linear infinite;
}
.scn-nature-store .fleece {
  position: absolute; bottom: 22%; right: 20%; width: 30px; height: 18px;
  background: radial-gradient(circle, #c8b8a8 0%, #a89888 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.7;
  animation: ns-fleece 4s ease-in-out infinite alternate;
}
@keyframes ns-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ns-tree { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(1deg); } 75% { transform: rotate(-1deg); } }
@keyframes ns-branch { 0% { transform: rotate(40deg) scaleY(1); } 50% { transform: rotate(42deg) scaleY(0.95); } 100% { transform: rotate(38deg) scaleY(1); } }
@keyframes ns-leaf { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ns-scroll { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ns-fleece { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.05); opacity: 0.9; } 100% { transform: scale(0.95); opacity: 0.6; } }

.scn-outward-praise {
  background: linear-gradient(180deg, #7a7a6a 0%, #5a5a4a 50%, #4a4a3a 100%), radial-gradient(ellipse at 50% 30%, #8a8a7a 0%, transparent 70%);
}
.scn-outward-praise .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.2) 100%);
}
.scn-outward-praise .pedestal {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  transform: translateX(-50%);
  border-radius: 4px 4px 6px 6px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}
.scn-outward-praise .figure {
  position: absolute; bottom: 40%; left: 50%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform: translateX(-50%);
  animation: op-figure 8s ease-in-out infinite;
}
.scn-outward-praise .wreath {
  position: absolute; bottom: 50%; left: 50%; width: 30px; height: 10px;
  background: radial-gradient(ellipse, #6a8a4a 0%, #3a5a2a 70%);
  border-radius: 50%;
  transform: translateX(-50%) translateY(5px);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: op-wreath 4s ease-in-out infinite;
}
.scn-outward-praise .spotlight {
  position: absolute; bottom: 60%; left: 40%; width: 80px; height: 200px;
  background: linear-gradient(180deg, rgba(255,255,220,0.15) 0%, transparent 100%);
  transform: translateX(-50%) skewX(-5deg);
  animation: op-spotlight 6s ease-in-out infinite alternate;
}
.scn-outward-praise .glow {
  position: absolute; bottom: 50%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,230,180,0.4) 0%, transparent 70%);
  transform: translateX(-50%) translateY(-10px);
  animation: op-glow 3s ease-in-out infinite alternate;
}
.scn-outward-praise .spark1 {
  position: absolute; bottom: 55%; left: 45%; width: 4px; height: 4px;
  background: #ffe080;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,224,128,0.5);
  animation: op-spark 5s linear infinite;
}
.scn-outward-praise .spark2 {
  position: absolute; bottom: 58%; left: 55%; width: 4px; height: 4px;
  background: #ffe080;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,224,128,0.5);
  animation: op-spark 5s linear infinite 2.5s;
}
@keyframes op-figure { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px); } }
@keyframes op-wreath { 0% { transform: translateX(-50%) translateY(5px) rotate(0deg); } 50% { transform: translateX(-50%) translateY(3px) rotate(10deg); } 100% { transform: translateX(-50%) translateY(5px) rotate(0deg); } }
@keyframes op-spotlight { 0% { opacity: 0.6; transform: translateX(-50%) skewX(-5deg); } 50% { opacity: 1; transform: translateX(-48%) skewX(0deg); } 100% { opacity: 0.7; transform: translateX(-52%) skewX(-5deg); } }
@keyframes op-glow { 0% { opacity: 0.5; transform: translateX(-50%) translateY(-10px) scale(1); } 50% { opacity: 0.8; transform: translateX(-50%) translateY(-12px) scale(1.3); } 100% { opacity: 0.6; transform: translateX(-50%) translateY(-10px) scale(1); } }
@keyframes op-spark { 0% { transform: translateY(0) scale(1); opacity: 1; } 50% { transform: translateY(-15px) scale(0.5); opacity: 0.8; } 100% { transform: translateY(0) scale(0); opacity: 0; } }

.scn-rank-smell-weeds {
  background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 50%, #2a2a1a 100%), radial-gradient(ellipse at 50% 80%, #6a6a5a 0%, transparent 60%);
}
.scn-rank-smell-weeds .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a4a3a 0%, transparent 100%);
}
.scn-rank-smell-weeds .stem {
  position: absolute; bottom: 25%; left: 50%; width: 8px; height: 90px;
  background: linear-gradient(180deg, #3a5a2a 0%, #1a2a0a 100%);
  transform: translateX(-50%);
  border-radius: 2px;
  animation: rw-stem 8s ease-in-out infinite;
}
.scn-rank-smell-weeds .flower {
  position: absolute; bottom: 65%; left: 50%; width: 24px; height: 24px;
  background: radial-gradient(circle, #6a7a4a 0%, #4a5a2a 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 10px 2px rgba(100,120,60,0.4);
  animation: rw-flower 6s ease-in-out infinite;
}
.scn-rank-smell-weeds .petal {
  position: absolute; bottom: 65%; left: 50%; width: 12px; height: 6px;
  background: #5a6a3a;
  border-radius: 50% 0 50% 0;
  transform: translateX(-50%) rotate(20deg);
  animation: rw-petal 5s ease-in-out infinite;
}
.scn-rank-smell-weeds .weed1 {
  position: absolute; bottom: 30%; left: 30%; width: 6px; height: 50px;
  background: #3a2a1a;
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: rw-weed 12s linear infinite;
}
.scn-rank-smell-weeds .weed2 {
  position: absolute; bottom: 28%; left: 70%; width: 6px; height: 60px;
  background: #3a2a1a;
  border-radius: 2px;
  transform: rotate(20deg);
  animation: rw-weed 14s linear infinite reverse;
}
.scn-rank-smell-weeds .weed3 {
  position: absolute; bottom: 32%; left: 55%; width: 5px; height: 40px;
  background: #2a1a0a;
  border-radius: 2px;
  transform: rotate(5deg);
  animation: rw-weed 10s linear infinite;
}
.scn-rank-smell-weeds .soil {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 30% 0 0;
}
@keyframes rw-stem { 0%, 100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(-2deg); } 75% { transform: translateX(-50%) rotate(2deg); } }
@keyframes rw-flower { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(0.9) rotate(5deg); } 100% { transform: translateX(-50%) scale(1) rotate(0deg); } }
@keyframes rw-petal { 0% { transform: translateX(-50%) rotate(20deg) scale(1); } 50% { transform: translateX(-50%) rotate(30deg) scale(0.8); } 100% { transform: translateX(-50%) rotate(20deg) scale(1); } }
@keyframes rw-weed { 0% { transform: rotate(-15deg) translateY(0); } 25% { transform: rotate(-10deg) translateY(-2px); } 50% { transform: rotate(-15deg) translateY(0); } 75% { transform: rotate(-20deg) translateY(-3px); } 100% { transform: rotate(-15deg) translateY(0); } }

.scn-slander-mark {
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 50%, #2a3a4a 100%), radial-gradient(ellipse at 60% 30%, #6a7a8a 0%, transparent 70%);
}
.scn-slander-mark .sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #6a7a8a 0%, transparent 100%);
}
.scn-slander-mark .cloud1 {
  position: absolute; top: 20%; left: 10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(200,200,210,0.5) 0%, rgba(200,200,210,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: sm-cloud 40s linear infinite;
}
.scn-slander-mark .cloud2 {
  position: absolute; top: 30%; right: 20%; width: 70px; height: 15px;
  background: linear-gradient(180deg, rgba(200,200,210,0.4) 0%, rgba(200,200,210,0.05) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: sm-cloud 55s linear infinite reverse;
}
.scn-slander-mark .crow {
  position: absolute; bottom: 50%; left: 50%; width: 20px; height: 14px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40%;
  transform: translateX(-50%) rotate(10deg);
  animation: sm-crow 6s ease-in-out infinite;
}
.scn-slander-mark .halo {
  position: absolute; bottom: 40%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,200,220,0.3) 0%, transparent 70%);
  transform: translateX(-50%);
  animation: sm-halo 4s ease-in-out infinite alternate;
}
.scn-slander-mark .ray1 {
  position: absolute; bottom: 35%; left: 50%; width: 2px; height: 80px;
  background: linear-gradient(180deg, rgba(220,220,230,0.6) 0%, transparent 100%);
  transform: translateX(-50%) rotate(-20deg);
  animation: sm-ray 7s ease-in-out infinite;
}
.scn-slander-mark .ray2 {
  position: absolute; bottom: 35%; left: 50%; width: 2px; height: 60px;
  background: linear-gradient(180deg, rgba(220,220,230,0.6) 0%, transparent 100%);
  transform: translateX(-50%) rotate(30deg);
  animation: sm-ray 8s ease-in-out infinite reverse;
}
@keyframes sm-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes sm-crow { 0% { transform: translateX(-50%) rotate(10deg) translateY(0); } 25% { transform: translateX(-50%) rotate(15deg) translateY(-3px); } 50% { transform: translateX(-50%) rotate(5deg) translateY(0); } 75% { transform: translateX(-50%) rotate(10deg) translateY(2px); } 100% { transform: translateX(-50%) rotate(10deg) translateY(0); } }
@keyframes sm-halo { 0% { opacity: 0.6; transform: translateX(-50%) scale(1); } 50% { opacity: 0.9; transform: translateX(-50%) scale(1.2); } 100% { opacity: 0.7; transform: translateX(-50%) scale(1); } }
@keyframes sm-ray { 0% { opacity: 0.3; transform: translateX(-50%) rotate(-20deg) scaleY(1); } 50% { opacity: 0.8; transform: translateX(-50%) rotate(-18deg) scaleY(1.1); } 100% { opacity: 0.4; transform: translateX(-50%) rotate(-22deg) scaleY(0.9); } }

/* highest-art – humble overcast study */
.scn-highest-art {
  background: linear-gradient(180deg, #7a7a80 0%, #5a5a60 50%, #3a3a40 100%),
              radial-gradient(ellipse at 50% 0%, #8a8a90 0%, transparent 70%);
}
.scn-highest-art .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a6a6e 0%, #4a4a4e 100%); }
.scn-highest-art .window { position:absolute; top:10%; left:65%; width:100px; height:130px; background: linear-gradient(180deg, #8a8a90 0%, #6a6a70 100%); border-radius:10px; box-shadow: inset 0 0 20px rgba(0,0,0,.3); animation: ha-window 12s ease-in-out infinite alternate; }
.scn-highest-art .desk { position:absolute; bottom:8%; left:20%; width:200px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:6px; box-shadow: 0 8px 16px rgba(0,0,0,.5); }
.scn-highest-art .parchment { position:absolute; bottom:22%; left:50%; width:80px; height:50px; transform:translateX(-50%); background: linear-gradient(135deg, #c8b898 0%, #b09c80 100%); border-radius:4px; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-highest-art .inkwell { position:absolute; bottom:26%; left:28%; width:16px; height:20px; background: radial-gradient(circle at 50% 30%, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 4px 6px rgba(0,0,0,.5); animation: ha-ink 6s ease-in-out infinite; }
.scn-highest-art .hand { position:absolute; bottom:18%; left:42%; width:24px; height:30px; background: linear-gradient(180deg, #c8b89a 0%, #b0a080 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ha-hand 4s ease-in-out infinite; }
.scn-highest-art .quill { position:absolute; bottom:28%; left:46%; width:4px; height:45px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 2px; transform-origin: bottom center; animation: ha-quill 3s ease-in-out infinite; }
.scn-highest-art .dust { position:absolute; top:15%; left:10%; width:8px; height:8px; background: rgba(200,200,200,.3); border-radius:50%; filter: blur(2px); animation: ha-dust 30s linear infinite; }
@keyframes ha-window { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes ha-ink { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ha-hand { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(0) } 50% { transform: translateX(8px) rotate(2deg) } 75% { transform: translateX(12px) rotate(0) } 100% { transform: translateX(16px) rotate(-1deg) } }
@keyframes ha-quill { 0% { transform: rotate(-8deg) } 30% { transform: rotate(5deg) } 60% { transform: rotate(-3deg) } 100% { transform: rotate(8deg) } }
@keyframes ha-dust { 0% { transform: translate(0,0) } 100% { transform: translate(120vw, -20vh) } }

/* sick-muse – jealous overcast decay */
.scn-sick-muse {
  background: linear-gradient(180deg, #4a4a52 0%, #3a3a42 50%, #2a2a32 100%),
              radial-gradient(ellipse at 50% 30%, #5a5a62 0%, transparent 70%);
}
.scn-sick-muse .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #5a5a62 0%, #3a3a42 100%); }
.scn-sick-muse .couch { position:absolute; bottom:20%; left:30%; width:180px; height:70px; background: linear-gradient(180deg, #4a3a32 0%, #3a2a22 100%); border-radius: 20px 20px 10px 10px; box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-sick-muse .figure { position:absolute; bottom:18%; left:38%; width:50px; height:110px; background: linear-gradient(180deg, #6a5a5a 0%, #4a3a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sm-figure 8s ease-in-out infinite alternate; }
.scn-sick-muse .flower { position:absolute; bottom:48%; left:60%; width:20px; height:20px; background: radial-gradient(circle at 50% 30%, #7a6a5a 0%, #5a4a3a 100%); border-radius:50%; transform-origin: bottom center; animation: sm-flower 10s ease-in-out infinite; }
.scn-sick-muse .window { position:absolute; top:10%; right:10%; width:80px; height:110px; background: linear-gradient(180deg, #6a6a74 0%, #4a4a54 100%); border-radius:8px; box-shadow: inset 0 0 20px rgba(0,0,0,.4); animation: sm-window 6s ease-in-out infinite alternate; }
.scn-sick-muse .shadow { position:absolute; bottom:30%; right:25%; width:60px; height:140px; background: rgba(0,0,0,.4); border-radius: 40% 40% 30% 30%; filter: blur(10px); animation: sm-shadow 12s ease-in-out infinite; }
.scn-sick-muse .rain-line { position:absolute; top:0; left:50%; width:2px; height:20px; background: rgba(180,180,200,.3); border-radius:1px; animation: sm-rain 2s linear infinite; }
@keyframes sm-figure { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(.97) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes sm-flower { 0% { transform: rotate(0) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(0) } }
@keyframes sm-window { 0% { opacity:.6 } 50% { opacity:.85 } 100% { opacity:.65 } }
@keyframes sm-shadow { 0% { transform: translateX(0) } 50% { transform: translateX(8px) } 100% { transform: translateX(0) } }
@keyframes sm-rain { 0% { transform: translateY(-20px); opacity:1 } 100% { transform: translateY(100vh); opacity:0 } }

/* borrowed-virtue – resigned overcast reflection */
.scn-borrowed-virtue {
  background: linear-gradient(180deg, #5a5a62 0%, #4a4a52 50%, #3a3a42 100%),
              radial-gradient(ellipse at 50% 50%, #6a6a72 0%, transparent 60%);
}
.scn-borrowed-virtue .mirror-frame { position:absolute; top:10%; left:50%; width:120px; height:160px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:12px; box-shadow: 0 10px 20px rgba(0,0,0,.5); }
.scn-borrowed-virtue .mirror-reflect { position:absolute; top:14%; left:50%; width:100px; height:140px; transform:translateX(-50%); background: linear-gradient(135deg, #7a7a84 0%, #5a5a64 100%); border-radius:8px; animation: bv-reflect 8s ease-in-out infinite alternate; }
.scn-borrowed-virtue .figure { position:absolute; bottom:14%; left:30%; width:30px; height:80px; background: linear-gradient(180deg, #3a3a42 0%, #2a2a32 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bv-figure 6s ease-in-out infinite; }
.scn-borrowed-virtue .hand-offer { position:absolute; bottom:22%; left:45%; width:18px; height:20px; background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 100%); border-radius: 50% 50% 30% 30%; transform-origin: bottom right; animation: bv-hand 5s ease-in-out infinite; }
.scn-borrowed-virtue .flower { position:absolute; bottom:26%; left:48%; width:14px; height:14px; background: radial-gradient(circle at 50% 30%, #8a7a6a 0%, #6a5a4a 100%); border-radius:50%; animation: bv-flower 7s ease-in-out infinite; }
.scn-borrowed-virtue .pedestal { position:absolute; bottom:5%; left:10%; width:40px; height:90px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-borrowed-virtue .glow { position:absolute; top:20%; left:50%; width:60px; height:80px; background: radial-gradient(circle, rgba(180,180,200,.15) 0%, transparent 70%); border-radius:50%; animation: bv-glow 4s ease-in-out infinite alternate; }
@keyframes bv-reflect { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.65 } }
@keyframes bv-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(0) } 75% { transform: translateX(12px) rotate(-1deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes bv-hand { 0% { transform: translate(0,0) rotate(0) } 30% { transform: translate(6px,-4px) rotate(10deg) } 60% { transform: translate(12px,-8px) rotate(20deg) } 100% { transform: translate(18px,-12px) rotate(30deg) } }
@keyframes bv-flower { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.1) rotate(5deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes bv-glow { 0% { opacity:.3 } 100% { opacity:.7 } }

/* faint-writing – insecure overcast sea */
.scn-faint-writing {
  background: linear-gradient(180deg, #4a4a52 0%, #3a3a42 40%, #2a2a32 100%),
              radial-gradient(ellipse at 50% 30%, #5a5a62 0%, transparent 70%);
}
.scn-faint-writing .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #5a5a64 0%, #3a3a44 100%); animation: fw-sky 9s ease-in-out infinite alternate; }
.scn-faint-writing .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); }
.scn-faint-writing .hull { position:absolute; bottom:22%; left:40%; width:120px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 0 40% 40%; box-shadow: 0 8px 16px rgba(0,0,0,.6); animation: fw-hull 5s ease-in-out infinite; }
.scn-faint-writing .mast { position:absolute; bottom:32%; left:60%; width:6px; height:100px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); transform-origin: bottom center; animation: fw-mast 6s ease-in-out infinite; }
.scn-faint-writing .sail { position:absolute; bottom:32%; left:58%; width:70px; height:80px; background: linear-gradient(180deg, #6a6a6e 0%, #4a4a4e 100%); clip-path: polygon(0 0, 100% 20%, 100% 80%, 0 100%); animation: fw-sail 4s ease-in-out infinite alternate; }
.scn-faint-writing .figure { position:absolute; bottom:18%; left:42%; width:18px; height:30px; background: linear-gradient(180deg, #2a2a32 0%, #1a1a22 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fw-figure 3s ease-in-out infinite; }
.scn-faint-writing .lantern { position:absolute; bottom:30%; left:55%; width:10px; height:12px; background: radial-gradient(circle at 50% 40%, #8a8a6e 0%, #5a5a4e 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 0 12px 4px rgba(120,120,100,.4); animation: fw-lantern 2s ease-in-out infinite; }
.scn-faint-writing .wave { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent, rgba(40,60,60,.3)); border-radius: 0 0 50% 50%; animation: fw-wave 8s ease-in-out infinite; }
@keyframes fw-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes fw-hull { 0% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-48%) rotate(3deg) } 50% { transform: translateX(-50%) rotate(0) } 75% { transform: translateX(-52%) rotate(-3deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes fw-mast { 0% { transform: rotate(0) } 30% { transform: rotate(2deg) } 60% { transform: rotate(-2deg) } 100% { transform: rotate(0) } }
@keyframes fw-sail { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(.95) } }
@keyframes fw-figure { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(2deg) } 70% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fw-lantern { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes fw-wave { 0% { transform: translateY(0) } 50% { transform: translateY(10px) } 100% { transform: translateY(0) } }

.scn-sonnet-cl-first {
  background: linear-gradient(180deg, #1a1215 0%, #2a1e1a 40%, #1f1412 100%), radial-gradient(ellipse at 30% 40%, #3a2a22 0%, transparent 70%);
}
.scn-sonnet-cl-first .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a1e1a 0%, #1a1215 100%); }
.scn-sonnet-cl-first .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #1a1010 0%, #2a1a18 40%, #1f1412 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-sonnet-cl-first .window-glow { position:absolute; top:15%; right:20%; width:60px; height:80px; background: radial-gradient(ellipse, #c8a060 0%, #5a3a20 60%, transparent 80%); border-radius: 10%; box-shadow: 0 0 40px 20px rgba(200,160,96,.4),0 0 80px 40px rgba(200,160,96,.15); animation: scl1-glow 3s ease-in-out infinite alternate; }
.scn-sonnet-cl-first .figure-shadow { position:absolute; bottom:30%; left:35%; width:24px; height:50px; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, rgba(0,0,0,.3) 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; filter: blur(2px); animation: scl1-fig 4s ease-in-out infinite; }
.scn-sonnet-cl-first .table { position:absolute; bottom:25%; left:45%; width:80px; height:20px; background: linear-gradient(180deg, #3a2a22 0%, #1f1412 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-sonnet-cl-first .candle { position:absolute; bottom:35%; left:48%; width:8px; height:30px; background: linear-gradient(180deg, #d4b070 0%, #8a6030 100%); border-radius: 2px; box-shadow: 0 0 20px 6px rgba(212,176,112,.6); animation: scl1-candle 2s ease-in-out infinite alternate; }
.scn-sonnet-cl-first .mirror { position:absolute; top:10%; left:25%; width:50px; height:70px; background: linear-gradient(180deg, #4a4040 0%, #2a2a2a 100%); border-radius: 5px; box-shadow: inset 0 0 15px rgba(200,160,96,.2), 0 5px 15px rgba(0,0,0,.4); transform: skewX(-5deg); animation: scl1-mirror 8s ease-in-out infinite; }
@keyframes scl1-glow { 0% { opacity:.7; box-shadow: 0 0 30px 10px rgba(200,160,96,.3); } 50% { opacity:1; box-shadow: 0 0 60px 30px rgba(200,160,96,.5); } 100% { opacity:.8; box-shadow: 0 0 40px 15px rgba(200,160,96,.35); } }
@keyframes scl1-fig { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(1deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes scl1-candle { 0% { transform: scaleY(1); opacity:.9; } 50% { transform: scaleY(1.08); opacity:1; } 100% { transform: scaleY(.95); opacity:.85; } }
@keyframes scl1-mirror { 0% { transform: skewX(-5deg) scale(1); } 50% { transform: skewX(-7deg) scale(1.02); } 100% { transform: skewX(-5deg) scale(.98); } }

.scn-sonnet-cl-second {
  background: linear-gradient(180deg, #150e0c 0%, #2a1a16 50%, #1a100e 100%), radial-gradient(ellipse at 60% 30%, #3a221a 0%, transparent 60%);
}
.scn-sonnet-cl-second .bg-wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1f1412 0%, #130b0a 100%); }
.scn-sonnet-cl-second .bg-floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(0deg, #0f0908 0%, #1a100e 100%); border-radius: 30% 30% 0 0 / 15% 15% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.7); }
.scn-sonnet-cl-second .lamp { position:absolute; top:20%; right:30%; width:20px; height:40px; background: linear-gradient(180deg, #d4a050 0%, #7a4a20 100%); border-radius: 8px 8px 3px 3px; box-shadow: 0 0 30px 10px rgba(212,160,80,.4); animation: scl2-lamp 3s ease-in-out infinite alternate; }
.scn-sonnet-cl-second .figure-left { position:absolute; bottom:28%; left:30%; width:30px; height:55px; background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scl2-figleft 5s ease-in-out infinite; }
.scn-sonnet-cl-second .figure-right { position:absolute; bottom:30%; left:55%; width:28px; height:50px; background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%); border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: scl2-figright 6s ease-in-out infinite reverse; }
.scn-sonnet-cl-second .chair { position:absolute; bottom:25%; left:38%; width:50px; height:30px; background: linear-gradient(180deg, #2a1a14 0%, #150b08 100%); border-radius: 5px; box-shadow: 0 5px 10px rgba(0,0,0,.6); }
.scn-sonnet-cl-second .book { position:absolute; bottom:30%; left:70%; width:15px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 2px; transform: rotate(-10deg); box-shadow: 0 2px 5px rgba(0,0,0,.7); animation: scl2-book 10s ease-in-out infinite; }
.scn-sonnet-cl-second .shadow-pool { position:absolute; bottom:8%; left:20%; right:20%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 70%); filter: blur(10px); animation: scl2-shadow 4s ease-in-out infinite alternate; }
@keyframes scl2-lamp { 0% { box-shadow: 0 0 20px 8px rgba(212,160,80,.3); } 50% { box-shadow: 0 0 40px 15px rgba(212,160,80,.5); } 100% { box-shadow: 0 0 25px 10px rgba(212,160,80,.35); } }
@keyframes scl2-figleft { 0% { transform: translateY(0) rotate(-3deg); } 30% { transform: translateY(-3px) rotate(1deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(2px) rotate(2deg); } }
@keyframes scl2-figright { 0% { transform: translateY(0) skewX(0); } 40% { transform: translateY(-2px) skewX(2deg); } 80% { transform: translateY(1px) skewX(-1deg); } 100% { transform: translateY(0) skewX(0); } }
@keyframes scl2-book { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-12deg) translateY(1px); } }
@keyframes scl2-shadow { 0% { opacity:.6; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:.7; transform: scaleY(.95); } }

.scn-sonnet-cli-first {
  background: linear-gradient(180deg, #110c0a 0%, #1f1410 50%, #0f0a08 100%), radial-gradient(ellipse at 40% 60%, #2a1a14 0%, transparent 50%);
}
.scn-sonnet-cli-first .room-back { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #1a1210 0%, #0d0907 100%); }
.scn-sonnet-cli-first .bed { position:absolute; bottom:15%; left:10%; right:60%; height:35%; background: linear-gradient(180deg, #2a1e18 0%, #140c0a 100%); border-radius: 10px; box-shadow: inset 0 5px 15px rgba(0,0,0,.7); }
.scn-sonnet-cli-first .figure-reclining { position:absolute; bottom:18%; left:15%; width:30px; height:40px; background: linear-gradient(180deg, #1a1210 0%, #0a0605 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-5deg); animation: scli1-recline 6s ease-in-out infinite; }
.scn-sonnet-cli-first .figure-standing { position:absolute; bottom:22%; left:55%; width:26px; height:52px; background: linear-gradient(180deg, #1a1210 0%, #0a0605 100%); border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: scli1-stand 4s ease-in-out infinite; }
.scn-sonnet-cli-first .candle-light { position:absolute; top:35%; left:45%; width:12px; height:20px; background: linear-gradient(180deg, #e0b070 0%, #8a5020 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 30px 12px rgba(224,176,112,.5),0 0 60px 20px rgba(224,176,112,.2); animation: scli1-candle 2s ease-in-out infinite alternate; }
.scn-sonnet-cli-first .curtain { position:absolute; top:0; right:0; width:40%; height:100%; background: linear-gradient(180deg, #1f1410 0%, #0f0a08 100%); border-radius: 0 0 0 30%; box-shadow: inset -10px 0 20px rgba(0,0,0,.5); transform-origin: right center; animation: scli1-curtain 15s ease-in-out infinite; }
.scn-sonnet-cli-first .shadow-move { position:absolute; bottom:0; left:0; right:0; height:60%; background: radial-gradient(ellipse at 40% 60%, rgba(0,0,0,.4) 0%, transparent 70%); filter: blur(8px); animation: scli1-shadow 5s ease-in-out infinite alternate; }
@keyframes scli1-recline { 0% { transform: rotate(-5deg) translateY(0); } 33% { transform: rotate(-3deg) translateY(-2px); } 66% { transform: rotate(-7deg) translateY(1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes scli1-stand { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes scli1-candle { 0% { transform: scaleY(1); opacity:.85; } 50% { transform: scaleY(1.1); opacity:1; } 100% { transform: scaleY(.95); opacity:.8; } }
@keyframes scli1-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(.95); } }
@keyframes scli1-shadow { 0% { opacity:.5; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.2); } 100% { opacity:.6; transform: scaleY(.9); } }

.scn-sonnet-cli-second {
  background: linear-gradient(180deg, #0d0806 0%, #1a100c 40%, #0f0a08 100%), radial-gradient(ellipse at 50% 20%, #2a1a12 0%, transparent 70%);
}
.scn-sonnet-cli-second .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0f0a08 0%, #1a100c 100%); }
.scn-sonnet-cli-second .spotlight { position:absolute; top:5%; left:35%; right:35%; height:60%; background: radial-gradient(ellipse at 50% 0%, rgba(200,160,100,.25) 0%, transparent 60%); filter: blur(5px); animation: scli2-spot 4s ease-in-out infinite alternate; }
.scn-sonnet-cli-second .figure-kneeling { position:absolute; bottom:20%; left:50%; width:28px; height:45px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1210 0%, #0a0605 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scli2-kneel 6s ease-in-out infinite; }
.scn-sonnet-cli-second .crown { position:absolute; top:40%; left:50%; width:20px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #b08850 0%, #604020 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 20px 5px rgba(176,136,80,.5); animation: scli2-crown 3s ease-in-out infinite alternate; }
.scn-sonnet-cli-second .shadow-long { position:absolute; bottom:5%; left:40%; right:10%; height:25%; background: linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 100%); transform-origin: bottom left; filter: blur(4px); animation: scli2-shadow 5s ease-in-out infinite; }
.scn-sonnet-cli-second .floor-reflect { position:absolute; bottom:0; left:20%; right:20%; height:20%; background: linear-gradient(0deg, rgba(200,160,100,.1) 0%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: scli2-reflect 7s ease-in-out infinite alternate; }
@keyframes scli2-spot { 0% { opacity:.5; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:.6; transform: scaleY(.95); } }
@keyframes scli2-kneel { 0% { transform: translateX(-50%) rotate(-2deg); } 30% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 60% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(2deg); } }
@keyframes scli2-crown { 0% { transform: translateX(-50%) rotate(-5deg) scale(1); } 50% { transform: translateX(-50%) rotate(2deg) scale(1.1); } 100% { transform: translateX(-50%) rotate(-3deg) scale(.95); } }
@keyframes scli2-shadow { 0% { opacity:.4; transform: scaleY(1); } 50% { opacity:.8; transform: scaleY(1.3); } 100% { opacity:.5; transform: scaleY(.9); } }
@keyframes scli2-reflect { 0% { opacity:.2; transform: scaleX(1); } 50% { opacity:.5; transform: scaleX(1.1); } 100% { opacity:.3; transform: scaleX(.95); } }

.scn-sonnet-cv-part2 {
  background: linear-gradient(180deg, #4a4a5a 0%, #6a6a7a 50%, #7a7a8a 100%), radial-gradient(ellipse at 50% 30%, #8a8a9a 0%, transparent 80%);
}
.scn-sonnet-cv-part2 .bg-back {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(90,90,110,.6) 0%, rgba(70,70,80,0) 100%);
  animation: sc2-pulse 14s ease-in-out infinite alternate;
}
.scn-sonnet-cv-part2 .bg-mid {
  position: absolute; inset: 10% 15% 10% 15%; background: linear-gradient(135deg, rgba(120,110,100,.25) 0%, rgba(100,100,120,.15) 100%);
  border-radius: 30% 20% 40% 20%; filter: blur(8px); animation: sc2-drift 12s ease-in-out infinite alternate;
}
.scn-sonnet-cv-part2 .pillar {
  position: absolute; bottom: 30%; width: 18%; height: 40%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 6% 6% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.3);
  animation: sc2-pillar 8s ease-in-out infinite alternate;
}
.scn-sonnet-cv-part2 .pillar-left { left: 12%; animation-delay: 0s; }
.scn-sonnet-cv-part2 .pillar-center { left: 41%; width: 18%; animation-delay: 0.5s; background: linear-gradient(180deg, #7a8a7a 0%, #3a4a3a 100%); }
.scn-sonnet-cv-part2 .pillar-right { right: 12%; animation-delay: 1s; background: linear-gradient(180deg, #7a7a8a 0%, #3a3a5a 100%); }
.scn-sonnet-cv-part2 .converge {
  position: absolute; bottom: 26%; left: 50%; width: 30%; height: 12%; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #c0a080 0%, #8a7a6a 60%, transparent 100%);
  border-radius: 50%; filter: blur(4px); animation: sc2-conv 6s ease-in-out infinite;
}
.scn-sonnet-cv-part2 .sparkle {
  position: absolute; width: 6px; height: 6px; background: #e0d0b0; border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(200,180,140,.5); filter: blur(1px);
  animation: sc2-spark 4s ease-in-out infinite;
}
.scn-sonnet-cv-part2 .sparkle-a { top: 35%; left: 30%; animation-delay: 0s; }
.scn-sonnet-cv-part2 .sparkle-b { top: 40%; right: 25%; animation-delay: 1.3s; }
.scn-sonnet-cv-part2 .sparkle-c { top: 30%; left: 55%; animation-delay: 2.7s; }
@keyframes sc2-pulse { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sc2-drift { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(-5px,3px) scale(1.02) } 100% { transform: translate(3px,-2px) scale(.98) } }
@keyframes sc2-pillar { 0% { transform: rotate(0deg) } 50% { transform: rotate(.5deg) scaleY(1.01) } 100% { transform: rotate(-.3deg) } }
@keyframes sc2-conv { 0% { opacity:.6; transform: translateX(-50%) scale(.95) } 50% { opacity:.9; transform: translateX(-50%) scale(1.05) } 100% { opacity:.7; transform: translateX(-50%) scale(1) } }
@keyframes sc2-spark { 0% { opacity:0; transform: scale(0) } 30% { opacity:1; transform: scale(1.5) } 60% { opacity:.5; transform: scale(.8) } 100% { opacity:0; transform: scale(0) } }

.scn-sonnet-cvi {
  background: linear-gradient(180deg, #4a4a3a 0%, #5a5a4a 40%, #6a6a5a 100%), radial-gradient(ellipse at 50% 60%, #7a7a6a 0%, transparent 70%);
}
.scn-sonnet-cvi .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(60,60,50,.4) 0%, transparent 100%);
  animation: sc6-dim 20s ease-in-out infinite alternate;
}
.scn-sonnet-cvi .book-cover {
  position: absolute; bottom: 20%; left: 50%; width: 60%; height: 50%; transform: translateX(-50%);
  background: linear-gradient(135deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: 0 8px 30px rgba(0,0,0,.5), inset 0 2px 10px rgba(255,245,200,.1);
  animation: sc6-book 12s ease-in-out infinite alternate;
}
.scn-sonnet-cvi .page-left {
  position: absolute; bottom: 22%; left: 48%; width: 28%; height: 42%; transform: skewY(3deg) translateX(-50%);
  background: linear-gradient(135deg, #c8b89a 0%, #a89878 100%);
  border-radius: 2% 0 0 2%; box-shadow: inset 0 0 30px rgba(0,0,0,.15), 0 4px 10px rgba(0,0,0,.2);
  animation: sc6-page 15s ease-in-out infinite alternate;
}
.scn-sonnet-cvi .page-right {
  position: absolute; bottom: 22%; left: 52%; width: 28%; height: 42%; transform: skewY(-3deg) translateX(-50%);
  background: linear-gradient(135deg, #d8c8a0 0%, #b8a888 100%);
  border-radius: 0 2% 2% 0; box-shadow: inset 0 0 30px rgba(0,0,0,.15), 0 4px 10px rgba(0,0,0,.2);
  animation: sc6-page 15s ease-in-out infinite alternate-reverse;
}
.scn-sonnet-cvi .shadow-fade {
  position: absolute; bottom: 20%; left: 50%; width: 60%; height: 50%; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, rgba(0,0,0,.15) 0%, transparent 70%);
  filter: blur(6px); animation: sc6-shadow 8s ease-in-out infinite alternate;
}
.scn-sonnet-cvi .glow-text {
  position: absolute; bottom: 35%; left: 50%; width: 30%; height: 8%; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #e0d0b0 0%, transparent 80%);
  filter: blur(3px); animation: sc6-glow 4s ease-in-out infinite alternate;
}
.scn-sonnet-cvi .motif {
  position: absolute; width: 20px; height: 20px; background: radial-gradient(circle, #b0a080 0%, transparent 70%);
  border-radius: 50%;
  animation: sc6-motif 25s linear infinite;
}
.scn-sonnet-cvi .motif-a { top: 15%; left: 20%; animation-duration: 30s; filter: blur(2px); }
.scn-sonnet-cvi .motif-b { top: 18%; right: 25%; animation-duration: 35s; animation-delay: -10s; filter: blur(1px); }
@keyframes sc6-dim { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes sc6-book { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(.5deg) } 100% { transform: translateX(-50%) rotate(-.3deg) } }
@keyframes sc6-page { 0% { opacity:.8; transform: skewY(3deg) translateX(-50%) } 50% { opacity:1; transform: skewY(2deg) translateX(-50%) } 100% { opacity:.85; transform: skewY(4deg) translateX(-50%) } }
@keyframes sc6-shadow { 0% { opacity:.3; transform: translateX(-50%) scale(1) } 50% { opacity:.5; transform: translateX(-50%) scale(1.03) } 100% { opacity:.4; transform: translateX(-50%) scale(.97) } }
@keyframes sc6-glow { 0% { opacity:.4; transform: translateX(-50%) scale(.9) } 50% { opacity:.8; transform: translateX(-50%) scale(1.1) } 100% { opacity:.5; transform: translateX(-50%) scale(1) } }
@keyframes sc6-motif { 0% { transform: translate(0,0) rotate(0deg); opacity:.1 } 25% { transform: translate(30px,-20px) rotate(90deg); opacity:.4 } 50% { transform: translate(60px,0) rotate(180deg); opacity:.2 } 75% { transform: translate(30px,20px) rotate(270deg); opacity:.3 } 100% { transform: translate(0,0) rotate(360deg); opacity:.1 } }

.scn-sonnet-cvi-part2 {
  background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 50%, #5a5a6a 100%), radial-gradient(ellipse at 50% 20%, #7a7a8a 0%, transparent 80%);
}
.scn-sonnet-cvi-part2 .sky-wash {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(80,80,100,.3) 0%, transparent 100%);
  animation: sc6b-wash 16s ease-in-out infinite alternate;
}
.scn-sonnet-cvi-part2 .cloud-large {
  position: absolute; top: 25%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, rgba(140,140,160,.3) 0%, rgba(100,100,120,.1) 100%);
  border-radius: 60% 40% 50% 30%; filter: blur(10px);
  animation: sc6b-cloud 40s linear infinite alternate;
}
.scn-sonnet-cvi-part2 .cloud-small {
  position: absolute; top: 30%; left: 30%; width: 50%; height: 20%;
  background: linear-gradient(180deg, rgba(160,160,180,.4) 0%, rgba(120,120,140,.1) 100%);
  border-radius: 50% 60% 40% 50%; filter: blur(8px);
  animation: sc6b-cloud 50s linear infinite alternate-reverse;
}
.scn-sonnet-cvi-part2 .figure {
  position: absolute; bottom: 25%; left: 50%; width: 20%; height: 40%; transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 20px rgba(0,0,0,.4);
  animation: sc6b-figure 9s ease-in-out infinite alternate;
}
.scn-sonnet-cvi-part2 .halo {
  position: absolute; top: 20%; left: 50%; width: 30%; height: 30%; transform: translateX(-50%);
  background: radial-gradient(circle at 50% 50%, #c0c0d0 0%, #808090 40%, transparent 70%);
  border-radius: 50%; filter: blur(6px);
  animation: sc6b-halo 6s ease-in-out infinite alternate;
}
.scn-sonnet-cvi-part2 .wonder-rays {
  position: absolute; top: 5%; left: 50%; height: 40%; width: 8%; transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(200,200,220,.5) 0%, transparent 100%);
  filter: blur(3px);
  animation: sc6b-rays 7s ease-in-out infinite;
}
.scn-sonnet-cvi-part2 .ray-1 { transform: translateX(-50%) rotate(-15deg); animation-delay: 0s; }
.scn-sonnet-cvi-part2 .ray-2 { transform: translateX(-50%) rotate(0deg); animation-delay: 1s; }
.scn-sonnet-cvi-part2 .ray-3 { transform: translateX(-50%) rotate(15deg); animation-delay: 2s; }
.scn-sonnet-cvi-part2 .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 60% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
@keyframes sc6b-wash { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sc6b-cloud { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-80px) scale(1.05) } 100% { transform: translateX(40px) scale(.95) } }
@keyframes sc6b-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(-4px) rotate(2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes sc6b-halo { 0% { opacity:.3; transform: translateX(-50%) scale(.9) } 50% { opacity:.7; transform: translateX(-50%) scale(1.2) } 100% { opacity:.4; transform: translateX(-50%) scale(1) } }
@keyframes sc6b-rays { 0% { opacity:.1; transform: translateX(-50%) rotate(-15deg) } 50% { opacity:.5; transform: translateX(-50%) rotate(0deg) } 100% { opacity:.1; transform: translateX(-50%) rotate(15deg) } }

.scn-sonnet-cvii {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 50%, #4a4a5a 100%), radial-gradient(ellipse at 50% 40%, #5a5a6a 0%, transparent 80%);
}
.scn-sonnet-cvii .night-sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(30,30,40,.6) 0%, transparent 100%);
  animation: sc7-night 12s ease-in-out infinite alternate;
}
.scn-sonnet-cvii .moon {
  position: absolute; top: 20%; left: 50%; width: 80px; height: 80px; transform: translateX(-50%);
  background: radial-gradient(circle, #e0e0d0 0%, #b0b0a0 100%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(180,180,160,.4), 0 0 80px 40px rgba(180,180,160,.2);
  animation: sc7-moon 10s ease-in-out infinite alternate;
}
.scn-sonnet-cvii .eclipse-shadow {
  position: absolute; top: 20%; left: 50%; width: 80px; height: 80px; transform: translateX(-50%);
  background: radial-gradient(circle at 30% 40%, #1a1a2a 0%, transparent 70%);
  border-radius: 50%; mix-blend-mode: multiply;
  animation: sc7-eclipse 10s ease-in-out infinite alternate;
}
.scn-sonnet-cvii .cloud-bank {
  position: absolute; width: 100%; height: 30%;
  background: linear-gradient(180deg, rgba(60,60,70,.4) 0%, rgba(40,40,50,.2) 100%);
  border-radius: 50% 100% 0 0 / 40% 80% 0 0; filter: blur(6px);
  animation: sc7-cloud 25s linear infinite;
}
.scn-sonnet-cvii .cloud-far { top: 30%; animation-duration: 30s; opacity: .6; }
.scn-sonnet-cvii .cloud-near { top: 35%; animation-duration: 20s; animation-delay: -10s; opacity: .8; }
.scn-sonnet-cvii .emerge {
  position: absolute; bottom: 30%; left: 50%; width: 40%; height: 25%; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #6a7a6a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,.3);
  animation: sc7-emerge 8s ease-in-out infinite alternate;
}
.scn-sonnet-cvii .hope-glow {
  position: absolute; top: 15%; left: 50%; width: 120px; height: 120px; transform: translateX(-50%);
  background: radial-gradient(circle, #b0c0b0 0%, rgba(160,180,160,.3) 50%, transparent 80%);
  border-radius: 50%; filter: blur(10px);
  animation: sc7-glow 5s ease-in-out infinite alternate;
}
.scn-sonnet-cvii .sad-augur {
  position: absolute; bottom: 28%; left: 35%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc7-augur 7s ease-in-out infinite;
}
@keyframes sc7-night { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sc7-moon { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 40px 20px rgba(180,180,160,.4) } 50% { transform: translateX(-50%) scale(1.02); box-shadow: 0 0 60px 30px rgba(180,180,160,.5) } 100% { transform: translateX(-50%) scale(.98); box-shadow: 0 0 30px 15px rgba(180,180,160,.3) } }
@keyframes sc7-eclipse { 0% { opacity:.4; transform: translateX(-50%) scale(1) } 50% { opacity:.6; transform: translateX(-50%) scale(1.1) } 100% { opacity:.3; transform: translateX(-50%) scale(.9) } }
@keyframes sc7-cloud { 0% { transform: translateX(-50px) } 50% { transform: translateX(30px) } 100% { transform: translateX(-50px) } }
@keyframes sc7-emerge { 0% { transform: translateX(-50%) scaleY(.95); opacity:.8 } 50% { transform: translateX(-50%) scaleY(1.05); opacity:1 } 100% { transform: translateX(-50%) scaleY(1); opacity:.9 } }
@keyframes sc7-glow { 0% { opacity:.3; transform: translateX(-50%) scale(.9) } 50% { opacity:.6; transform: translateX(-50%) scale(1.1) } 100% { opacity:.4; transform: translateX(-50%) scale(1) } }
@keyframes sc7-augur { 0% { transform: translate(0,0) rotate(-2deg) } 25% { transform: translate(4px,-2px) rotate(1deg) } 50% { transform: translate(8px,0) rotate(2deg) } 75% { transform: translate(4px,1px) rotate(-1deg) } 100% { transform: translate(0,0) rotate(0) } }

/* Scene 1: calm dim interior, speaker seated, love standing */
.scn-sonnet-cxxxviii-first {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a1008 100%), radial-gradient(ellipse at 60% 40%, #4a3a2a 0%, transparent 70%);
}
.scn-sonnet-cxxxviii-first .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); opacity: 0.8;
}
.scn-sonnet-cxxxviii-first .window-light {
  position: absolute; top: 15%; right: 10%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,220,150,0.3) 0%, rgba(255,200,100,0.1) 50%, transparent 80%);
  border-radius: 10% 10% 30% 30%; filter: blur(8px); animation: sca-window 8s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxviii-first .candle {
  position: absolute; bottom: 22%; left: 35%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0d090 0%, #a06020 100%); border-radius: 50% 50% 10% 10%;
  transform: rotate(-5deg); animation: sca-candle 2s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxviii-first .candle-glow {
  position: absolute; bottom: 28%; left: 35%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, rgba(255,180,60,0.2) 50%, transparent 80%);
  border-radius: 50%; filter: blur(10px); animation: sca-glow 3s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxviii-first .figure-seated {
  position: absolute; bottom: 10%; left: 45%; width: 70px; height: 90px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) scale(0.9); animation: sca-seated 6s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxviii-first .figure-standing {
  position: absolute; bottom: 10%; left: 65%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: translateX(-50%); animation: sca-standing 5s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxviii-first .table-edge {
  position: absolute; bottom: 17%; left: 30%; right: 55%; height: 8px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: sca-table 10s linear infinite alternate;
}
@keyframes sca-window { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.02); } 100% { opacity: 0.3; transform: scale(1); } }
@keyframes sca-candle { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(-3deg) scaleY(1.02); } 100% { transform: rotate(-5deg) scaleY(1); } }
@keyframes sca-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes sca-seated { 0% { transform: translateX(-50%) scale(0.9) rotate(0deg); } 50% { transform: translateX(-50%) scale(0.92) rotate(1deg); } 100% { transform: translateX(-50%) scale(0.9) rotate(0deg); } }
@keyframes sca-standing { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes sca-table { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }

/* Scene 2: calm dim interior, two reclining figures */
.scn-sonnet-cxxxviii-second {
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 50%, #0a0806 100%), radial-gradient(ellipse at 40% 60%, #3a2a22 0%, transparent 60%);
}
.scn-sonnet-cxxxviii-second .bg-curtain {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2a22 0%, #1a1410 100%); opacity: 0.7;
}
.scn-sonnet-cxxxviii-second .lamp-glow {
  position: absolute; top: 20%; left: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,160,0.4) 0%, rgba(200,150,100,0.2) 50%, transparent 70%);
  border-radius: 50%; filter: blur(12px); animation: scb-lamp 5s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxviii-second .couch {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 80px;
  background: linear-gradient(180deg, #4a3a32 0%, #2a1e18 100%); border-radius: 30% 30% 10% 10% / 60% 60% 30% 30%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); animation: scb-couch 15s linear infinite alternate;
}
.scn-sonnet-cxxxviii-second .figure-reclining {
  position: absolute; bottom: 15%; left: 20%; width: 70px; height: 60px;
  background: radial-gradient(ellipse at 50% 40%, #4a3a32 0%, #2a1e18 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform: rotate(5deg);
  animation: scb-recline 4s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxviii-second .figure-half {
  position: absolute; bottom: 15%; left: 60%; width: 60px; height: 50px;
  background: radial-gradient(ellipse at 50% 60%, #3a2a22 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg);
  animation: scb-half 6s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxviii-second .shadow-arm {
  position: absolute; bottom: 20%; left: 45%; width: 80px; height: 20px;
  background: linear-gradient(90deg, transparent 0%, #2a1e18 30%, #1a1410 70%, transparent 100%);
  border-radius: 40% 40% 10% 10%; filter: blur(4px); animation: scb-arm 7s ease-in-out infinite alternate;
}
@keyframes scb-lamp { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.05); } 100% { opacity: 0.5; transform: scale(1); } }
@keyframes scb-couch { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes scb-recline { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(7deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes scb-half { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(-3px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes scb-arm { 0% { opacity: 0.6; transform: translateX(0); } 50% { opacity: 0.8; transform: translateX(-5px); } 100% { opacity: 0.6; transform: translateX(0); } }

/* Scene 3: tense dim interior, confrontation */
.scn-sonnet-cxxxix-first {
  background: linear-gradient(180deg, #1a1418 0%, #0e0a0c 50%, #080608 100%), radial-gradient(ellipse at 30% 50%, #2a2024 0%, transparent 60%);
}
.scn-sonnet-cxxxix-first .bg-darkwall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a2024 0%, #0e0a0c 100%); opacity: 0.9;
}
.scn-sonnet-cxxxix-first .lamp-sharp {
  position: absolute; top: 25%; left: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #e0b080 0%, #8a6030 100%); border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(200,140,80,0.4), 0 0 60px 20px rgba(200,140,80,0.1);
  animation: scc-lamp 1s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxix-first .figure-turning {
  position: absolute; bottom: 10%; left: 60%; width: 60px; height: 110px;
  background: linear-gradient(180deg, #2a2024 0%, #100a0e 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: translateX(-50%) rotateY(30deg); animation: scc-turn 3s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxix-first .figure-reaching {
  position: absolute; bottom: 10%; left: 35%; width: 55px; height: 100px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a30 0%, #1a1014 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  animation: scc-reach 2s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxix-first .chair {
  position: absolute; bottom: 8%; left: 25%; width: 70px; height: 60px;
  background: linear-gradient(180deg, #3a2a28 0%, #1a1210 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 60% 60%; box-shadow: inset 0 -5px 10px rgba(0,0,0,0.5);
  transform: rotate(-3deg); animation: scc-chair 8s linear infinite alternate;
}
.scn-sonnet-cxxxix-first .floor-line {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #4a3a40 20%, #2a2024 50%, #4a3a40 80%, transparent 100%);
  animation: scc-floor 6s ease-in-out infinite alternate;
}
@keyframes scc-lamp { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.8; transform: scaleY(1); } }
@keyframes scc-turn { 0% { transform: translateX(-50%) rotateY(30deg); } 50% { transform: translateX(-50%) rotateY(45deg); } 100% { transform: translateX(-50%) rotateY(30deg); } }
@keyframes scc-reach { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(8px) translateY(-5px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes scc-chair { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes scc-floor { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

/* Scene 4: tense dim interior, kneeling figure, standing over */
.scn-sonnet-cxxxix-second {
  background: linear-gradient(180deg, #0a080c 0%, #14101a 50%, #1a1420 100%), radial-gradient(ellipse at 50% 80%, #2a2030 0%, transparent 70%);
}
.scn-sonnet-cxxxix-second .bg-deepshadow {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1420 0%, #0a080c 100%); opacity: 0.9;
}
.scn-sonnet-cxxxix-second .lamp-fall {
  position: absolute; top: 30%; left: 50%; width: 15px; height: 50px;
  background: linear-gradient(180deg, #c09870 0%, #6a4020 100%); border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%) rotate(15deg); box-shadow: 0 0 40px 10px rgba(200,150,100,0.5);
  animation: scd-lamp 2s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxix-second .figure-kneeling {
  position: absolute; bottom: 5%; left: 40%; width: 65px; height: 80px;
  background: radial-gradient(ellipse at 50% 60%, #2a202e 0%, #0e0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) scale(0.9); animation: scd-kneel 4s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxix-second .figure-standing-over {
  position: absolute; bottom: 5%; left: 60%; width: 55px; height: 120px;
  background: linear-gradient(180deg, #3a2a42 0%, #1a1020 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: translateX(-50%); animation: scd-stand 3s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxix-second .hand {
  position: absolute; bottom: 50%; left: 55%; width: 25px; height: 35px;
  background: radial-gradient(ellipse at 50% 60%, #2a202e 0%, #0e0a10 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 60% 60%;
  transform: rotate(-10deg); animation: scd-hand 1.5s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxix-second .eye-glint {
  position: absolute; bottom: 50%; left: 62%; width: 6px; height: 6px;
  background: radial-gradient(circle, #f0e0c0 0%, #b09070 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 8px 2px rgba(240,224,192,0.4);
  animation: scd-glint 2s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxix-second .drapery {
  position: absolute; top: 5%; right: 5%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a2030 0%, #0e0a14 100%);
  border-radius: 30% 30% 40% 40% / 20% 20% 60% 60%;
  filter: blur(2px); animation: scd-drape 6s ease-in-out infinite alternate;
}
@keyframes scd-lamp { 0% { transform: translateX(-50%) rotate(15deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(20deg) scaleY(1.03); } 100% { transform: translateX(-50%) rotate(15deg) scaleY(1); } }
@keyframes scd-kneel { 0% { transform: translateX(-50%) scale(0.9) translateY(0); } 50% { transform: translateX(-50%) scale(0.88) translateY(3px); } 100% { transform: translateX(-50%) scale(0.9) translateY(0); } }
@keyframes scd-stand { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes scd-hand { 0% { transform: rotate(-10deg) translateY(0); opacity: 0.8; } 50% { transform: rotate(-15deg) translateY(-5px); opacity: 1; } 100% { transform: rotate(-10deg) translateY(0); opacity: 0.8; } }
@keyframes scd-glint { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(1); } }
@keyframes scd-drape { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-sonnet-cxxix-part2 { background: linear-gradient(180deg, #7a7a7a 0%, #5a5a5a 40%, #3a3a3a 100%), radial-gradient(ellipse at 50% 100%, #4a4a4a 0%, transparent 60%); }
.scn-sonnet-cxxix-part2 .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #8a8a8a 0%, #6a6a6a 100%); animation: cxxix-sky 10s ease-in-out infinite alternate; }
.scn-sonnet-cxxix-part2 .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); }
.scn-sonnet-cxxix-part2 .path { position:absolute; bottom:25%; left:20%; width:60%; height:8%; background: #2e2e2e; border-radius: 50% 50% 0 0 / 100% 100% 0 0; transform: scaleY(0.6); animation: cxxix-path 6s ease-in-out infinite alternate; }
.scn-sonnet-cxxix-part2 .figure { position:absolute; bottom:30%; left:40%; width:16px; height:32px; background: #1a1a1a; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cxxix-figure 4s ease-in-out infinite; }
.scn-sonnet-cxxix-part2 .shadow { position:absolute; bottom:28%; left:39%; width:20px; height:4px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(2px); animation: cxxix-shadow 4s ease-in-out infinite; }
.scn-sonnet-cxxix-part2 .fading-orb { position:absolute; top:15%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, #c0c0c0 0%, #808080 50%, transparent 70%); border-radius: 50%; filter: blur(8px); opacity: .3; animation: cxxix-orb 8s ease-in-out infinite alternate; }
@keyframes cxxix-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.5 } }
@keyframes cxxix-path { 0% { transform: scaleY(0.6) translateX(0) } 50% { transform: scaleY(0.7) translateX(4px) } 100% { transform: scaleY(0.6) translateX(0) } }
@keyframes cxxix-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(6px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(12px) translateY(0) rotate(-2deg) } 75% { transform: translateX(18px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(24px) translateY(0) rotate(0) } }
@keyframes cxxix-shadow { 0% { opacity:.5; transform: scaleX(1) } 50% { opacity:.3; transform: scaleX(1.2) } 100% { opacity:.5; transform: scaleX(1) } }
@keyframes cxxix-orb { 0% { opacity:.2; transform: translateX(-50%) scale(0.9) } 50% { opacity:.4; transform: translateX(-50%) scale(1.05) } 100% { opacity:.2; transform: translateX(-50%) scale(0.9) } }

.scn-sonnet-cxxx { background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 50%, #3a3a4a 100%), radial-gradient(ellipse at 50% 0%, #5a5a6a 0%, transparent 70%); }
.scn-sonnet-cxxx .bg { position:absolute; inset:0; background: linear-gradient(180deg, #8a8a9a 0%, #5a5a6a 100%); }
.scn-sonnet-cxxx .hair { position:absolute; top:5%; left:30%; width:90px; height:70px; background: #1a1a1a; border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform: rotate(-5deg); animation: cxxx-hair 12s ease-in-out infinite; }
.scn-sonnet-cxxx .head { position:absolute; top:20%; left:35%; width:50px; height:60px; background: #2a2a2a; border-radius: 45% 45% 40% 40% / 50% 50% 40% 40%; transform: rotate(5deg); }
.scn-sonnet-cxxx .neck { position:absolute; top:65%; left:42%; width:12px; height:30px; background: #2a2a2a; border-radius: 20%; }
.scn-sonnet-cxxx .shoulders { position:absolute; top:80%; left:25%; width:80px; height:40px; background: #2a2a2a; border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; }
.scn-sonnet-cxxx .wire-strand-a { position:absolute; top:15%; left:32%; width:2px; height:20px; background: #0a0a0a; border-radius: 50%; transform-origin: top center; animation: cxxx-wire 3s ease-in-out infinite; }
.scn-sonnet-cxxx .wire-strand-b { position:absolute; top:12%; left:38%; width:2px; height:18px; background: #0a0a0a; border-radius: 50%; transform-origin: top center; animation: cxxx-wire 3s ease-in-out infinite 1s; }
@keyframes cxxx-hair { 0% { transform: rotate(-5deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-5deg) } }
@keyframes cxxx-wire { 0% { transform: rotate-5deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-5deg) } }

.scn-sonnet-cxxxi { background: linear-gradient(180deg, #4a4a4a 0%, #3a3a3a 60%, #2a2a2a 100%), radial-gradient(ellipse at 50% 0%, #5a5a5a 0%, transparent 80%); }
.scn-sonnet-cxxxi .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%); }
.scn-sonnet-cxxxi .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: #2a2a2a; }
.scn-sonnet-cxxxi .pedestal { position:absolute; bottom:30%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 -4px 10px rgba(0,0,0,0.5); }
.scn-sonnet-cxxxi .jewel { position:absolute; bottom:55%; left:50%; width:14px; height:14px; transform:translateX(-50%); background: radial-gradient(circle, #c8553d 0%, #5e1a1d 70%); border-radius: 50%; box-shadow: 0 0 12px 3px rgba(200,85,61,0.4), 0 0 24px 6px rgba(200,85,61,0.2); animation: cxxxi-jewel 4s ease-in-out infinite alternate; }
.scn-sonnet-cxxxi .figure { position:absolute; bottom:28%; left:30%; width:20px; height:40px; background: #1a1a1a; border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center; animation: cxxxi-fig 6s ease-in-out infinite; }
.scn-sonnet-cxxxi .shadow { position:absolute; bottom:26%; left:28%; width:30px; height:4px; background: rgba(0,0,0,0.6); border-radius: 50%; filter: blur(3px); animation: cxxxi-shadow 6s ease-in-out infinite; }
@keyframes cxxxi-jewel { 0% { box-shadow: 0 0 8px 2px rgba(200,85,61,0.3); transform: translateX(-50%) scale(0.95) } 50% { box-shadow: 0 0 16px 5px rgba(200,85,61,0.5); transform: translateX(-50%) scale(1.05) } 100% { box-shadow: 0 0 8px 2px rgba(200,85,61,0.3); transform: translateX(-50%) scale(0.95) } }
@keyframes cxxxi-fig { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes cxxxi-shadow { 0% { opacity:.5; transform: scaleX(1) } 50% { opacity:.3; transform: scaleX(1.1) } 100% { opacity:.5; transform: scaleX(1) } }

.scn-sonnet-cxxxii { background: linear-gradient(180deg, #7a7a8a 0%, #5a5a6a 40%, #4a4a5a 100%), radial-gradient(ellipse at 50% 100%, #6a6a7a 0%, transparent 60%); }
.scn-sonnet-cxxxii .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8a8a9a 0%, #6a6a7a 100%); animation: cxxxii-sky 12s ease-in-out infinite alternate; }
.scn-sonnet-cxxxii .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: #3a3a4a; }
.scn-sonnet-cxxxii .figure { position:absolute; bottom:30%; left:20%; width:24px; height:50px; background: #1a1a2a; border-radius: 45% 45% 35% 35% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cxxxii-fig 5s ease-in-out infinite; }
.scn-sonnet-cxxxii .hand { position:absolute; bottom:45%; left:35%; width:10px; height:20px; background: #1a1a2a; border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform: rotate(30deg); transform-origin: bottom left; animation: cxxxii-hand 4s ease-in-out infinite alternate; }
.scn-sonnet-cxxxii .star-a { position:absolute; top:25%; left:35%; width:8px; height:8px; background: radial-gradient(circle, #e0d0c0 0%, #a09080 70%); border-radius: 50%; box-shadow: 0 0 10px 2px rgba(224,208,192,0.3); animation: cxxxii-star 6s ease-in-out infinite alternate; }
.scn-sonnet-cxxxii .star-b { position:absolute; top:20%; left:55%; width:6px; height:6px; background: radial-gradient(circle, #d0c0b0 0%, #908070 70%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(208,192,176,0.2); animation: cxxxii-star 6s ease-in-out infinite alternate 2s; }
@keyframes cxxxii-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes cxxxii-fig { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes cxxxii-hand { 0% { transform: rotate(30deg) } 50% { transform: rotate(40deg) } 100% { transform: rotate(30deg) } }
@keyframes cxxxii-star { 0% { opacity:.4; transform: scale(0.8) } 50% { opacity:.8; transform: scale(1.2) } 100% { opacity:.4; transform: scale(0.8) } }

.scn-sweet-roses-death {
  background:
    radial-gradient(ellipse at 60% 80%, rgba(180,80,60,0.25) 0%, transparent 60%),
    radial-gradient(ellipse at 40% 20%, rgba(100,40,80,0.3) 0%, transparent 50%),
    linear-gradient(180deg, #3a1a2e 0%, #2a1a3e 30%, #1a1a3a 60%, #0e0e1e 100%);
}
.scn-sweet-roses-death .petal-fall-1 {
  position: absolute; top: -8%; left: 30%; width: 30px; height: 18px;
  background: linear-gradient(135deg, rgba(200,120,130,0.8) 0%, rgba(160,60,70,0.6) 100%);
  border-radius: 50% 0 50% 0; filter: blur(1px);
  animation: sr-petal1 8s ease-in-out infinite;
}
.scn-sweet-roses-death .petal-fall-2 {
  position: absolute; top: -5%; left: 55%; width: 24px; height: 14px;
  background: linear-gradient(200deg, rgba(190,110,120,0.7) 0%, rgba(140,50,60,0.5) 100%);
  border-radius: 0 50% 0 50%; filter: blur(1px);
  animation: sr-petal2 11s ease-in-out infinite 2s;
}
.scn-sweet-roses-death .rose-stem {
  position: absolute; bottom: 22%; left: 50%; width: 6px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a5a2a 0%, #2a4a1a 60%, #1a2a0e 100%);
  border-radius: 4px; animation: sr-stem 6s ease-in-out infinite;
}
.scn-sweet-roses-death .rose-head {
  position: absolute; bottom: 44%; left: 50%; width: 40px; height: 44px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 40% 30%, #a04050 0%, #6a2030 50%, #3a1018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5), 0 0 12px rgba(160,64,80,0.3);
  animation: sr-rose 9s ease-in-out infinite;
}
.scn-sweet-roses-death .rose-glow {
  position: absolute; bottom: 42%; left: 50%; width: 60px; height: 60px;
  transform: translate(-50%, 10%);
  background: radial-gradient(circle, rgba(200,120,130,0.2) 0%, transparent 60%);
  border-radius: 50%; filter: blur(8px);
  animation: sr-glow 7s ease-in-out infinite alternate;
}
.scn-sweet-roses-death .ground-light {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, transparent 0%, rgba(60,30,40,0.4) 60%, rgba(30,15,20,0.6) 100%);
  animation: sr-ground 12s ease-in-out infinite alternate;
}
.scn-sweet-roses-death .dust-mote {
  position: absolute; width: 4px; height: 4px; background: rgba(220,180,160,0.6);
  border-radius: 50%; filter: blur(1px);
  animation: sr-mote 25s ease-in-out infinite;
}
.scn-sweet-roses-death .mote-a { top: 30%; left: 40%; animation-delay: 0s; }
.scn-sweet-roses-death .mote-b { top: 50%; left: 60%; width: 3px; height: 3px; animation-delay: 8s; }
@keyframes sr-petal1 {
  0%   { transform: translate(0, -20px) rotate(-10deg); opacity: 0.8; }
  30%  { transform: translate(8px, 60px) rotate(20deg); opacity: 0.7; }
  60%  { transform: translate(-4px, 140px) rotate(-15deg); opacity: 0.4; }
  100% { transform: translate(6px, 260px) rotate(30deg); opacity: 0; }
}
@keyframes sr-petal2 {
  0%   { transform: translate(0, -15px) rotate(15deg); opacity: 0.8; }
  40%  { transform: translate(-10px, 80px) rotate(-25deg); opacity: 0.6; }
  70%  { transform: translate(5px, 170px) rotate(10deg); opacity: 0.3; }
  100% { transform: translate(-3px, 300px) rotate(-20deg); opacity: 0; }
}
@keyframes sr-stem {
  0%,100% { transform: translateX(-50%) scaleY(1); }
  50%     { transform: translateX(-50%) scaleY(0.97); }
}
@keyframes sr-rose {
  0%,100% { transform: translateX(-50%) rotate(0deg) scale(1); }
  50%     { transform: translateX(-50%) rotate(4deg) scale(0.95); }
}
@keyframes sr-glow {
  0%   { opacity: 0.3; transform: translate(-50%, 10%) scale(1); }
  50%  { opacity: 0.6; transform: translate(-50%, 10%) scale(1.2); }
  100% { opacity: 0.2; transform: translate(-50%, 10%) scale(0.9); }
}
@keyframes sr-ground {
  0%   { opacity: 0.5; }
  50%  { opacity: 0.8; }
  100% { opacity: 0.4; }
}
@keyframes sr-mote {
  0%   { transform: translateY(0) translateX(0) scale(1); opacity: 0.6; }
  25%  { transform: translateY(-40px) translateX(12px) scale(1.3); opacity: 0.8; }
  50%  { transform: translateY(-80px) translateX(-8px) scale(0.8); opacity: 0.4; }
  75%  { transform: translateY(-60px) translateX(16px) scale(1.1); opacity: 0.7; }
  100% { transform: translateY(0) translateX(0) scale(1); opacity: 0.6; }
}

.scn-living-record {
  background:
    radial-gradient(ellipse at 50% 40%, rgba(180,170,140,0.08) 0%, transparent 60%),
    linear-gradient(180deg, #8a9098 0%, #6a7078 30%, #4a5058 60%, #3a3a40 100%);
}
.scn-living-record .pediment {
  position: absolute; top: 6%; left: 50%; width: 220px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b0a898 0%, #8a8278 60%, #6a625a 100%);
  clip-path: polygon(0% 100%, 10% 0%, 90% 0%, 100% 100%);
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: lr-ped 16s ease-in-out infinite alternate;
}
.scn-living-record .column-left {
  position: absolute; top: 14%; left: 22%; width: 24px; height: 220px;
  background: linear-gradient(90deg, #9a9288 0%, #c0b8a8 30%, #a09888 60%, #7a7268 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  animation: lr-col 12s ease-in-out infinite alternate;
}
.scn-living-record .column-right {
  position: absolute; top: 14%; right: 22%; width: 24px; height: 220px;
  background: linear-gradient(270deg, #9a9288 0%, #c0b8a8 30%, #a09888 60%, #7a7268 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: lr-col 12s ease-in-out infinite alternate 0.5s;
}
.scn-living-record .stone-block {
  position: absolute; bottom: 14%; left: 50%; width: 130px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b0a898 0%, #8a8278 40%, #706860 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4), inset 0 2px 4px rgba(255,255,240,0.1);
  animation: lr-block 20s ease-in-out infinite alternate;
}
.scn-living-record .chisel-mark {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 36px;
  transform: translateX(-50%);
  background:
    repeating-linear-gradient(90deg,
      transparent 0px, transparent 4px,
      rgba(60,55,50,0.3) 4px, rgba(60,55,50,0.3) 5px,
      transparent 5px, transparent 9px
    );
  animation: lr-chisel 8s ease-in-out infinite;
}
.scn-living-record .gold-light {
  position: absolute; top: 0; width: 60px; height: 100%;
  background: linear-gradient(180deg, rgba(200,180,100,0.15) 0%, transparent 60%);
  filter: blur(20px);
  animation: lr-gold 14s ease-in-out infinite alternate;
}
.scn-living-record .ray-1 { left: 30%; animation-delay: 0s; }
.scn-living-record .ray-2 { right: 30%; animation-delay: 5s; }
.scn-living-record .laurel-left {
  position: absolute; top: 12%; left: 34%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 60% 50%, #5a7a3a 0%, #3a5a2a 40%, transparent 60%);
  border-radius: 0 50% 50% 0; transform: rotate(-20deg);
  animation: lr-laurel 10s ease-in-out infinite;
}
.scn-living-record .laurel-right {
  position: absolute; top: 12%; right: 34%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 40% 50%, #5a7a3a 0%, #3a5a2a 40%, transparent 60%);
  border-radius: 50% 0 0 50%; transform: rotate(20deg);
  animation: lr-laurel 10s ease-in-out infinite 1s;
}
@keyframes lr-ped {
  0%,100% { transform: translateX(-50%) scaleX(1); }
  50%     { transform: translateX(-50%) scaleX(1.02) translateY(2px); }
}
@keyframes lr-col {
  0%   { transform: scaleY(1); opacity: 0.9; }
  50%  { transform: scaleY(1.01); opacity: 1; }
  100% { transform: scaleY(0.99); opacity: 0.95; }
}
@keyframes lr-block {
  0%   { transform: translateX(-50%) scale(1); box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
  50%  { transform: translateX(-50%) scale(1.005); box-shadow: 0 6px 12px rgba(0,0,0,0.5); }
  100% { transform: translateX(-50%) scale(0.995); box-shadow: 0 3px 6px rgba(0,0,0,0.35); }
}
@keyframes lr-chisel {
  0%,100% { opacity: 0.4; }
  50%     { opacity: 0.7; }
}
@keyframes lr-gold {
  0%   { opacity: 0.2; transform: translateX(-10px); }
  50%  { opacity: 0.5; transform: translateX(5px); }
  100% { opacity: 0.3; transform: translateX(10px); }
}
@keyframes lr-laurel {
  0%,100% { transform: rotate(var(--rot, -20deg)) scale(1); }
  50%     { transform: rotate(var(--rot, -20deg)) scale(1.1); }
}
.scn-living-record .laurel-left { --rot: -20deg; }
.scn-living-record .laurel-right { --rot: 20deg; }

.scn-posterity-praise {
  background:
    radial-gradient(ellipse at 50% 30%, rgba(220,200,140,0.12) 0%, transparent 50%),
    radial-gradient(ellipse at 30% 80%, rgba(200,180,120,0.08) 0%, transparent 40%),
    linear-gradient(180deg, #a0a090 0%, #808070 35%, #606050 70%, #40403a 100%);
}
.scn-posterity-praise .cloud-veil {
  position: absolute; inset: 0; height: 100%;
  background: linear-gradient(180deg, transparent 0%, rgba(255,250,230,0.08) 30%, transparent 60%);
  filter: blur(30px);
  animation: pp-veil 30s ease-in-out infinite alternate;
}
.scn-posterity-praise .sun-burst {
  position: absolute; top: 20%; left: 50%; width: 100px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(240,220,160,0.3) 0%, rgba(220,200,130,0.1) 40%, transparent 70%);
  border-radius: 50%; filter: blur(15px);
  animation: pp-sun 14s ease-in-out infinite alternate;
}
.scn-posterity-praise .figure-torso {
  position: absolute; bottom: 18%; left: 50%; width: 60px; height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 30%, #1a1a1a 70%, #0e0e0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  box-shadow: 0 0 20px rgba(240,220,160,0.08);
  animation: pp-torso 8s ease-in-out infinite;
}
.scn-posterity-praise .upraised-arm {
  position: absolute; bottom: 50%; left: 50%; width: 16px; height: 60px;
  transform-origin: bottom center;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 60%, #0e0e0e 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: pp-arm 6s ease-in-out infinite;
}
.scn-posterity-praise .laurel-crown {
  position: absolute; bottom: 68%; left: 50%; width: 50px; height: 24px;
  transform: translateX(-50%);
  background:
    radial-gradient(ellipse at 30% 50%, #6a8a4a 0%, transparent 60%),
    radial-gradient(ellipse at 70% 50%, #6a8a4a 0%, transparent 60%),
    linear-gradient(180deg, transparent 0%, #5a7a3a 40%, transparent 100%);
  border-radius: 0 0 50% 50%;
  animation: pp-crown 10s ease-in-out infinite alternate;
}
.scn-posterity-praise .gold-haze {
  position: absolute; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(240,220,160,0.06) 0%, transparent 60%);
  border-radius: 50%; filter: blur(20px);
  animation: pp-haze 20s ease-in-out infinite alternate;
}
.scn-posterity-praise .haze-a { top: 30%; left: 20%; animation-delay: 0s; }
.scn-posterity-praise .haze-b { top: 50%; right: 15%; width: 100px; height: 100px; animation-delay: 7s; }
@keyframes pp-veil {
  0%   { opacity: 0.3; transform: scale(1); }
  50%  { opacity: 0.6; transform: scale(1.05); }
  100% { opacity: 0.4; transform: scale(0.95); }
}
@keyframes pp-sun {
  0%   { transform: translateX(-50%) scale(1); opacity: 0.4; }
  50%  { transform: translateX(-50%) scale(1.2); opacity: 0.7; }
  100% { transform: translateX(-50%) scale(0.9); opacity: 0.5; }
}
@keyframes pp-torso {
  0%,100% { transform: translateX(-50%) scaleY(1); }
  50%     { transform: translateX(-50%) scaleY(1.02) translateY(-2px); }
}
@keyframes pp-arm {
  0%   { transform: rotate(-10deg) translateX(20px); }
  50%  { transform: rotate(15deg) translateX(25px); }
  100% { transform: rotate(-10deg) translateX(20px); }
}
@keyframes pp-crown {
  0%   { transform: translateX(-50%) scale(1); opacity: 0.6; }
  50%  { transform: translateX(-50%) scale(1.1); opacity: 0.9; }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.7; }
}
@keyframes pp-haze {
  0%   { transform: translate(0, 0) scale(1); opacity: 0.3; }
  50%  { transform: translate(15px, -10px) scale(1.2); opacity: 0.6; }
  100% { transform: translate(-10px, 5px) scale(0.9); opacity: 0.4; }
}

.scn-renew-force {
  background:
    radial-gradient(ellipse at 50% 60%, rgba(80,100,120,0.15) 0%, transparent 50%),
    radial-gradient(ellipse at 70% 30%, rgba(100,120,140,0.1) 0%, transparent 40%),
    linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 35%, #3a4a5a 65%, #2a3038 100%);
}
.scn-renew-force .window-arch {
  position: absolute; top: 6%; left: 50%; width: 180px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 60%, #2a3a4a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: rf-arch 14s ease-in-out infinite alternate;
}
.scn-renew-force .window-pane {
  position: absolute; top: 10%; left: 50%; width: 140px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(160,180,200,0.15) 0%, rgba(120,140,160,0.08) 60%, rgba(80,100,120,0.05) 100%);
  border-radius: 40% 40% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: rf-pane 10s ease-in-out infinite alternate;
}
.scn-renew-force .figure-kneeling {
  position: absolute; bottom: 16%; left: 50%; width: 50px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 40%, #1a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  box-shadow: 0 0 12px rgba(0,0,0,0.4);
  animation: rf-fig 8s ease-in-out infinite;
}
.scn-renew-force .heart-orb {
  position: absolute; bottom: 46%; left: 50%; width: 36px; height: 36px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 40% 35%, rgba(180,120,140,0.6) 0%, rgba(140,80,100,0.4) 40%, rgba(100,50,70,0.2) 70%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 24px 6px rgba(180,120,140,0.3);
  animation: rf-heart 4s ease-in-out infinite alternate;
}
.scn-renew-force .warm-breath {
  position: absolute; bottom: 42%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(200,180,160,0.1) 0%, transparent 60%);
  border-radius: 50%; filter: blur(6px);
  animation: rf-breath 6s ease-in-out infinite;
}
.scn-renew-force .shadow-creep {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(20,30,40,0.4) 50%, rgba(10,15,20,0.6) 100%);
  animation: rf-shadow 16s ease-in-out infinite alternate;
}
.scn-renew-force .ember {
  position: absolute; width: 5px; height: 5px;
  background: radial-gradient(circle, rgba(200,180,160,0.8) 0%, rgba(180,140,120,0.4) 60%, transparent 100%);
  border-radius: 50%; filter: blur(1px);
  animation: rf-ember 7s ease-in-out infinite;
}
.scn-renew-force .ember-1 { bottom: 20%; left: 35%; animation-delay: 0s; }
.scn-renew-force .ember-2 { bottom: 25%; left: 55%; width: 4px; height: 4px; animation-delay: 3s; }
.scn-renew-force .ember-3 { bottom: 18%; left: 45%; width: 3px; height: 3px; animation-delay: 5s; }
@keyframes rf-arch {
  0%   { transform: translateX(-50%) scaleX(1); opacity: 0.8; }
  50%  { transform: translateX(-50%) scaleX(1.02); opacity: 0.95; }
  100% { transform: translateX(-50%) scaleX(0.98); opacity: 0.85; }
}
@keyframes rf-pane {
  0%   { opacity: 0.3; }
  50%  { opacity: 0.6; }
  100% { opacity: 0.4; }
}
@keyframes rf-fig {
  0%   { transform: translateX(-50%) translateY(0); }
  50%  { transform: translateX(-50%) translateY(-3px) scale(1.01); }
  100% { transform: translateX(-50%) translateY(2px); }
}
@keyframes rf-heart {
  0%   { transform: translateX(-50%) scale(1); opacity: 0.4; box-shadow: 0 0 16px 4px rgba(180,120,140,0.3); }
  50%  { transform: translateX(-50%) scale(1.15); opacity: 0.8; box-shadow: 0 0 32px 10px rgba(180,120,140,0.5); }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.5; box-shadow: 0 0 20px 6px rgba(180,120,140,0.35); }
}
@keyframes rf-breath {
  0%   { transform: translateX(-50%) scaleY(1); opacity: 0.2; }
  50%  { transform: translateX(-50%) scaleY(2) translateY(-10px); opacity: 0.5; }
  100% { transform: translateX(-50%) scaleY(1); opacity: 0.2; }
}
@keyframes rf-shadow {
  0%   { opacity: 0.4; }
  50%  { opacity: 0.7; }
  100% { opacity: 0.5; }
}
@keyframes rf-ember {
  0%   { transform: translateY(0) translateX(0) scale(1); opacity: 0.8; }
  30%  { transform: translateY(-30px) translateX(8px) scale(1.3); opacity: 0.9; }
  60%  { transform: translateY(-60px) translateX(-5px) scale(0.7); opacity: 0.4; }
  100% { transform: translateY(0) translateX(0) scale(1); opacity: 0.8; }
}

.scn-mother-glass-april {
  background: 
    linear-gradient(135deg, #f4d9a0 0%, #e8b85a 40%, #c08840 100%),
    radial-gradient(ellipse at 70% 30%, #fff2d0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-mother-glass-april .warm-bg { position:absolute; inset:0; background: linear-gradient(180deg, #fce6b0 0%, #e2b060 100%); }
.scn-mother-glass-april .window-light { position:absolute; top:10%; left:15%; width:35%; height:50%; background: radial-gradient(ellipse at 50% 50%, #fffbe0 0%, #ffe080 40%, transparent 70%); border-radius: 10%; box-shadow: 0 0 80px 40px #ffe080; opacity: 0.6; animation: mga-window 6s ease-in-out infinite alternate; }
.scn-mother-glass-april .mirror-oval { position:absolute; top:25%; left:50%; width:120px; height:180px; margin-left:-60px; background: linear-gradient(135deg, rgba(255,255,255,0.6), rgba(200,170,100,0.3)); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 40px 15px #c08030; transform: rotate(-5deg); animation: mga-mirror 8s ease-in-out infinite; }
.scn-mother-glass-april .mother-silhouette { position:absolute; bottom:18%; left:38%; width:50px; height:120px; background: linear-gradient(180deg, #3a2a1a 0%, #1f140a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mga-mother 4s ease-in-out infinite; }
.scn-mother-glass-april .child-silhouette { position:absolute; bottom:18%; left:52%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a0a 0%, #140a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mga-child 4s ease-in-out infinite 0.5s; }
.scn-mother-glass-april .curtain { position:absolute; top:0; width:20%; height:100%; background: linear-gradient(180deg, #b87878 0%, #6a2a2a 100%); }
.scn-mother-glass-april .curtain.left { left:0; transform: skewX(-5deg); animation: mga-curtain-l 12s ease-in-out infinite alternate; }
.scn-mother-glass-april .curtain.right { right:0; transform: skewX(5deg); animation: mga-curtain-r 12s ease-in-out infinite alternate; }
.scn-mother-glass-april .lamp-glow { position:absolute; bottom:10%; right:10%; width:30px; height:30px; background: radial-gradient(circle, #ffd060 0%, #c08030 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 50px 20px #ffd060; animation: mga-lamp 3s ease-in-out infinite alternate; }
.scn-mother-glass-april .petal { position:absolute; top:20%; left:60%; width:8px; height:12px; background: #c8553d; border-radius: 50% 0 50% 0; animation: mga-petal 10s linear infinite; }
@keyframes mga-window { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes mga-mirror { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.02); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes mga-mother { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes mga-child { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes mga-curtain-l { 0% { transform: skewX(-5deg) translateX(0); } 50% { transform: skewX(-6deg) translateX(-3px); } 100% { transform: skewX(-5deg) translateX(0); } }
@keyframes mga-curtain-r { 0% { transform: skewX(5deg) translateX(0); } 50% { transform: skewX(6deg) translateX(3px); } 100% { transform: skewX(5deg) translateX(0); } }
@keyframes mga-lamp { 0% { box-shadow: 0 0 40px 15px #ffd060; opacity:0.8; } 50% { box-shadow: 0 0 70px 30px #ffd060; opacity:1; } 100% { box-shadow: 0 0 50px 20px #ffd060; opacity:0.9; } }
@keyframes mga-petal { 0% { transform: translate(0,0) rotate(0deg); opacity:1; } 100% { transform: translate(80px, 100px) rotate(360deg); opacity:0; } }

.scn-niggard-usury-traffic {
  background: 
    linear-gradient(180deg, #2a1f10 0%, #1a1208 50%, #0e0804 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a14 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-niggard-usury-traffic .dim-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1f10 0%, #1a1208 100%); }
.scn-niggard-usury-traffic .table { position:absolute; bottom:20%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #4a3520 0%, #2a1a0a 100%); border-radius: 5%; box-shadow: 0 -5px 15px rgba(0,0,0,0.5); }
.scn-niggard-usury-traffic .coin { position:absolute; bottom:32%; border-radius:50%; background: linear-gradient(135deg, #b08040 0%, #8a5c20 100%); box-shadow: 0 2px 4px rgba(0,0,0,0.6); }
.scn-niggard-usury-traffic .coin.coin1 { left:35%; width:18px; height:18px; animation: nut-coin1 6s ease-in-out infinite; }
.scn-niggard-usury-traffic .coin.coin2 { left:48%; width:14px; height:14px; animation: nut-coin2 8s ease-in-out infinite 0.5s; }
.scn-niggard-usury-traffic .figure-seated { position:absolute; bottom:25%; left:40%; width:40px; height:80px; background: linear-gradient(180deg, #1a1208 0%, #0a0604 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: nut-figure 10s ease-in-out infinite; }
.scn-niggard-usury-traffic .lantern { position:absolute; top:20%; left:55%; width:20px; height:30px; background: radial-gradient(circle at 50% 60%, #ffd060 0%, #c08030 60%, transparent 80%); border-radius: 10%; box-shadow: 0 0 40px 15px #c08030; animation: nut-lantern 4s ease-in-out infinite alternate; }
.scn-niggard-usury-traffic .window-shape { position:absolute; top:10%; right:10%; width:30%; height:25%; background: linear-gradient(180deg, #4a6a7a 0%, #2a3a4a 100%); border: 2px solid #1a1208; border-radius: 5%; transform: perspective(400px) rotateY(-10deg); animation: nut-window 20s ease-in-out infinite alternate; }
.scn-niggard-usury-traffic .shadow-stripe { position:absolute; top:0; left:30%; bottom:0; width:5%; background: linear-gradient(180deg, transparent, rgba(0,0,0,0.3)); transform: skewX(-10deg); animation: nut-stripe 15s linear infinite; }
@keyframes nut-coin1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(15deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes nut-coin2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes nut-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes nut-lantern { 0% { box-shadow: 0 0 30px 10px #c08030; opacity:0.7; } 50% { box-shadow: 0 0 60px 20px #ffd060; opacity:1; } 100% { box-shadow: 0 0 40px 15px #c08030; opacity:0.8; } }
@keyframes nut-window { 0% { opacity:0.3; transform: perspective(400px) rotateY(-10deg); } 50% { opacity:0.6; transform: perspective(400px) rotateY(-8deg); } 100% { opacity:0.4; transform: perspective(400px) rotateY(-10deg); } }
@keyframes nut-stripe { 0% { transform: skewX(-10deg) translateX(0); } 50% { transform: skewX(-10deg) translateX(5px); } 100% { transform: skewX(-10deg) translateX(0); } }

.scn-hours-gaze-tyrants {
  background: 
    linear-gradient(180deg, #8a9a9a 0%, #6a7a7a 40%, #4a5a5a 100%),
    radial-gradient(ellipse at 30% 20%, #aababa 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-hours-gaze-tyrants .overcast-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #5a6a6a 0%, #8a9a9a 100%); animation: hgt-sky 15s ease-in-out infinite alternate; }
.scn-hours-gaze-tyrants .ground-summer { position:absolute; bottom:0; left:0; width:50%; height:45%; background: linear-gradient(180deg, #5a7a3a 0%, #3a5a2a 100%); border-radius: 0 20% 0 0; }
.scn-hours-gaze-tyrants .ground-winter { position:absolute; bottom:0; right:0; width:50%; height:45%; background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%); border-radius: 20% 0 0 0; }
.scn-hours-gaze-tyrants .tree { position:absolute; bottom:35%; left:30%; width:60px; height:120px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; transform-origin: bottom center; animation: hgt-tree 8s ease-in-out infinite; }
.scn-hours-gaze-tyrants .falling-leaf { position:absolute; top:30%; left:40%; width:10px; height:14px; background: #c8553d; border-radius: 50% 0 50% 0; animation: hgt-leaf 6s linear infinite; }
.scn-hours-gaze-tyrants .sundial { position:absolute; bottom:25%; left:60%; width:30px; height:20px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 50% 50% 10% 10%; transform: perspective(200px) rotateX(30deg); animation: hgt-sundial 20s linear infinite; }
.scn-hours-gaze-tyrants .figure-profile { position:absolute; bottom:20%; left:20%; width:30px; height:80px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%; transform: scaleX(-1); animation: hgt-figure 5s ease-in-out infinite; }
.scn-hours-gaze-tyrants .wind-lines { position:absolute; top:20%; left:0; width:100%; height:2px; background: rgba(255,255,255,0.1); filter: blur(1px); animation: hgt-wind 30s linear infinite; }
@keyframes hgt-sky { 0% { background: linear-gradient(180deg, #5a6a6a 0%, #8a9a9a 100%); } 50% { background: linear-gradient(180deg, #4a5a5a 0%, #7a8a8a 100%); } 100% { background: linear-gradient(180deg, #5a6a6a 0%, #8a9a9a 100%); } }
@keyframes hgt-tree { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes hgt-leaf { 0% { transform: translate(0,0) rotate(0deg); opacity:1; } 50% { transform: translate(30px, 80px) rotate(180deg); opacity:0.8; } 100% { transform: translate(60px, 160px) rotate(360deg); opacity:0; } }
@keyframes hgt-sundial { 0% { transform: perspective(200px) rotateX(30deg) rotate(0deg); } 100% { transform: perspective(200px) rotateX(30deg) rotate(360deg); } }
@keyframes hgt-figure { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-2px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes hgt-wind { 0% { transform: translateX(0); } 100% { transform: translateX(200vw); } }

.scn-distillation-vial {
  background: 
    linear-gradient(135deg, #ffe0a0 0%, #d4a050 40%, #b08030 100%),
    radial-gradient(ellipse at 20% 40%, #fff6e0 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-distillation-vial .sunlit-bg { position:absolute; inset:0; background: linear-gradient(180deg, #ffe8b0 0%, #d4a050 100%); }
.scn-distillation-vial .table-surface { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a6020 0%, #5a3a10 100%); border-radius: 20% 20% 0 0; }
.scn-distillation-vial .vial { position:absolute; bottom:15%; left:50%; width:50px; height:120px; margin-left:-25px; background: linear-gradient(180deg, rgba(200,220,255,0.3) 0%, rgba(255,255,255,0.5) 40%, rgba(255,200,150,0.6) 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 0 30px 10px #c08030, inset 0 0 20px #ffe080; animation: dv-vial 8s ease-in-out infinite; }
.scn-distillation-vial .liquid { position:absolute; bottom:20%; left:50%; width:36px; height:60px; margin-left:-18px; background: linear-gradient(180deg, #ffd060 0%, #c08030 100%); border-radius: 0 0 30% 30%; animation: dv-liquid 4s ease-in-out infinite alternate; }
.scn-distillation-vial .flower-stem { position:absolute; bottom:30%; left:35%; width:4px; height:80px; background: linear-gradient(180deg, #5a7a3a 0%, #3a5a2a 100%); border-radius: 50%; transform: rotate(15deg); animation: dv-stem 6s ease-in-out infinite; }
.scn-distillation-vial .flower-petal { position:absolute; bottom:60%; left:30%; width:20px; height:20px; background: #a0461a; border-radius: 50% 0 50% 0; transform: rotate(-20deg); animation: dv-petal 5s ease-in-out infinite alternate; }
.scn-distillation-vial .glow-ray { position:absolute; top:5%; left:30%; width:100px; height:4px; background: linear-gradient(90deg, transparent, #fff8e0, transparent); transform: rotate(-30deg); filter: blur(3px); animation: dv-ray 10s ease-in-out infinite; }
.scn-distillation-vial .glass-reflection { position:absolute; top:20%; left:46%; width:8px; height:30px; background: rgba(255,255,255,0.5); border-radius: 50%; transform: rotate(-10deg); animation: dv-reflection 3s ease-in-out infinite alternate; }
@keyframes dv-vial { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(1deg); } }
@keyframes dv-liquid { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes dv-stem { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(13deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes dv-petal { 0% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(-15deg) scale(1.05); } 100% { transform: rotate(-20deg) scale(1); } }
@keyframes dv-ray { 0% { opacity:0.2; transform: rotate(-30deg) translateX(-20px); } 50% { opacity:0.6; transform: rotate(-30deg) translateX(20px); } 100% { opacity:0.3; transform: rotate(-30deg) translateX(-10px); } }
@keyframes dv-reflection { 0% { opacity:0.3; transform: rotate(-10deg) translateX(0); } 50% { opacity:0.7; transform: rotate(-10deg) translateX(2px); } 100% { opacity:0.4; transform: rotate(-10deg) translateX(0); } }

/* scene: seal-print-copy */
.scn-seal-print-copy { background: linear-gradient(180deg, #2c1e14 0%, #3d2a1c 40%, #4d3626 100%), radial-gradient(ellipse at 50% 30%, #5a3f2b 0%, transparent 70%); }
.scn-seal-print-copy .wall-back { position:absolute; inset:0; background: linear-gradient(135deg, #2b1f16 0%, #3d2a1c 100%); opacity:.6; animation: spc-wall 20s ease-in-out infinite alternate; }
.scn-seal-print-copy .desk-plane { position:absolute; bottom:0; left:5%; right:5%; height:45%; background: linear-gradient(180deg, #4a2e1c 0%, #2e1d12 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,.6); transform: perspective(800px) rotateX(10deg); transform-origin: bottom center; }
.scn-seal-print-copy .seal-press { position:absolute; bottom:30%; left:35%; width:60px; height:80px; background: linear-gradient(180deg, #5c3b20 0%, #3a2310 100%); border-radius: 12% 12% 8% 8%; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: perspective(600px) rotateY(5deg); animation: spc-seal 6s ease-in-out infinite; }
.scn-seal-print-copy .parchment { position:absolute; bottom:25%; left:50%; width:100px; height:70px; transform:translateX(-50%); background: linear-gradient(135deg, #d4c5a0 0%, #bfae85 50%, #a6946c 100%); border-radius: 6% 6% 10% 10%; box-shadow: 0 4px 20px rgba(0,0,0,.3), inset 0 0 30px rgba(0,0,0,.1); animation: spc-parchment 12s ease-in-out infinite alternative; }
.scn-seal-print-copy .candle { position:absolute; bottom:28%; left:25%; width:14px; height:50px; background: linear-gradient(180deg, #f5e6c0 0%, #e2c89a 40%, #b0965e 100%); border-radius: 40% 40% 4% 4%; transform: rotate(2deg); animation: spc-candle 5s ease-in-out infinite; }
.scn-seal-print-copy .flame-glow { position:absolute; bottom:48%; left:25.5%; width:20px; height:30px; background: radial-gradient(ellipse, #ffb86c 0%, #f07a3a 40%, #c04e1a 70%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: spc-flame 1.5s ease-in-out infinite alternate; }
.scn-seal-print-copy .book-shape { position:absolute; bottom:18%; right:15%; width:70px; height:50px; background: linear-gradient(180deg, #3b2818 0%, #2b1a0e 100%); border-radius: 6% 6% 12% 12%; box-shadow: 4px 4px 10px rgba(0,0,0,.5); transform: rotate(-12deg); animation: spc-book 20s ease-in-out infinite; }
.scn-seal-print-copy .ink-pot { position:absolute; bottom:27%; left:55%; width:20px; height:24px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.6); transform: rotate(5deg); animation: spc-ink 9s ease-in-out infinite; }
@keyframes spc-wall { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.55 } }
@keyframes spc-seal { 0%,100% { transform: perspective(600px) rotateY(5deg) translateY(0) } 50% { transform: perspective(600px) rotateY(5deg) translateY(-3px) } }
@keyframes spc-parchment { 0% { filter: brightness(1) } 50% { filter: brightness(1.1) } 100% { filter: brightness(0.9) } }
@keyframes spc-candle { 0% { transform: rotate(2deg) scale(1) } 25% { transform: rotate(1deg) scale(1.02) } 75% { transform: rotate(3deg) scale(0.98) } 100% { transform: rotate(2deg) scale(1) } }
@keyframes spc-flame { 0% { transform: scale(1) translateY(0); opacity:0.8 } 50% { transform: scale(1.15) translateY(-5px); opacity:1 } 100% { transform: scale(0.95) translateY(-2px); opacity:0.7 } }
@keyframes spc-book { 0%,100% { transform: rotate(-12deg) } 50% { transform: rotate(-14deg) translateY(2px) } }
@keyframes spc-ink { 0% { transform: rotate(5deg) } 50% { transform: rotate(8deg) scale(1.02) } 100% { transform: rotate(5deg) } }

/* scene: item-clock-time-waste */
.scn-item-clock-time-waste { background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%), radial-gradient(ellipse at 30% 60%, #5a5a6a 0%, transparent 70%); }
.scn-item-clock-time-waste .overcast-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); animation: ctw-sky 15s ease-in-out infinite alternate; }
.scn-item-clock-time-waste .ground-barren { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); animation: ctw-ground 20s ease-in-out infinite; }
.scn-item-clock-time-waste .clock-tower { position:absolute; bottom:20%; left:30%; width:60px; height:140px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 8% 8% 4% 4%; box-shadow: -4px 4px 8px rgba(0,0,0,.5); animation: ctw-tower 12s ease-in-out infinite; }
.scn-item-clock-time-waste .clock-face { position:absolute; bottom:60%; left:33.5%; width:40px; height:40px; background: radial-gradient(circle, #e0d8c0 0%, #b0a888 70%); border-radius: 50%; border: 4px solid #4a4a5a; box-shadow: 0 0 12px rgba(0,0,0,.4); transform: rotate(0deg); animation: ctw-clock 60s linear infinite; }
.scn-item-clock-time-waste .tree-left { position:absolute; bottom:18%; left:8%; width:30px; height:100px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; transform: rotate(-5deg); box-shadow: 0 0 10px rgba(0,0,0,.3); animation: ctw-tree-l 25s ease-in-out infinite alternate; }
.scn-item-clock-time-waste .tree-right { position:absolute; bottom:15%; right:10%; width:25px; height:90px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; transform: rotate(5deg); box-shadow: 0 0 10px rgba(0,0,0,.3); animation: ctw-tree-r 30s ease-in-out infinite alternate; }
.scn-item-clock-time-waste .violet-wilted { position:absolute; bottom:12%; left:18%; width:20px; height:30px; background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%); border-radius: 50% 50% 40% 40% / 30% 30% 60% 60%; transform: rotate(-20deg); animation: ctw-violet 8s ease-in-out infinite; }
.scn-item-clock-time-waste .shadow-crack { position:absolute; bottom:0; left:40%; width:80px; height:150px; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); border-radius:40% 40% 0 0; animation: ctw-crack 40s ease-in-out infinite; }
@keyframes ctw-sky { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.75 } }
@keyframes ctw-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes ctw-tower { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes ctw-clock { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes ctw-tree-l { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes ctw-tree-r { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes ctw-violet { 0%,100% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-18deg) translateY(-1px) scale(0.95) } }
@keyframes ctw-crack { 0% { opacity:0.4 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

/* scene: beauty-question-time */
.scn-beauty-question-time { background: linear-gradient(180deg, #1a1a3a 0%, #2a2a5a 30%, #3a3a6a 60%, #1a1a3a 100%), radial-gradient(ellipse at 50% 80%, #4a4a7a 0%, transparent 60%); }
.scn-beauty-question-time .dusk-sky-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a2a5a 0%, #4a4a7a 30%, #6a5a7a 60%, #8a6a6a 100%); animation: bqt-sky 15s ease-in-out infinite alternate; }
.scn-beauty-question-time .horizon-ridge { position:absolute; bottom:25%; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.5); animation: bqt-ridge 25s ease-in-out infinite; }
.scn-beauty-question-time .figure-silhouette { position:absolute; bottom:25%; left:50%; width:20px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #0e0e1e 0%, #060612 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 -10px 20px rgba(0,0,0,.3); animation: bqt-figure 8s ease-in-out infinite; }
.scn-beauty-question-time .scythe-blade { position:absolute; bottom:38%; left:48%; width:50px; height:12px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 0 80% 80% 0 / 0 50% 50% 0; transform: rotate(-40deg); filter: drop-shadow(0 2px 4px rgba(0,0,0,.4)); animation: bqt-scythe 10s ease-in-out infinite alternate; }
.scn-beauty-question-time .time-sands { position:absolute; bottom:20%; left:30%; width:8px; height:40px; background: repeating-linear-gradient(0deg, #d4c090 0px, #b89a60 2px, transparent 2px, transparent 4px); border-radius: 4px; transform: rotate(15deg); animation: bqt-sand 6s linear infinite; }
.scn-beauty-question-time .dead-grass { position:absolute; bottom:25%; left:15%; right:15%; height:10%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 50% 50% 0 0; clip-path: polygon(0% 100%, 20% 50%, 40% 80%, 60% 30%, 80% 70%, 100% 100%); animation: bqt-grass 20s ease-in-out infinite; }
.scn-beauty-question-time .twilight-haze { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, rgba(100,80,120,0.2) 0%, transparent 70%); pointer-events:none; animation: bqt-haze 12s ease-in-out infinite alternate; }
@keyframes bqt-sky { 0% { filter: brightness(0.9) } 50% { filter: brightness(1.05) } 100% { filter: brightness(1) } }
@keyframes bqt-ridge { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes bqt-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-48%) translateY(-1px) rotate(2deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(-1deg) } 75% { transform: translateX(-52%) translateY(-1px) rotate(1deg) } }
@keyframes bqt-scythe { 0% { transform: rotate(-40deg) translate(0,0) } 50% { transform: rotate(-38deg) translate(1px,-1px) } 100% { transform: rotate(-42deg) translate(0,1px) } }
@keyframes bqt-sand { 0% { background-position: 0 0; opacity:0.5 } 50% { background-position: 0 -20px; opacity:0.8 } 100% { background-position: 0 -40px; opacity:0.5 } }
@keyframes bqt-grass { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes bqt-haze { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }

/* scene: lease-issue-husbandry */
.scn-lease-issue-husbandry { background: linear-gradient(180deg, #f0e6d0 0%, #e8d4b0 40%, #d0b890 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%); }
.scn-lease-issue-husbandry .sunlit-wall { position:absolute; inset:0; background: linear-gradient(180deg, #f5e8c8 0%, #e0d0a8 100%); animation: lih-wall 20s ease-in-out infinite alternate; }
.scn-lease-issue-husbandry .window-frame { position:absolute; top:10%; left:25%; right:25%; bottom:40%; background: linear-gradient(180deg, #d0c8a0 0%, #b8a880 100%); border: 12px solid #a09070; box-shadow: inset 0 0 40px rgba(0,0,0,.1); border-radius: 4% 4% 6% 6%; animation: lih-window 25s ease-in-out infinite; }
.scn-lease-issue-husbandry .sunbeam { position:absolute; top:10%; left:35%; width:20px; height:80px; background: radial-gradient(ellipse, rgba(255,240,200,0.6) 0%, transparent 70%); transform: rotate(20deg); transform-origin: top left; filter: blur(8px); animation: lih-beam 8s ease-in-out infinite alternate; }
.scn-lease-issue-husbandry .cradle-vine { position:absolute; bottom:20%; left:40%; width:80px; height:60px; background: radial-gradient(ellipse at 50% 100%, #6a8a4a 0%, #3a5a2a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px rgba(0,0,0,.1); animation: lih-cradle 14s ease-in-out infinite; }
.scn-lease-issue-husbandry .blossom-cluster { position:absolute; bottom:40%; left:38%; width:30px; height:30px; background: radial-gradient(circle, #f0a8b0 0%, #d08090 60%, transparent 100%); border-radius: 50%; filter: blur(1px); animation: lih-blossom 10s ease-in-out infinite alternate; }
.scn-lease-issue-husbandry .leaf-scatter { position:absolute; bottom:25%; left:15%; right:15%; height:8%; background: repeating-linear-gradient(90deg, #6a8a4a 0px, #4a6a2a 4px, transparent 4px, transparent 8px); opacity:0.6; animation: lih-leaf 20s linear infinite; }
.scn-lease-issue-husbandry .warm-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.2); animation: lih-floor 30s ease-in-out infinite; }
.scn-lease-issue-husbandry .butterfly { position:absolute; bottom:50%; left:55%; width:12px; height:8px; background: radial-gradient(ellipse, #f0c070 0%, #d09050 80%); border-radius: 50%; transform: rotate(30deg); animation: lih-butterfly 4s ease-in-out infinite; }
@keyframes lih-wall { 0% { filter: brightness(1) } 50% { filter: brightness(1.05) } 100% { filter: brightness(0.95) } }
@keyframes lih-window { 0% { transform: scale(1) } 50% { transform: scale(1.005) } 100% { transform: scale(0.995) } }
@keyframes lih-beam { 0% { opacity:0.3; transform: rotate(20deg) translateX(0) } 50% { opacity:0.7; transform: rotate(22deg) translateX(5px) } 100% { opacity:0.4; transform: rotate(18deg) translateX(-3px) } }
@keyframes lih-cradle { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes lih-blossom { 0% { transform: scale(1) } 50% { transform: scale(1.2) } 100% { transform: scale(0.9) } }
@keyframes lih-leaf { 0% { transform: translateX(0) } 100% { transform: translateX(20px) } }
@keyframes lih-floor { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes lih-butterfly { 0% { transform: rotate(30deg) translate(0,0) } 25% { transform: rotate(15deg) translate(5px,-5px) } 50% { transform: rotate(35deg) translate(10px,0) } 75% { transform: rotate(20deg) translate(5px,5px) } 100% { transform: rotate(30deg) translate(0,0) } }

.scn-time-crime-brow {
  background: linear-gradient(180deg, #4a5b68 0%, #2c3640 40%, #1f2730 100%), radial-gradient(ellipse at 50% 0%, #5b6e7a 0%, transparent 60%);
}
.scn-time-crime-brow .bg-overcast {
  position: absolute; inset: 0; background: linear-gradient(180deg, #5b6e7a 0%, #3a4a55 50%, #2c3640 100%);
  animation: tcb-sky 8s ease-in-out infinite alternate;
}
.scn-time-crime-brow .head-silhouette {
  position: absolute; bottom: 25%; left: 15%; width: 35%; height: 45%;
  background: radial-gradient(ellipse at 50% 70%, #2c3035 0%, #1a1c20 100%);
  border-radius: 60% 40% 50% 50% / 70% 60% 40% 40%;
  box-shadow: inset -10px 0 20px rgba(0,0,0,.5);
  animation: tcb-head 4s ease-in-out infinite alternate;
}
.scn-time-crime-brow .quill {
  position: absolute; bottom: 40%; right: 35%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #3a3d42 0%, #2a2c30 60%, #1a1c20 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform-origin: 50% 90%;
  animation: tcb-quill 0.8s ease-in-out infinite alternate;
}
.scn-time-crime-brow .brow-line {
  position: absolute; bottom: 52%; left: 22%; width: 18%; height: 1.5%;
  background: #a0461a;
  box-shadow: 0 0 8px 2px #a0461a;
  border-radius: 50%;
  animation: tcb-brow 1.2s ease-in-out infinite alternate;
}
.scn-time-crime-brow .shadow-overlay {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 40%, transparent 50%, rgba(0,0,0,.4) 100%);
  animation: tcb-shadow 6s ease-in-out infinite alternate;
}
@keyframes tcb-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes tcb-head {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(2px) rotate(1deg); }
}
@keyframes tcb-quill {
  0% { transform: rotate(-5deg) scaleX(1); }
  50% { transform: rotate(3deg) scaleX(0.95); }
  100% { transform: rotate(-4deg) scaleX(1); }
}
@keyframes tcb-brow {
  0% { opacity: 0.6; transform: scaleX(0.9); }
  50% { opacity: 1; transform: scaleX(1.1); }
  100% { opacity: 0.7; transform: scaleX(1); }
}
@keyframes tcb-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}

.scn-woman-face-master-mistress {
  background: linear-gradient(135deg, #d4a073 0%, #e8c4a0 40%, #f5dcc0 100%), radial-gradient(ellipse at 70% 30%, #f5dcc0 0%, transparent 60%);
}
.scn-woman-face-master-mistress .wall-warm {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8c4a0 0%, #d4a073 100%);
  animation: wfm-wall 10s ease-in-out infinite alternate;
}
.scn-woman-face-master-mistress .window-light {
  position: absolute; top: 10%; right: 10%; width: 20%; height: 35%;
  background: #f5e0c0;
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 0 60px 20px rgba(245,220,192,0.6);
  animation: wfm-window 7s ease-in-out infinite alternate;
}
.scn-woman-face-master-mistress .light-beam {
  position: absolute; top: 10%; right: 10%; width: 30%; height: 60%;
  background: linear-gradient(135deg, rgba(245,220,192,0.4) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%);
  animation: wfm-beam 8s ease-in-out infinite alternate;
}
.scn-woman-face-master-mistress .face-profile {
  position: absolute; bottom: 20%; left: 30%; width: 25%; height: 50%;
  background: radial-gradient(ellipse at 50% 60%, #d4a073 0%, #b08050 100%);
  border-radius: 60% 30% 40% 40% / 70% 50% 50% 50%;
  box-shadow: inset -5px 0 15px rgba(0,0,0,.2);
  animation: wfm-face 5s ease-in-out infinite alternate;
}
.scn-woman-face-master-mistress .eye-glow {
  position: absolute; bottom: 45%; left: 38%; width: 6%; height: 4%;
  background: radial-gradient(circle, #f5d080 0%, #d4a040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #f5d080, 0 0 40px 15px rgba(245,208,128,.4);
  animation: wfm-eye 3s ease-in-out infinite alternate;
}
.scn-woman-face-master-mistress .brush-hand {
  position: absolute; bottom: 22%; right: 30%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #c8a078 0%, #a08060 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: 50% 80%;
  animation: wfm-brush 6s ease-in-out infinite alternate;
}
@keyframes wfm-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes wfm-window {
  0% { box-shadow: 0 0 20px 10px rgba(245,220,192,0.4); }
  50% { box-shadow: 0 0 60px 30px rgba(245,220,192,0.7); }
  100% { box-shadow: 0 0 30px 15px rgba(245,220,192,0.5); }
}
@keyframes wfm-beam {
  0% { transform: translateX(0) rotate(0deg); opacity: 0.6; }
  50% { transform: translateX(10px) rotate(2deg); opacity: 1; }
  100% { transform: translateX(5px) rotate(-1deg); opacity: 0.8; }
}
@keyframes wfm-face {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-0.5deg); }
  100% { transform: translateY(1px) rotate(0.5deg); }
}
@keyframes wfm-eye {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.3); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.9; }
}
@keyframes wfm-brush {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-3px); }
  100% { transform: rotate(-8deg) translateY(0); }
}

.scn-addition-love-treasure {
  background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 40%, #1a0e05 100%), radial-gradient(ellipse at 50% 100%, #5a3a20 0%, transparent 70%);
}
.scn-addition-love-treasure .room-dim {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3a30 0%, #2a1a10 100%);
  animation: alt-room 12s ease-in-out infinite alternate;
}
.scn-addition-love-treasure .table-wood {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 10%;
  background: linear-gradient(180deg, #6a4a30 0%, #4a2a18 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.6);
  animation: alt-table 9s ease-in-out infinite alternate;
}
.scn-addition-love-treasure .treasure-box {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 15%;
  background: linear-gradient(135deg, #8a6a40 0%, #5a3a20 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 10px rgba(0,0,0,.5);
  animation: alt-box 14s ease-in-out infinite alternate;
}
.scn-addition-love-treasure .hand-adding {
  position: absolute; bottom: 20%; left: 35%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #8a7055 0%, #6a5035 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: 50% 80%;
  animation: alt-hand 4s ease-in-out infinite alternate;
}
.scn-addition-love-treasure .coin-pearl {
  position: absolute; bottom: 28%; left: 42%; width: 4%; height: 4%;
  background: radial-gradient(circle, #e8d0a0 0%, #b09060 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 3px rgba(232,208,160,0.5);
  animation: alt-coin 3s ease-in-out infinite alternate;
}
.scn-addition-love-treasure .box-glow {
  position: absolute; bottom: 25%; left: 38%; width: 24%; height: 17%;
  background: radial-gradient(ellipse, rgba(232,208,160,0.15) 0%, transparent 100%);
  animation: alt-glow 5s ease-in-out infinite alternate;
}
@keyframes alt-room {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes alt-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(1px); }
}
@keyframes alt-box {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(1deg) scale(1.02); }
  100% { transform: rotate(-0.5deg) scale(0.98); }
}
@keyframes alt-hand {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-5px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes alt-coin {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.7; }
  50% { transform: translateY(-8px) rotate(180deg); opacity: 1; }
  100% { transform: translateY(0) rotate(360deg); opacity: 0.8; }
}
@keyframes alt-glow {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

.scn-true-love-write {
  background: linear-gradient(180deg, #87CEEB 0%, #f5d080 60%, #f0c060 100%), radial-gradient(ellipse at 50% 0%, #b0d4f0 0%, transparent 60%);
}
.scn-true-love-write .sky-sunlit {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #87CEEB 0%, #f5d080 100%);
  animation: tlw-sky 15s ease-in-out infinite alternate;
}
.scn-true-love-write .window-frame {
  position: absolute; bottom: 40%; left: 5%; right: 50%; height: 50%;
  background: #5a3a20;
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3);
  animation: tlw-frame 12s ease-in-out infinite alternate;
}
.scn-true-love-write .sunlight-beam {
  position: absolute; bottom: 40%; left: 5%; width: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(255,220,150,0.3) 0%, rgba(255,200,100,0.1) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
  animation: tlw-beam 8s ease-in-out infinite alternate;
}
.scn-true-love-write .desk-wood {
  position: absolute; bottom: 10%; left: 5%; right: 45%; height: 10%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: tlw-desk 10s ease-in-out infinite alternate;
}
.scn-true-love-write .figure-writer {
  position: absolute; bottom: 15%; left: 15%; width: 20%; height: 35%;
  background: #2a2a2a;
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: inset -5px 0 10px rgba(0,0,0,.5);
  animation: tlw-figure 6s ease-in-out infinite alternate;
}
.scn-true-love-write .quill-hand {
  position: absolute; bottom: 20%; left: 22%; width: 6%; height: 20%;
  background: #3a3a3a;
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform-origin: 50% 90%;
  animation: tlw-quill 2s ease-in-out infinite alternate;
}
.scn-true-love-write .paper-sheet {
  position: absolute; bottom: 10%; left: 12%; width: 16%; height: 12%;
  background: #f5f0e0;
  border-radius: 3%;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: tlw-paper 7s ease-in-out infinite alternate;
}
@keyframes tlw-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes tlw-frame {
  0% { box-shadow: inset 0 0 10px rgba(0,0,0,.2); }
  50% { box-shadow: inset 0 0 30px rgba(0,0,0,.4); }
  100% { box-shadow: inset 0 0 15px rgba(0,0,0,.3); }
}
@keyframes tlw-beam {
  0% { transform: translateX(0) scaleY(1); opacity: 0.5; }
  50% { transform: translateX(10px) scaleY(1.05); opacity: 0.8; }
  100% { transform: translateX(5px) scaleY(0.95); opacity: 0.6; }
}
@keyframes tlw-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(1px); }
}
@keyframes tlw-figure {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-0.5deg) translateY(0); }
}
@keyframes tlw-quill {
  0% { transform: rotate(-8deg) scale(1); }
  50% { transform: rotate(5deg) scale(0.95); }
  100% { transform: rotate(-6deg) scale(1); }
}
@keyframes tlw-paper {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}

.scn-sonnet-ciii { background: linear-gradient(180deg, #b0b8be 0%, #8a9198 40%, #6b7278 100%), radial-gradient(ellipse at 50% 30%, #c0c8d0 0%, transparent 70%); }
.scn-sonnet-ciii .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #b5c0c9 0%, #a0abb5 100%); animation: s103-sky 14s ease-in-out infinite alternate; }
.scn-sonnet-ciii .wall { position:absolute; inset:30% 0 0 0; background: linear-gradient(180deg, #7a8086 0%, #5c6268 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-sonnet-ciii .window { position:absolute; top:10%; left:30%; width:40%; height:45%; background: linear-gradient(135deg, #c8d0d8 0%, #a8b0b8 100%); border: 8px solid #4a4f54; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.2); }
.scn-sonnet-ciii .desk { position:absolute; bottom:12%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #6b5040 0%, #4e3a2e 100%); border-radius: 6px 6px 20px 20px; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); animation: s103-desk 10s ease-in-out infinite; }
.scn-sonnet-ciii .mirror { position:absolute; top:35%; left:45%; width:16%; height:28%; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; background: radial-gradient(circle at 50% 40%, #d8e0e8 0%, #b0b8c0 70%); border: 6px solid #8a7a6a; box-shadow: 0 6px 12px rgba(0,0,0,0.4); animation: s103-mirror 8s ease-in-out infinite alternate; }
.scn-sonnet-ciii .figure { position:absolute; bottom:34%; left:38%; width:12%; height:30%; background: linear-gradient(180deg, #3a3e42 0%, #2a2e32 100%); border-radius: 50% 40% 40% 50% / 60% 50% 50% 40%; transform-origin: bottom center; animation: s103-figure 6s ease-in-out infinite; }
.scn-sonnet-ciii .quill { position:absolute; bottom:42%; left:52%; width:2%; height:14%; background: linear-gradient(180deg, #d4c8b8 0%, #a89880 100%); transform: rotate(15deg); border-radius: 0 0 50% 50% / 0 0 20% 20%; animation: s103-quill 3s ease-in-out infinite alternate; }
@keyframes s103-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes s103-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes s103-mirror { 0% { box-shadow: 0 6px 12px rgba(0,0,0,0.4); } 50% { box-shadow: 0 8px 20px rgba(0,0,0,0.5); } 100% { box-shadow: 0 4px 10px rgba(0,0,0,0.3); } }
@keyframes s103-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes s103-quill { 0% { transform: rotate(12deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-2px); } 100% { transform: rotate(12deg) translateY(0); } }

.scn-sonnet-ciii-part2 { background: linear-gradient(180deg, #b8c0c8 0%, #98a0a8 50%, #788088 100%), radial-gradient(ellipse at 60% 40%, #d0d8e0 0%, transparent 60%); }
.scn-sonnet-ciii-part2 .bg-soft { position:absolute; inset:0; background: linear-gradient(180deg, #c8d0d8 0%, #a8b0b8 100%); opacity:0.6; animation: s103p-bg 12s ease-in-out infinite alternate; }
.scn-sonnet-ciii-part2 .mirror-frame { position:absolute; top:20%; left:30%; width:40%; height:50%; border: 12px solid #8a7a6a; border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; background: transparent; box-shadow: 0 0 30px rgba(0,0,0,0.3); animation: s103p-frame 10s ease-in-out infinite; }
.scn-sonnet-ciii-part2 .mirror-glow { position:absolute; top:24%; left:34%; width:32%; height:42%; border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; background: radial-gradient(circle at 50% 45%, #ffe8c0 0%, #d4c8b8 40%, #b8b0a8 80%); box-shadow: 0 0 60px 20px rgba(255,232,192,0.3); animation: s103p-glow 6s ease-in-out infinite alternate; }
.scn-sonnet-ciii-part2 .figure-head { position:absolute; bottom:40%; left:28%; width:12%; height:14%; background: linear-gradient(180deg, #3a3e42 0%, #2a2e32 100%); border-radius: 50% 40% 40% 50% / 60% 50% 50% 40%; transform-origin: center bottom; animation: s103p-head 8s ease-in-out infinite; }
.scn-sonnet-ciii-part2 .figure-torso { position:absolute; bottom:20%; left:26%; width:16%; height:26%; background: linear-gradient(180deg, #4a4e52 0%, #3a3e42 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: s103p-torso 8s ease-in-out infinite; }
.scn-sonnet-ciii-part2 .hand-light { position:absolute; bottom:38%; left:44%; width:6%; height:8%; background: radial-gradient(circle, #ffe8c0 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(255,232,192,0.4); animation: s103p-hand 5s ease-in-out infinite alternate; }
@keyframes s103p-bg { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes s103p-frame { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }
@keyframes s103p-glow { 0% { opacity:0.7; filter: blur(4px); } 50% { opacity:1; filter: blur(2px); } 100% { opacity:0.8; filter: blur(3px); } }
@keyframes s103p-head { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(3deg) translateX(2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes s103p-torso { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes s103p-hand { 0% { transform: scale(0.8); } 50% { transform: scale(1.2); } 100% { transform: scale(0.9); } }

.scn-sonnet-civ { background: linear-gradient(180deg, #8a9aA0 0%, #6a7a80 40%, #4a5a60 100%), radial-gradient(ellipse at 50% 0%, #a0b0b8 0%, transparent 60%); }
.scn-sonnet-civ .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #a0b0b8 0%, #809098 100%); animation: s104-sky 20s ease-in-out infinite alternate; }
.scn-sonnet-civ .horizon { position:absolute; bottom:40%; left:0; right:0; height:15%; background: linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; }
.scn-sonnet-civ .tree-trunk { position:absolute; bottom:35%; left:40%; width:8%; height:35%; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #3a2a1a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 10% 10%; transform-origin: bottom center; animation: s104-trunk 12s ease-in-out infinite; }
.scn-sonnet-civ .tree-branches { position:absolute; bottom:58%; left:34%; right:34%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, transparent 100%); border-radius: 60% 60% 0 0 / 80% 80% 0 0; clip-path: polygon(50% 0%, 0% 60%, 100% 60%); animation: s104-branches 15s ease-in-out infinite alternate; }
.scn-sonnet-civ .leaves-fore { position:absolute; bottom:50%; left:30%; right:30%; height:25%; background: radial-gradient(ellipse at 50% 100%, #7a8a5a 0%, #5a6a3a 60%, transparent 100%); border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%; filter: blur(2px); animation: s104-leaves 18s ease-in-out infinite alternate; }
.scn-sonnet-civ .leaf-a { position:absolute; bottom:48%; left:20%; width:4%; height:6%; background: radial-gradient(circle, #9a7a4a 0%, #7a5a3a 100%); border-radius: 50% 0% 50% 0%; filter: blur(1px); animation: s104-fall-a 8s linear infinite; }
.scn-sonnet-civ .leaf-b { position:absolute; bottom:52%; left:60%; width:3%; height:5%; background: radial-gradient(circle, #8a6a3a 0%, #6a4a2a 100%); border-radius: 50% 0% 50% 0%; filter: blur(1px); animation: s104-fall-b 10s linear infinite; animation-delay: -3s; }
.scn-sonnet-civ .leaf-c { position:absolute; bottom:45%; left:45%; width:3.5%; height:5.5%; background: radial-gradient(circle, #7a8a4a 0%, #5a6a2a 100%); border-radius: 50% 0% 50% 0%; filter: blur(1px); animation: s104-fall-c 12s linear infinite; animation-delay: -6s; }
@keyframes s104-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes s104-trunk { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes s104-branches { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes s104-leaves { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes s104-fall-a { 0% { transform: translateY(0) rotate(0deg) scale(1); } 50% { transform: translateY(50px) rotate(180deg) scale(0.8); } 100% { transform: translateY(100px) rotate(360deg) scale(0.5); opacity:0; } }
@keyframes s104-fall-b { 0% { transform: translateY(0) rotate(0deg) scale(1); } 50% { transform: translateY(60px) rotate(-150deg) scale(0.9); } 100% { transform: translateY(120px) rotate(-300deg) scale(0.6); opacity:0; } }
@keyframes s104-fall-c { 0% { transform: translateY(0) rotate(0deg) scale(1); } 50% { transform: translateY(40px) rotate(200deg) scale(0.7); } 100% { transform: translateY(80px) rotate(400deg) scale(0.4); opacity:0; } }

.scn-sonnet-cv { background: linear-gradient(180deg, #6a7278 0%, #4a5258 40%, #32383c 100%), radial-gradient(ellipse at 50% 30%, #7a8288 0%, transparent 60%); }
.scn-sonnet-cv .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #4a5055 0%, #3a4045 100%); animation: s105-room 15s ease-in-out infinite alternate; }
.scn-sonnet-cv .window { position:absolute; top:5%; left:30%; width:40%; height:40%; background: linear-gradient(135deg, #6a7278 0%, #4a5258 100%); border: 8px solid #3a3e42; border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.5); }
.scn-sonnet-cv .table { position:absolute; bottom:15%; left:30%; right:30%; height:12%; background: linear-gradient(180deg, #5a4e44 0%, #3e342c 100%); border-radius: 4px 4px 20px 20px; box-shadow: 0 -6px 12px rgba(0,0,0,0.4); animation: s105-table 12s ease-in-out infinite; }
.scn-sonnet-cv .candle-stick { position:absolute; bottom:28%; left:46%; width:4%; height:14%; background: linear-gradient(180deg, #b8a890 0%, #988878 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: s105-stick 10s ease-in-out infinite; }
.scn-sonnet-cv .candle-flame { position:absolute; bottom:42%; left:47%; width:2%; height:6%; background: radial-gradient(circle, #ffd080 0%, #e8b060 40%, #c88040 80%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; filter: blur(1px); animation: s105-flame 3s ease-in-out infinite alternate; }
.scn-sonnet-cv .candle-glow { position:absolute; bottom:38%; left:44%; width:8%; height:12%; background: radial-gradient(circle, rgba(255,208,128,0.4) 0%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: s105-glow 5s ease-in-out infinite alternate; }
.scn-sonnet-cv .steady-beam { position:absolute; bottom:44%; left:46%; width:0; height:0; border-left: 2px solid transparent; border-right: 2px solid transparent; border-bottom: 50px solid rgba(255,208,128,0.1); transform-origin: bottom center; animation: s105-beam 8s ease-in-out infinite; }
@keyframes s105-room { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes s105-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes s105-stick { 0% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0deg) } }
@keyframes s105-flame { 0% { transform: scaleY(0.8) translateY(0); } 50% { transform: scaleY(1.1) translateY(-2px); } 100% { transform: scaleY(0.9) translateY(0); } }
@keyframes s105-glow { 0% { opacity:0.3; filter: blur(8px); } 50% { opacity:0.6; filter: blur(4px); } 100% { opacity:0.4; filter: blur(6px); } }
@keyframes s105-beam { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.1); } 100% { transform: rotate(-3deg) scaleY(0.9); } }

/* rose-thorn-mud-canker */
.scn-rose-thorn-mud-canker {
  background: 
    linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 40%, #4a5a5a 100%),
    radial-gradient(ellipse at 50% 0%, #8a9a9a 0%, transparent 60%);
}
.scn-rose-thorn-mud-canker .overcast-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #9aaeae 0%, #6a7a7a 100%);
  animation: rtm-sky 10s ease-in-out infinite alternate;
}
.scn-rose-thorn-mud-canker .mud-pool {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: rtm-mud 12s ease-in-out infinite alternate;
}
.scn-rose-thorn-mud-canker .stem {
  position: absolute; bottom: 20%; left: 48%; width: 6px; height: 45%;
  background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  transform-origin: bottom;
  animation: rtm-stem 15s ease-in-out infinite;
}
.scn-rose-thorn-mud-canker .thorns {
  position: absolute; bottom: 30%; left: 48%; width: 20px; height: 20px;
  background: transparent;
  border-top: 4px solid #4a3a2a; border-right: 4px solid transparent;
  transform: rotate(-40deg);
  animation: rtm-thorn 8s ease-in-out infinite;
}
.scn-rose-thorn-mud-canker .rose-bloom {
  position: absolute; bottom: 58%; left: 50%; width: 50px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 40% 30%, #b87878 0%, #8a5050 50%, #5a2a2a 100%);
  border-radius: 60% 40% 50% 50% / 50% 50% 40% 40%;
  box-shadow: 0 0 20px 5px rgba(138,80,80,0.3);
  animation: rtm-bloom 6s ease-in-out infinite alternate;
}
.scn-rose-thorn-mud-canker .canker-leaf {
  position: absolute; bottom: 45%; left: 44%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #6a7a4a 0%, #5a6a3a 50%, #4a5a2a 100%);
  border-radius: 40% 60% 50% 50% / 50% 50% 40% 40%;
  transform: rotate(15deg);
  box-shadow: inset 0 0 0 2px #3a2a1a;
  animation: rtm-leaf 9s ease-in-out infinite;
}
.scn-rose-thorn-mud-canker .dirt-mist {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 20%;
  background: radial-gradient(ellipse at 30% 100%, rgba(74,58,42,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: rtm-mist 14s ease-in-out infinite alternate;
}
@keyframes rtm-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes rtm-mud { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes rtm-stem { 0%,100% { transform: rotate(0) } 25% { transform: rotate(2deg) } 75% { transform: rotate(-2deg) } }
@keyframes rtm-thorn { 0%,100% { opacity: 0.6; transform: rotate(-40deg) scale(1) } 50% { opacity: 1; transform: rotate(-40deg) scale(1.3) } }
@keyframes rtm-bloom { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) } 100% { transform: translateX(-50%) scale(0.95) } }
@keyframes rtm-leaf { 0%,100% { transform: rotate(15deg) translateX(0) } 50% { transform: rotate(18deg) translateX(-3px) } }
@keyframes rtm-mist { 0% { opacity: 0.3 } 50% { opacity: 0.7 } 100% { opacity: 0.4 } }

/* confess-twain-love */
.scn-confess-twain-love {
  background: 
    linear-gradient(180deg, #e8d5b8 0%, #c4a882 50%, #b09070 100%),
    radial-gradient(ellipse at 50% 0%, #f0e0c8 0%, transparent 80%);
}
.scn-confess-twain-love .room-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%);
}
.scn-confess-twain-love .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
}
.scn-confess-twain-love .window-glow {
  position: absolute; top: 15%; left: 35%; right: 35%; bottom: 35%;
  background: radial-gradient(ellipse, #ffe8b0 0%, #e0c880 50%, transparent 70%);
  animation: ctl-glow 4s ease-in-out infinite alternate;
}
.scn-confess-twain-love .window-frame {
  position: absolute; top: 15%; left: 35%; right: 35%; bottom: 35%;
  border: 6px solid #5a3a1a;
  border-radius: 4px;
  background: transparent;
  animation: ctl-frame 8s ease-in-out infinite;
}
.scn-confess-twain-love .figure-left {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ctl-figure 6s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-confess-twain-love .figure-right {
  position: absolute; bottom: 20%; right: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ctl-figure 6s ease-in-out infinite alternate-reverse;
  transform-origin: bottom center;
}
.scn-confess-twain-love .uniting-light {
  position: absolute; top: 30%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #e8b060 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,208,128,0.4);
  animation: ctl-light 3s ease-in-out infinite alternate;
}
.scn-confess-twain-love .warm-dust {
  position: absolute; top: 20%; left: 10%; right: 10%; height: 60%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,224,180,0.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: ctl-dust 15s linear infinite;
}
@keyframes ctl-glow { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.8; transform: scale(0.98) } }
@keyframes ctl-frame { 0%,100% { transform: translateY(0) } 50% { transform: translateY(2px) } }
@keyframes ctl-figure { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes ctl-light { 0% { transform: translateX(-50%) scale(1); opacity: 0.8 } 50% { transform: translateX(-50%) scale(1.2); opacity: 1 } 100% { transform: translateX(-50%) scale(0.9); opacity: 0.7 } }
@keyframes ctl-dust { 0% { transform: translateY(0) } 50% { transform: translateY(-10px) } 100% { transform: translateY(0) } }

/* decrepit-father-child-comfort */
.scn-decrepit-father-child-comfort {
  background: 
    linear-gradient(180deg, #fad6a0 0%, #f0c080 30%, #e0a050 100%),
    radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 70%);
}
.scn-decrepit-father-child-comfort .golden-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #fad6a0 0%, #fce0b0 60%, #ffe8c0 100%);
  animation: dfc-sky 12s ease-in-out infinite alternate;
}
.scn-decrepit-father-child-comfort .sun-glow {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #fff0d0 0%, #f0c080 40%, transparent 60%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(240,192,128,0.3);
  animation: dfc-sun 6s ease-in-out infinite alternate;
}
.scn-decrepit-father-child-comfort .old-figure {
  position: absolute; bottom: 20%; left: 25%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dfc-old 9s ease-in-out infinite;
}
.scn-decrepit-father-child-comfort .child-figure {
  position: absolute; bottom: 22%; right: 30%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: dfc-child 4s ease-in-out infinite alternate;
}
.scn-decrepit-father-child-comfort .tree-trunk {
  position: absolute; bottom: 20%; left: 5%; width: 20px; height: 50%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(5deg);
  animation: dfc-tree 20s ease-in-out infinite alternate;
}
.scn-decrepit-father-child-comfort .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(0deg, #7a8a3a 0%, #5a6a2a 50%, #4a5a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  animation: dfc-grass 8s ease-in-out infinite alternate;
}
.scn-decrepit-father-child-comfort .light-rays {
  position: absolute; top: 0; left: 40%; right: 40%; bottom: 30%;
  background: linear-gradient(180deg, rgba(255,255,200,0.2) 0%, transparent 100%);
  clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%);
  animation: dfc-rays 5s ease-in-out infinite alternate;
}
.scn-decrepit-father-child-comfort .dust-motes {
  position: absolute; top: 15%; left: 20%; right: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,240,200,0.1) 0%, transparent 80%);
  filter: blur(8px);
  animation: dfc-dust 18s linear infinite;
}
@keyframes dfc-sky { 0% { opacity: 0.8 } 50% { opacity: 0.95 } 100% { opacity: 0.9 } }
@keyframes dfc-sun { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) } 100% { transform: translateX(-50%) scale(0.95) } }
@keyframes dfc-old { 0%,100% { transform: rotate(0) } 25% { transform: rotate(3deg) translateY(-1px) } 75% { transform: rotate(-3deg) translateY(1px) } }
@keyframes dfc-child { 0% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(10px) rotate(0) } 50% { transform: translateX(20px) rotate(5deg) } 75% { transform: translateX(10px) rotate(0) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes dfc-tree { 0%,100% { transform: rotate(5deg) } 50% { transform: rotate(8deg) } }
@keyframes dfc-grass { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(0.97) } }
@keyframes dfc-rays { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.2 } }
@keyframes dfc-dust { 0% { transform: translateY(0) } 50% { transform: translateY(-12px) } 100% { transform: translateY(0) } }

/* muse-subject-light */
.scn-muse-subject-light {
  background: 
    linear-gradient(180deg, #c8b090 0%, #a08060 40%, #806040 100%),
    radial-gradient(ellipse at 50% 0%, #dcc8a8 0%, transparent 60%);
}
.scn-muse-subject-light .study-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.2);
}
.scn-muse-subject-light .desk-top {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #604020 0%, #4a3018 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: msl-desk 10s ease-in-out infinite alternate;
}
.scn-muse-subject-light .candle-glow {
  position: absolute; bottom: 38%; left: 35%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffe8a0 0%, #e0b060 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(224,176,96,0.5);
  animation: msl-candle 3s ease-in-out infinite alternate;
}
.scn-muse-subject-light .quill {
  position: absolute; bottom: 35%; left: 45%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: msl-quill 2s ease-in-out infinite alternate;
}
.scn-muse-subject-light .paper {
  position: absolute; bottom: 28%; left: 38%; width: 60px; height: 45px;
  background: #e8d8c0;
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  transform: rotate(-2deg);
  animation: msl-paper 7s ease-in-out infinite;
}
.scn-muse-subject-light .muse-figure {
  position: absolute; bottom: 25%; right: 25%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px 5px rgba(200,180,150,0.2);
  animation: msl-muse 8s ease-in-out infinite alternate;
}
.scn-muse-subject-light .inspiration-rays {
  position: absolute; top: 0; left: 30%; right: 30%; bottom: 30%;
  background: linear-gradient(180deg, rgba(255,240,180,0.15) 0%, transparent 100%);
  clip-path: polygon(45% 0%, 55% 0%, 65% 100%, 35% 100%);
  animation: msl-rays 4s ease-in-out infinite alternate;
}
.scn-muse-subject-light .ink-drops {
  position: absolute; bottom: 30%; left: 42%; width: 8px; height: 8px;
  background: #2a1a0a;
  border-radius: 50%;
  box-shadow: 0 12px 0 #2a1a0a, 0 24px 0 #2a1a0a;
  animation: msl-ink 5s ease-in-out infinite;
}
.scn-muse-subject-light .warm-aura {
  position: absolute; inset: 10%;
  background: radial-gradient(ellipse at 50% 40%, rgba(255,224,160,0.08) 0%, transparent 70%);
  filter: blur(20px);
  animation: msl-aura 12s ease-in-out infinite alternate;
}
@keyframes msl-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes msl-candle { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.8; transform: scale(0.95) } }
@keyframes msl-quill { 0% { transform: rotate(15deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(10deg) } }
@keyframes msl-paper { 0%,100% { transform: rotate(-2deg) translateX(0) } 50% { transform: rotate(-1deg) translateX(2px) } }
@keyframes msl-muse { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes msl-rays { 0% { opacity: 0.2 } 50% { opacity: 0.5 } 100% { opacity: 0.3 } }
@keyframes msl-ink { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes msl-aura { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }

/* ===== wrecked-boat ===== */
.scn-wrecked-boat {
  background:
    linear-gradient(180deg, #6b7b8b 0%, #4a5a6a 40%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 0%, #5a6a7a 0%, transparent 60%);
}
.scn-wrecked-boat .sky-overcast {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6b7b8b 0%, #4a6a6a 100%);
  opacity: 0.9;
  animation: wb-sky 14s ease-in-out infinite alternate;
}
.scn-wrecked-boat .sea-rough {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a4a4a 0%, #0a2a2a 100%);
  clip-path: polygon(0% 25%, 10% 20%, 20% 30%, 35% 15%, 50% 25%, 65% 18%, 80% 28%, 100% 20%, 100% 100%, 0% 100%);
  animation: wb-sea 6s ease-in-out infinite alternate;
}
.scn-wrecked-boat .rocks-left {
  position: absolute; bottom: 30%; left: 8%; width: 25%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #3a3a2a 0%, #1a1a1a 100%);
  border-radius: 60% 40% 0 0;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.3);
  animation: wb-rocks 10s ease-in-out infinite alternate;
}
.scn-wrecked-boat .rocks-right {
  position: absolute; bottom: 28%; right: 5%; width: 35%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, #2a3a2a 0%, #1a1a1a 100%);
  border-radius: 40% 50% 0 0;
  box-shadow: inset 0 -10px 14px rgba(0,0,0,0.5);
  animation: wb-rocks 12s ease-in-out infinite alternate-reverse;
}
.scn-wrecked-boat .broken-boat {
  position: absolute; bottom: 32%; left: 30%; width: 100px; height: 40px;
  background: linear-gradient(170deg, #4a3a2a 0%, #2a1a1a 70%);
  border-radius: 0 0 80% 80% / 0 0 50% 50%;
  transform: rotate(-15deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: wb-boat 8s ease-in-out infinite;
}
.scn-wrecked-boat .mast-shattered {
  position: absolute; bottom: 38%; left: 35%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a, #1a1a0a);
  transform: rotate(12deg);
  border-radius: 2px;
  animation: wb-mast 5s ease-in-out infinite alternate;
}
.scn-wrecked-boat .figure-dejected {
  position: absolute; bottom: 25%; left: 20%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wb-figure 4s ease-in-out infinite;
}
@keyframes wb-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes wb-sea {
  0% { clip-path: polygon(0% 25%, 10% 20%, 20% 30%, 35% 15%, 50% 25%, 65% 18%, 80% 28%, 100% 20%, 100% 100%, 0% 100%); }
  50% { clip-path: polygon(0% 22%, 10% 18%, 20% 26%, 35% 20%, 50% 28%, 65% 22%, 80% 24%, 100% 18%, 100% 100%, 0% 100%); }
  100% { clip-path: polygon(0% 28%, 10% 22%, 20% 32%, 35% 18%, 50% 22%, 65% 16%, 80% 26%, 100% 22%, 100% 100%, 0% 100%); }
}
@keyframes wb-rocks {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
  100% { transform: translateY(0) scale(0.98); }
}
@keyframes wb-boat {
  0% { transform: rotate(-15deg) translateX(0); }
  50% { transform: rotate(-18deg) translateX(4px) translateY(-2px); }
  100% { transform: rotate(-14deg) translateX(-2px); }
}
@keyframes wb-mast {
  0% { transform: rotate(12deg) scaleY(1); }
  50% { transform: rotate(14deg) scaleY(0.95); }
  100% { transform: rotate(10deg) scaleY(1.02); }
}
@keyframes wb-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(6px) rotate(-1deg); }
  75% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}

/* ===== epitaph-or-survive ===== */
.scn-epitaph-or-survive {
  background:
    linear-gradient(180deg, #5a6a6a 0%, #3a4a4a 50%, #2a3a3a 100%),
    radial-gradient(ellipse at 60% 0%, #7a8a7a 0%, transparent 50%);
}
.scn-epitaph-or-survive .sky-gloom {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a7a7a 0%, #3a4a4a 100%);
  opacity: 0.8;
  animation: es-sky 20s ease-in-out infinite alternate;
}
.scn-epitaph-or-survive .ground-moss {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-epitaph-or-survive .tombstone-worn {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: es-tomb 9s ease-in-out infinite;
}
.scn-epitaph-or-survive .ray-hope {
  position: absolute; top: 0; left: 35%; width: 30%; height: 100%;
  background: linear-gradient(180deg, rgba(200,180,140,0.3) 0%, transparent 70%);
  filter: blur(8px);
  clip-path: polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%);
  animation: es-ray 6s ease-in-out infinite alternate;
}
.scn-epitaph-or-survive .grass-blades {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 15%;
  background: repeating-linear-gradient(85deg, #2a3a2a 0px, #1a2a1a 4px, transparent 4px, transparent 8px);
  mask-image: linear-gradient(0deg, transparent 20%, #000 80%);
  animation: es-grass 4s ease-in-out infinite;
}
.scn-epitaph-or-survive .tiny-shrub {
  position: absolute; bottom: 30%; left: 70%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: es-shrub 7s ease-in-out infinite alternate;
}
@keyframes es-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes es-tomb {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes es-ray {
  0% { opacity: 0.3; transform: scaleY(0.9); }
  50% { opacity: 0.8; transform: scaleY(1.1); }
  100% { opacity: 0.5; transform: scaleY(1); }
}
@keyframes es-grass {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes es-shrub {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg) scaleY(1.05); }
  100% { transform: rotate(-2deg); }
}

/* ===== mouths-of-men ===== */
.scn-mouths-of-men {
  background:
    linear-gradient(135deg, #3a3a2a 0%, #1a1a1a 50%, #2a2a1a 100%),
    radial-gradient(ellipse at 70% 50%, #4a3a2a 0%, transparent 60%);
}
.scn-mouths-of-men .bg-study {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a0a 100%);
  opacity: 0.6;
  animation: mm-bg 15s ease-in-out infinite alternate;
}
.scn-mouths-of-men .desk-top {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-mouths-of-men .scroll-parchment {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 35%;
  background: linear-gradient(150deg, #c8b878 0%, #a09050 100%);
  border-radius: 2% 2% 40% 2% / 2% 2% 30% 2%;
  transform: rotate(-3deg);
  box-shadow: 2px 4px 6px rgba(0,0,0,0.3);
  animation: mm-scroll 8s ease-in-out infinite;
}
.scn-mouths-of-men .hand-writing {
  position: absolute; bottom: 28%; left: 42%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #c8a060 0%, #8a6040 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: 50% 80%;
  animation: mm-hand 3s ease-in-out infinite alternate;
}
.scn-mouths-of-men .quill-feather {
  position: absolute; bottom: 35%; left: 40%; width: 4px; height: 25px;
  background: linear-gradient(180deg, #e0d0b0 0%, #807060 100%);
  border-radius: 2px 2px 0 0;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: mm-quill 2s ease-in-out infinite alternate;
}
.scn-mouths-of-men .inkwell-dark {
  position: absolute; bottom: 25%; left: 65%; width: 14px; height: 16px;
  background: radial-gradient(ellipse at 50% 30%, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-mouths-of-men .lamp-glow {
  position: absolute; bottom: 40%; left: 70%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,150,80,0.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: mm-lamp 5s ease-in-out infinite alternate;
}
@keyframes mm-bg {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.6; }
}
@keyframes mm-scroll {
  0% { transform: rotate(-3deg) translateX(0); }
  50% { transform: rotate(-2deg) translateX(2px); }
  100% { transform: rotate(-4deg) translateX(-1px); }
}
@keyframes mm-hand {
  0% { transform: translateY(0) rotate(-5deg); }
  100% { transform: translateY(-6px) rotate(5deg); }
}
@keyframes mm-quill {
  0% { transform: rotate(-15deg) scaleY(1); }
  100% { transform: rotate(-10deg) scaleY(0.95); }
}
@keyframes mm-lamp {
  0% { opacity: 0.4; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}

/* ===== not-married-muse ===== */
.scn-not-married-muse {
  background:
    linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 20%, #6a6a7a 0%, transparent 70%);
}
.scn-not-married-muse .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a3a4a 0%, #1a1a2a 100%);
  opacity: 0.5;
  animation: nm-wall 12s ease-in-out infinite alternate;
}
.scn-not-married-muse .window-arch {
  position: absolute; top: 10%; left: 15%; width: 70%; height: 60%;
  background: radial-gradient(ellipse at 50% 30%, #4a5a5a 0%, #2a3a3a 80%);
  border-radius: 50% 50% 40% 40% / 30% 30% 20% 20%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
  clip-path: polygon(10% 0%, 90% 0%, 80% 100%, 20% 100%);
  animation: nm-window 18s ease-in-out infinite alternate;
}
.scn-not-married-muse .muse-silhouette {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nm-muse 6s ease-in-out infinite;
}
.scn-not-married-muse .book-open {
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 20px;
  background: linear-gradient(150deg, #a09870 0%, #807850 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: nm-book 8s ease-in-out infinite alternate;
}
.scn-not-married-muse .table-wood {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 6px rgba(0,0,0,0.5);
}
.scn-not-married-muse .candle-light {
  position: absolute; bottom: 18%; left: 60%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #e0c0a0 0%, #806040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 10px 2px rgba(200,150,80,0.4);
  animation: nm-candle 4s ease-in-out infinite alternate;
}
.scn-not-married-muse .warm-haze {
  position: absolute; bottom: 10%; left: 50%; width: 100px; height: 50px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,140,80,0.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: nm-haze 7s ease-in-out infinite alternate;
}
@keyframes nm-wall {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.5; }
}
@keyframes nm-window {
  0% { transform: scaleY(1); opacity: 0.7; }
  50% { transform: scaleY(1.05); opacity: 0.9; }
  100% { transform: scaleY(0.98); opacity: 0.8; }
}
@keyframes nm-muse {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes nm-book {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(2px); }
  100% { transform: rotate(-6deg) translateX(-1px); }
}
@keyframes nm-candle {
  0% { transform: scaleY(1); opacity: 0.7; }
  50% { transform: scaleY(1.15); opacity: 0.9; }
  100% { transform: scaleY(0.95); opacity: 0.8; }
}
@keyframes nm-haze {
  0% { transform: translateX(-10px); opacity: 0.3; }
  50% { transform: translateX(10px); opacity: 0.6; }
  100% { transform: translateX(-5px); opacity: 0.4; }
}

/* ===== sonnet-cxlviii-first ===== */
.scn-sonnet-cxlviii-first {
  background:
    linear-gradient(135deg, #1b1b2e 0%, #2a1f2e 50%, #1f2735 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, transparent 70%);
}
.scn-sonnet-cxlviii-first .wall { position:absolute;inset:0 0 30% 0; background:linear-gradient(180deg,#24243a 0%,#1a1a2c 100%); animation:s1-wall 20s ease-in-out infinite alternate; }
.scn-sonnet-cxlviii-first .floor { position:absolute;bottom:0;left:0;right:0;height:30%; background:linear-gradient(180deg,#2c1e1a 0%,#1a1210 100%); border-radius:60% 60% 0 0/30% 30% 0 0; }
.scn-sonnet-cxlviii-first .window { position:absolute;top:12%;left:30%;width:25%;height:40%; background:linear-gradient(180deg,#325070 0%,#1a2a3a 100%); border-radius:12px; box-shadow:inset 0 0 20px rgba(0,0,0,0.6),0 4px 12px rgba(0,0,0,0.5); }
.scn-sonnet-cxlviii-first .desk { position:absolute;bottom:20%;left:40%;width:30%;height:10%; background:linear-gradient(180deg,#4a3528 0%,#2a1e14 100%); border-radius:6px; box-shadow:0 -4px 10px rgba(0,0,0,0.7); }
.scn-sonnet-cxlviii-first .candle { position:absolute;bottom:26%;left:48%;width:6px;height:30px; background:linear-gradient(180deg,#a08060 0%,#705030 100%); border-radius:2px; }
.scn-sonnet-cxlviii-first .flame { position:absolute;bottom:50%;left:48%;width:10px;height:18px; background:radial-gradient(circle,#f0c060 0%,#e08030 50%,transparent 70%); border-radius:50%; box-shadow:0 0 20px 8px rgba(224,128,48,0.6); animation:s1-flame 2s ease-in-out infinite alternate; }
.scn-sonnet-cxlviii-first .book { position:absolute;bottom:20%;left:44%;width:30px;height:20px; background:linear-gradient(180deg,#5e3a2a 0%,#3a2212 100%); border-radius:4px; transform:rotate(-5deg); box-shadow:2px 2px 6px rgba(0,0,0,0.6); }
.scn-sonnet-cxlviii-first .figure { position:absolute;bottom:10%;left:60%;width:24px;height:70px; background:linear-gradient(180deg,#1a181a 0%,#0e0c0e 100%); border-radius:40% 40% 30% 30%/60% 60% 30% 30%; transform-origin:bottom center; animation:s1-fig 8s ease-in-out infinite; }
@keyframes s1-wall { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.85} }
@keyframes s1-flame { 0%{opacity:0.7;transform:scale(0.9) translateY(0)} 50%{opacity:1;transform:scale(1.1) translateY(-2px)} 100%{opacity:0.8;transform:scale(0.95) translateY(1px)} }
@keyframes s1-fig { 0%{transform:translateX(0) rotate(-2deg)} 50%{transform:translateX(4px) rotate(2deg)} 100%{transform:translateX(-2px) rotate(-1deg)} }

/* ===== sonnet-cxlviii-second ===== */
.scn-sonnet-cxlviii-second {
  background:
    linear-gradient(135deg, #1a1a2e 0%, #2a1f2e 50%, #1f2735 100%),
    radial-gradient(ellipse at 40% 30%, #3a2a2a 0%, transparent 70%);
}
.scn-sonnet-cxlviii-second .wall { position:absolute;inset:0 0 30% 0; background:linear-gradient(180deg,#1e1e32 0%,#141424 100%); }
.scn-sonnet-cxlviii-second .floor { position:absolute;bottom:0;left:0;right:0;height:30%; background:linear-gradient(180deg,#2a1e1a 0%,#161210 100%); border-radius:30% 70% 0 0/20% 40% 0 0; }
.scn-sonnet-cxlviii-second .mirror { position:absolute;top:10%;right:20%;width:30%;height:45%; background:linear-gradient(135deg,#2a3a4a 0%,#1a2a3a 100%); border-radius:8px; box-shadow:inset 0 0 30px rgba(0,0,0,0.7),0 6px 20px rgba(0,0,0,0.5); }
.scn-sonnet-cxlviii-second .candle { position:absolute;bottom:28%;left:30%;width:6px;height:30px; background:linear-gradient(180deg,#a08060 0%,#705030 100%); border-radius:2px; }
.scn-sonnet-cxlviii-second .flame { position:absolute;bottom:52%;left:30%;width:10px;height:18px; background:radial-gradient(circle,#f0c060 0%,#e08030 50%,transparent 70%); border-radius:50%; box-shadow:0 0 20px 8px rgba(224,128,48,0.6); animation:s2-flame 1.8s ease-in-out infinite alternate; }
.scn-sonnet-cxlviii-second .figure { position:absolute;bottom:10%;left:40%;width:28px;height:72px; background:linear-gradient(180deg,#1a181a 0%,#0e0c0e 100%); border-radius:40% 40% 30% 30%/60% 60% 30% 30%; transform-origin:bottom center; animation:s2-fig 10s ease-in-out infinite; }
.scn-sonnet-cxlviii-second .tear-a { position:absolute;bottom:25%;left:42%;width:4px;height:6px; background:radial-gradient(circle,#8aa8c8 0%,#5a7a9a 100%); border-radius:50% 50% 50% 50%/60% 60% 40% 40%; opacity:0.6; animation:s2-tear 3s ease-in infinite; }
.scn-sonnet-cxlviii-second .tear-b { position:absolute;bottom:25%;left:46%;width:4px;height:6px; background:radial-gradient(circle,#8aa8c8 0%,#5a7a9a 100%); border-radius:50% 50% 50% 50%/60% 60% 40% 40%; opacity:0.6; animation:s2-tear 3.6s ease-in infinite 1s; }
@keyframes s2-flame { 0%{opacity:0.7;transform:scale(0.9) translateY(0)} 50%{opacity:1;transform:scale(1.1) translateY(-2px)} 100%{opacity:0.8;transform:scale(0.95) translateY(1px)} }
@keyframes s2-fig { 0%{transform:translateX(0) rotate(0)} 50%{transform:translateX(3px) rotate(3deg)} 100%{transform:translateX(-3px) rotate(-2deg)} }
@keyframes s2-tear { 0%{opacity:0.6;transform:translateY(0)} 50%{opacity:1;transform:translateY(20px)} 100%{opacity:0;transform:translateY(50px)} }

/* ===== sonnet-cxlix-first ===== */
.scn-sonnet-cxlix-first {
  background:
    linear-gradient(135deg, #1a1a2e 0%, #2a1f2e 50%, #1f2735 100%),
    radial-gradient(ellipse at 50% 20%, #3a2a2a 0%, transparent 70%);
}
.scn-sonnet-cxlix-first .wall { position:absolute;inset:0 0 30% 0; background:linear-gradient(180deg,#222238 0%,#18182a 100%); animation:s3-wall 30s ease-in-out infinite alternate; }
.scn-sonnet-cxlix-first .floor { position:absolute;bottom:0;left:0;right:0;height:30%; background:linear-gradient(180deg,#2a1e1a 0%,#161210 100%); border-radius:50% 50% 0 0/20% 20% 0 0; }
.scn-sonnet-cxlix-first .mirror { position:absolute;top:12%;left:20%;width:35%;height:45%; background:linear-gradient(135deg,#2a3a4a 0%,#1a2a3a 100%); border-radius:8px; box-shadow:inset 0 0 30px rgba(0,0,0,0.7),0 6px 20px rgba(0,0,0,0.5); animation:s3-mirror 5s ease-in-out infinite alternate; }
.scn-sonnet-cxlix-first .candle { position:absolute;bottom:28%;left:50%;width:6px;height:30px; background:linear-gradient(180deg,#a08060 0%,#705030 100%); border-radius:2px; }
.scn-sonnet-cxlix-first .flame { position:absolute;bottom:52%;left:50%;width:10px;height:18px; background:radial-gradient(circle,#f0c060 0%,#e08030 50%,transparent 70%); border-radius:50%; box-shadow:0 0 20px 8px rgba(224,128,48,0.6); animation:s3-flame 2.2s ease-in-out infinite alternate; }
.scn-sonnet-cxlix-first .figure-a { position:absolute;bottom:12%;left:30%;width:26px;height:70px; background:linear-gradient(180deg,#1a181a 0%,#0e0c0e 100%); border-radius:40% 40% 30% 30%/60% 60% 30% 30%; transform-origin:bottom center; animation:s3-figA 6s ease-in-out infinite; }
.scn-sonnet-cxlix-first .figure-b { position:absolute;bottom:12%;right:30%;width:24px;height:68px; background:linear-gradient(180deg,#1a181a 0%,#0e0c0e 100%); border-radius:40% 40% 30% 30%/60% 60% 30% 30%; transform-origin:bottom center; animation:s3-figB 7s ease-in-out infinite; }
.scn-sonnet-cxlix-first .shadow { position:absolute;bottom:0;left:25%;width:50%;height:40%; background:radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 70%); animation:s3-shadow 8s ease-in-out infinite alternate; }
@keyframes s3-wall { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.85} }
@keyframes s3-mirror { 0%{box-shadow:inset 0 0 20px rgba(0,0,0,0.7)} 50%{box-shadow:inset 0 0 40px rgba(0,0,0,0.8)} 100%{box-shadow:inset 0 0 20px rgba(0,0,0,0.7)} }
@keyframes s3-flame { 0%{opacity:0.7;transform:scale(0.9) translateY(0)} 50%{opacity:1;transform:scale(1.1) translateY(-2px)} 100%{opacity:0.8;transform:scale(0.95) translateY(1px)} }
@keyframes s3-figA { 0%{transform:translateX(0) rotate(-3deg)} 50%{transform:translateX(-5px) rotate(3deg)} 100%{transform:translateX(3px) rotate(-2deg)} }
@keyframes s3-figB { 0%{transform:translateX(0) rotate(2deg)} 50%{transform:translateX(4px) rotate(-2deg)} 100%{transform:translateX(-2px) rotate(1deg)} }
@keyframes s3-shadow { 0%{opacity:0.5;transform:scale(1)} 50%{opacity:0.7;transform:scale(1.05)} 100%{opacity:0.5;transform:scale(0.95)} }

/* ===== sonnet-cxlix-second ===== */
.scn-sonnet-cxlix-second {
  background:
    linear-gradient(135deg, #1a1a2e 0%, #2a1f2e 50%, #1f2735 100%),
    radial-gradient(ellipse at 60% 30%, #3a2a2a 0%, transparent 70%);
}
.scn-sonnet-cxlix-second .wall { position:absolute;inset:0 0 30% 0; background:linear-gradient(180deg,#1e1e32 0%,#141424 100%); }
.scn-sonnet-cxlix-second .floor { position:absolute;bottom:0;left:0;right:0;height:30%; background:linear-gradient(180deg,#2a1e1a 0%,#161210 100%); border-radius:70% 30% 0 0/40% 20% 0 0; }
.scn-sonnet-cxlix-second .door-frame { position:absolute;top:5%;left:10%;width:20%;height:65%; background:linear-gradient(180deg,#2a2a3a 0%,#1a1a2a 100%); border-radius:10px; box-shadow:inset 0 0 20px rgba(0,0,0,0.7); }
.scn-sonnet-cxlix-second .candle { position:absolute;bottom:28%;left:70%;width:6px;height:30px; background:linear-gradient(180deg,#a08060 0%,#705030 100%); border-radius:2px; }
.scn-sonnet-cxlix-second .flame { position:absolute;bottom:52%;left:70%;width:10px;height:18px; background:radial-gradient(circle,#f0c060 0%,#e08030 50%,transparent 70%); border-radius:50%; box-shadow:0 0 20px 8px rgba(224,128,48,0.6); animation:s4-flame 2.4s ease-in-out infinite alternate; }
.scn-sonnet-cxlix-second .figure { position:absolute;bottom:12%;left:40%;width:26px;height:74px; background:linear-gradient(180deg,#1a181a 0%,#0e0c0e 100%); border-radius:40% 40% 30% 30%/60% 60% 30% 30%; transform-origin:bottom center; animation:s4-fig 12s ease-in-out infinite; }
.scn-sonnet-cxlix-second .cane { position:absolute;bottom:12%;left:40%;width:4px;height:60px; background:linear-gradient(180deg,#5a3a2a 0%,#3a2212 100%); border-radius:2px; transform:rotate(20deg); transform-origin:bottom left; animation:s4-cane 4s ease-in-out infinite alternate; }
.scn-sonnet-cxlix-second .shadow { position:absolute;bottom:0;left:30%;width:40%;height:30%; background:radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 70%); animation:s4-shadow 10s ease-in-out infinite alternate; }
@keyframes s4-flame { 0%{opacity:0.7;transform:scale(0.9) translateY(0)} 50%{opacity:1;transform:scale(1.1) translateY(-2px)} 100%{opacity:0.8;transform:scale(0.95) translateY(1px)} }
@keyframes s4-fig { 0%{transform:translateX(0) rotate(0)} 50%{transform:translateX(4px) rotate(3deg)} 100%{transform:translateX(-4px) rotate(-2deg)} }
@keyframes s4-cane { 0%{transform:rotate(20deg) scaleX(1)} 50%{transform:rotate(15deg) scaleX(0.95)} 100%{transform:rotate(22deg) scaleX(1.05)} }
@keyframes s4-shadow { 0%{opacity:0.5;transform:scale(1)} 50%{opacity:0.7;transform:scale(1.03)} 100%{opacity:0.5;transform:scale(0.97)} }

/* sonnet-cxxiii-part2 – resolute, overcast */
.scn-sonnet-cxxiii-part2 {
  background: linear-gradient(180deg, #4d5663 0%, #616c7a 40%, #7b8798 100%),
              radial-gradient(ellipse at 50% 30%, #6b7889 0%, transparent 70%);
}
.scn-sonnet-cxxiii-part2 .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3f4754 0%, #6f7c8c 100%);
  animation: sc23p2-sky 18s ease-in-out infinite alternate;
}
.scn-sonnet-cxxiii-part2 .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a303a 0%, #1d2128 100%);
  border-radius: 30% 70% 0 0 / 30% 40% 0 0;
  animation: sc23p2-ground 12s ease-in-out infinite alternate;
}
.scn-sonnet-cxxiii-part2 .figure {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1f26 0%, #0d1114 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sc23p2-figure 6s ease-in-out infinite;
}
.scn-sonnet-cxxiii-part2 .staff {
  position: absolute; bottom: 22%; left: 42%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #46392b 0%, #2a2016 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  transform-origin: bottom center;
  animation: sc23p2-staff 5s ease-in-out infinite;
}
.scn-sonnet-cxxiii-part2 .cloud-a {
  position: absolute; top: 10%; left: 15%; width: 90px; height: 20px;
  background: linear-gradient(90deg, transparent, #a7b4c5 50%, transparent);
  border-radius: 50%; filter: blur(8px);
  animation: sc23p2-drift-a 40s linear infinite;
}
.scn-sonnet-cxxiii-part2 .cloud-b {
  position: absolute; top: 18%; left: 70%; width: 70px; height: 16px;
  background: linear-gradient(90deg, transparent, #97a5b8 50%, transparent);
  border-radius: 50%; filter: blur(6px);
  animation: sc23p2-drift-b 50s linear infinite reverse;
}
@keyframes sc23p2-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes sc23p2-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sc23p2-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sc23p2-staff { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(-5deg) } }
@keyframes sc23p2-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(130vw) } }
@keyframes sc23p2-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

/* sonnet-cxxiv – independent, overcast */
.scn-sonnet-cxxiv {
  background: linear-gradient(180deg, #4d5663 0%, #616c7a 40%, #7b8798 100%),
              radial-gradient(ellipse at 70% 50%, #6b7889 0%, transparent 60%);
}
.scn-sonnet-cxxiv .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3f4754 0%, #6f7c8c 100%);
  animation: sc24-sky 20s ease-in-out infinite alternate;
}
.scn-sonnet-cxxiv .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a303a 0%, #1d2128 100%);
  border-radius: 40% 60% 0 0 / 50% 50% 0 0;
  animation: sc24-ground 15s ease-in-out infinite alternate;
}
.scn-sonnet-cxxiv .tower {
  position: absolute; bottom: 25%; left: 35%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #4a505c 0%, #2e333d 100%);
  border-radius: 4px 4px 6px 6px;
  box-shadow: 8px 0 12px rgba(0,0,0,0.4);
  animation: sc24-tower 10s ease-in-out infinite;
}
.scn-sonnet-cxxiv .window {
  position: absolute; bottom: 45%; left: 38%; width: 14px; height: 20px;
  background: radial-gradient(circle, #b88a5c 0%, #6b4a2e 70%);
  border-radius: 8px;
  box-shadow: 0 0 18px 4px #8b5e3a, 0 0 30px 8px rgba(139,94,58,0.3);
  animation: sc24-glow 3s ease-in-out infinite alternate;
}
.scn-sonnet-cxxiv .door {
  position: absolute; bottom: 25%; left: 37%; width: 20px; height: 30px;
  background: #1a1f26;
  border-radius: 8px 8px 4px 4px;
  animation: sc24-door 6s ease-in-out infinite;
}
.scn-sonnet-cxxiv .foundation {
  position: absolute; bottom: 24%; left: 32%; width: 100px; height: 8px;
  background: #1d2128;
  border-radius: 4px;
  transform: perspective(200px) rotateX(10deg);
  animation: sc24-found 14s ease-in-out infinite alternate;
}
.scn-sonnet-cxxiv .cloud {
  position: absolute; top: 12%; left: 55%; width: 100px; height: 22px;
  background: linear-gradient(90deg, transparent, #a7b4c5 50%, transparent);
  border-radius: 50%; filter: blur(10px);
  animation: sc24-drift 45s linear infinite;
}
@keyframes sc24-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes sc24-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes sc24-tower { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sc24-glow { 0% { opacity: 0.7; box-shadow: 0 0 10px 2px #6b4a2e, 0 0 20px 5px rgba(107,74,46,0.3) } 50% { opacity: 1; box-shadow: 0 0 22px 6px #b88a5c, 0 0 40px 12px rgba(184,138,92,0.5) } 100% { opacity: 0.85; box-shadow: 0 0 14px 4px #8b5e3a, 0 0 28px 8px rgba(139,94,58,0.4) } }
@keyframes sc24-door { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes sc24-found { 0% { transform: perspective(200px) rotateX(10deg) translateY(0) } 50% { transform: perspective(200px) rotateX(10deg) translateY(-1px) } 100% { transform: perspective(200px) rotateX(10deg) translateY(0) } }
@keyframes sc24-drift { 0% { transform: translateX(0) } 100% { transform: translateX(-130vw) } }

/* sonnet-cxxiv-part2 – steadfast, overcast */
.scn-sonnet-cxxiv-part2 {
  background: linear-gradient(180deg, #4d5663 0%, #616c7a 40%, #7b8798 100%),
              radial-gradient(ellipse at 50% 60%, #6b7889 0%, transparent 70%);
}
.scn-sonnet-cxxiv-part2 .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3f4754 0%, #6f7c8c 100%);
  animation: sc24p2-sky 16s ease-in-out infinite alternate;
}
.scn-sonnet-cxxiv-part2 .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a303a 0%, #1d2128 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  animation: sc24p2-ground 14s ease-in-out infinite alternate;
}
.scn-sonnet-cxxiv-part2 .pillar {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 140px;
  background: linear-gradient(90deg, #3c424e 0%, #535a68 50%, #3c424e 100%);
  border-radius: 4px;
  box-shadow: 6px 0 10px rgba(0,0,0,0.3);
  animation: sc24p2-pillar 8s ease-in-out infinite;
}
.scn-sonnet-cxxiv-part2 .cap {
  position: absolute; bottom: 80%; left: 43%; width: 44px; height: 14px;
  background: linear-gradient(90deg, #2e333d 0%, #444b57 50%, #2e333d 100%);
  border-radius: 6px 6px 2px 2px;
  transform: perspective(200px) rotateX(2deg);
  animation: sc24p2-cap 6s ease-in-out infinite;
}
.scn-sonnet-cxxiv-part2 .shadow {
  position: absolute; bottom: 19%; left: 38%; width: 60px; height: 6px;
  background: #101316;
  border-radius: 50%;
  filter: blur(4px);
  animation: sc24p2-shadow 10s ease-in-out infinite alternate;
}
.scn-sonnet-cxxiv-part2 .vine-left {
  position: absolute; bottom: 22%; left: 44%; width: 3px; height: 80px;
  background: linear-gradient(180deg, #1f2a1a 0%, #2a3a24 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: sc24p2-vine-l 12s ease-in-out infinite;
}
.scn-sonnet-cxxiv-part2 .vine-right {
  position: absolute; bottom: 22%; left: 48%; width: 3px; height: 70px;
  background: linear-gradient(180deg, #1f2a1a 0%, #2a3a24 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: sc24p2-vine-r 14s ease-in-out infinite reverse;
}
.scn-sonnet-cxxiv-part2 .cloud {
  position: absolute; top: 8%; left: 20%; width: 80px; height: 18px;
  background: linear-gradient(90deg, transparent, #a7b4c5 50%, transparent);
  border-radius: 50%; filter: blur(7px);
  animation: sc24p2-drift 50s linear infinite;
}
@keyframes sc24p2-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes sc24p2-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sc24p2-pillar { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sc24p2-cap { 0% { transform: perspective(200px) rotateX(2deg) } 50% { transform: perspective(200px) rotateX(1deg) } 100% { transform: perspective(200px) rotateX(2deg) } }
@keyframes sc24p2-shadow { 0% { opacity: 0.6; transform: scaleX(1) } 50% { opacity: 0.8; transform: scaleX(1.1) } 100% { opacity: 0.6; transform: scaleX(1) } }
@keyframes sc24p2-vine-l { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes sc24p2-vine-r { 0% { transform: rotate(0deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }
@keyframes sc24p2-drift { 0% { transform: translateX(-30px) } 100% { transform: translateX(130vw) } }

/* sonnet-cxxv – contemptuous, overcast */
.scn-sonnet-cxxv {
  background: linear-gradient(180deg, #4d5663 0%, #616c7a 40%, #7b8798 100%),
              radial-gradient(ellipse at 30% 40%, #6b7889 0%, transparent 60%);
}
.scn-sonnet-cxxv .sky {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3f4754 0%, #6f7c8c 100%);
  animation: sc25-sky 14s ease-in-out infinite alternate;
}
.scn-sonnet-cxxv .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a303a 0%, #1d2128 100%);
  border-radius: 20% 80% 0 0 / 30% 50% 0 0;
  animation: sc25-ground 12s ease-in-out infinite alternate;
}
.scn-sonnet-cxxv .canopy {
  position: absolute; top: 15%; right: 15%; width: 180px; height: 100px;
  background: linear-gradient(135deg, #3c424e 0%, #535a68 50%, #3c424e 100%);
  border-radius: 60% 40% 40% 60% / 70% 30% 70% 30%;
  transform-origin: 80% 0%;
  box-shadow: 0 20px 30px rgba(0,0,0,0.3);
  animation: sc25-canopy 8s ease-in-out infinite;
}
.scn-sonnet-cxxv .canopy-pole {
  position: absolute; top: 15%; right: 30%; width: 6px; height: 90px;
  background: #1d2128;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: sc25-pole 6s ease-in-out infinite;
}
.scn-sonnet-cxxv .figure {
  position: absolute; bottom: 22%; left: 35%; width: 32px; height: 70px;
  background: linear-gradient(180deg, #1a1f26 0%, #0d1114 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sc25-figure 5s ease-in-out infinite;
}
.scn-sonnet-cxxv .shadow {
  position: absolute; bottom: 21%; left: 30%; width: 50px; height: 5px;
  background: #101316;
  border-radius: 50%;
  filter: blur(3px);
  animation: sc25-shadow 10s ease-in-out infinite alternate;
}
.scn-sonnet-cxxv .cloud {
  position: absolute; top: 5%; left: 10%; width: 70px; height: 16px;
  background: linear-gradient(90deg, transparent, #a7b4c5 50%, transparent);
  border-radius: 50%; filter: blur(6px);
  animation: sc25-drift 55s linear infinite;
}
@keyframes sc25-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes sc25-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sc25-canopy { 0% { transform: rotate(0deg) scale(1) } 30% { transform: rotate(4deg) scale(1.02) } 60% { transform: rotate(-2deg) scale(0.98) } 100% { transform: rotate(0deg) scale(1) } }
@keyframes sc25-pole { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-12deg) } 100% { transform: rotate(-15deg) } }
@keyframes sc25-figure { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(6px) translateY(-1px) } 50% { transform: translateX(12px) translateY(0) } 75% { transform: translateX(18px) translateY(-1px) } 100% { transform: translateX(24px) translateY(0) } }
@keyframes sc25-shadow { 0% { opacity: 0.6; transform: scaleX(1) translateX(0) } 50% { opacity: 0.8; transform: scaleX(1.2) translateX(12px) } 100% { opacity: 0.6; transform: scaleX(1) translateX(24px) } }
@keyframes sc25-drift { 0% { transform: translateX(0) } 100% { transform: translateX(-140vw) } }

.scn-sonnet-cxiii {
  background: linear-gradient(135deg, #4a5a6a 0%, #3a4a5a 50%, #5a6a7a 100%),
              radial-gradient(ellipse at 50% 30%, #6a7a8a 0%, transparent 70%);
}
.scn-sonnet-cxiii .eye {
  position: absolute;
  inset: 25% 15% 35% 15%;
  background: radial-gradient(ellipse at 50% 40%, #d0d8e0 0%, #a0b0c0 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -15px 25px rgba(0,0,0,0.3), 0 0 0 8px #506070;
  animation: sc113-eye 10s ease-in-out infinite alternate;
}
.scn-sonnet-cxiii .pupil {
  position: absolute;
  inset: 35% 35% 45% 35%;
  background: radial-gradient(circle, #2a3040 0%, #101520 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px #7090b0;
  animation: sc113-pupil 6s ease-in-out infinite alternate;
}
.scn-sonnet-cxiii .shape-a {
  position: absolute;
  top: 18%; left: 22%;
  width: 40px; height: 30px;
  background: radial-gradient(ellipse, rgba(180,200,220,0.6) 0%, transparent 100%);
  border-radius: 40% 60% 50% 50%;
  filter: blur(4px);
  animation: sc113-drift 14s ease-in-out infinite, sc113-fade 8s infinite alternate;
}
.scn-sonnet-cxiii .shape-b {
  position: absolute;
  bottom: 28%; right: 24%;
  width: 35px; height: 45px;
  background: radial-gradient(ellipse, rgba(160,180,210,0.5) 0%, transparent 100%);
  border-radius: 60% 40% 40% 60%;
  filter: blur(6px);
  animation: sc113-drift2 18s ease-in-out infinite, sc113-fade 10s infinite alternate-reverse;
}
.scn-sonnet-cxiii .shape-c {
  position: absolute;
  top: 50%; left: 50%;
  width: 25px; height: 25px;
  background: rgba(200,210,230,0.4);
  border-radius: 50%;
  filter: blur(5px);
  transform: translate(-50%, -50%);
  animation: sc113-breathe 12s ease-in-out infinite;
}
.scn-sonnet-cxiii .blur-fog {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 40%, transparent 30%, rgba(80,100,120,0.2) 70%);
  filter: blur(20px);
  animation: sc113-fog 15s ease-in-out infinite alternate;
}
@keyframes sc113-eye {
  0% { transform: scale(1) rotate(-1deg); }
  50% { transform: scale(1.02) rotate(1deg); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes sc113-pupil {
  0% { transform: translate(0,0) scale(1); }
  50% { transform: translate(8px,-4px) scale(0.9); }
  100% { transform: translate(-6px,2px) scale(1.1); }
}
@keyframes sc113-drift {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(20px,-15px) rotate(180deg); }
  100% { transform: translate(-10px,10px) rotate(360deg); }
}
@keyframes sc113-drift2 {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(-25px,20px) rotate(-120deg); }
  100% { transform: translate(15px,-5px) rotate(-240deg); }
}
@keyframes sc113-fade {
  0% { opacity: 0.3; }
  50% { opacity: 0.8; }
  100% { opacity: 0.2; }
}
@keyframes sc113-breathe {
  0% { transform: translate(-50%,-50%) scale(0.8); opacity:0.4; }
  50% { transform: translate(-50%,-50%) scale(1.2); opacity:0.7; }
  100% { transform: translate(-50%,-50%) scale(0.8); opacity:0.4; }
}
@keyframes sc113-fog {
  0% { opacity: 0.5; }
  50% { opacity: 0.2; }
  100% { opacity: 0.6; }
}

.scn-sonnet-cxiii-part2 {
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 40%, #4a5a6a 100%),
              radial-gradient(ellipse at 50% 60%, #5a6a7a 0%, transparent 70%);
}
.scn-sonnet-cxiii-part2 .bg-depths {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  animation: sc113p2-depth 20s ease-in-out infinite alternate;
}
.scn-sonnet-cxiii-part2 .figure-sil {
  position: absolute;
  bottom: 20%; left: 50%;
  width: 50px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: sc113p2-figure 8s ease-in-out infinite;
}
.scn-sonnet-cxiii-part2 .mountain {
  position: absolute;
  bottom: 30%; left: 10%;
  width: 120px; height: 80px;
  background: linear-gradient(135deg, #3a4a5a 0%, #1a2a3a 100%);
  clip-path: polygon(0% 100%, 30% 30%, 50% 60%, 70% 20%, 100% 100%);
  animation: sc113p2-mount 12s ease-in-out infinite alternate;
}
.scn-sonnet-cxiii-part2 .sea-wash {
  position: absolute;
  bottom: 20%; right: 8%;
  width: 150px; height: 40px;
  background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 100%);
  border-radius: 40% 60% 30% 70% / 50% 50% 50% 50%;
  filter: blur(3px);
  animation: sc113p2-sea 10s ease-in-out infinite alternate;
}
.scn-sonnet-cxiii-part2 .day-moon {
  position: absolute;
  top: 12%; left: 45%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #d0d8e0 0%, #a0b0c0 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(200,210,230,0.3);
  animation: sc113p2-sunmoon 14s ease-in-out infinite alternate;
}
.scn-sonnet-cxiii-part2 .crow-bird {
  position: absolute;
  top: 35%; left: 20%;
  width: 30px; height: 15px;
  background: #1a2028;
  clip-path: polygon(0% 50%, 30% 0%, 60% 50%, 100% 0%, 80% 50%, 50% 100%, 20% 70%);
  animation: sc113p2-crow 9s ease-in-out infinite;
}
.scn-sonnet-cxiii-part2 .dove-bird {
  position: absolute;
  top: 25%; right: 25%;
  width: 25px; height: 12px;
  background: #b0c0d0;
  clip-path: polygon(0% 50%, 30% 0%, 70% 50%, 100% 10%, 80% 60%, 40% 100%, 10% 80%);
  animation: sc113p2-dove 11s ease-in-out infinite alternate;
}
@keyframes sc113p2-depth {
  0% { opacity: 0.8; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes sc113p2-figure {
  0% { transform: translateX(-50%) scale(1) rotate(-1deg); }
  50% { transform: translateX(-50%) scale(1.03) rotate(1deg); }
  100% { transform: translateX(-50%) scale(1) rotate(0deg); }
}
@keyframes sc113p2-mount {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-5px) scale(1.02); }
  100% { transform: translateY(2px) scale(0.98); }
}
@keyframes sc113p2-sea {
  0% { transform: translateX(0) skewX(-2deg); }
  50% { transform: translateX(-10px) skewX(2deg); }
  100% { transform: translateX(5px) skewX(-1deg); }
}
@keyframes sc113p2-sunmoon {
  0% { transform: translate(0,0) scale(0.9); opacity:0.7; }
  50% { transform: translate(15px,-10px) scale(1.1); opacity:1; }
  100% { transform: translate(-10px,5px) scale(0.95); opacity:0.8; }
}
@keyframes sc113p2-crow {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(30px,-20px) rotate(10deg); }
  100% { transform: translate(60px,0) rotate(-5deg); }
}
@keyframes sc113p2-dove {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(-20px,-15px) rotate(-10deg); }
  100% { transform: translate(-40px,10px) rotate(5deg); }
}

.scn-sonnet-cxiv {
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 50%, #3a4a4a 100%),
              radial-gradient(ellipse at 50% 60%, #4a5a5a 0%, transparent 70%);
}
.scn-sonnet-cxiv .vessel {
  position: absolute;
  bottom: 20%; left: 50%;
  width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a7a6a 0%, #3a4a3a 100%);
  border-radius: 10% 10% 20% 20% / 5% 5% 15% 15%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4), 0 10px 20px rgba(0,0,0,0.5);
  animation: sc114-vessel 12s ease-in-out infinite alternate;
}
.scn-sonnet-cxiv .monster-a {
  position: absolute;
  bottom: 45%; left: 20%;
  width: 40px; height: 50px;
  background: linear-gradient(135deg, #4a5a4a 0%, #2a3a2a 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 30%, 80% 100%, 40% 90%, 0% 70%);
  animation: sc114-monst 6s ease-in-out infinite alternate;
}
.scn-sonnet-cxiv .monster-b {
  position: absolute;
  bottom: 55%; right: 25%;
  width: 35px; height: 45px;
  background: linear-gradient(225deg, #5a6a5a 0%, #3a4a3a 100%);
  clip-path: polygon(0% 10%, 60% 0%, 100% 40%, 80% 100%, 40% 90%, 0% 70%);
  animation: sc114-monst2 8s ease-in-out infinite alternate-reverse;
}
.scn-sonnet-cxiv .cherub-a {
  position: absolute;
  bottom: 40%; left: 40%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, #a0b0a0 0%, #708070 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 60% 60%;
  box-shadow: 0 0 15px 5px rgba(160,180,160,0.3);
  animation: sc114-cherub 10s ease-in-out infinite alternate;
}
.scn-sonnet-cxiv .cherub-b {
  position: absolute;
  bottom: 35%; right: 35%;
  width: 25px; height: 25px;
  background: radial-gradient(circle, #b0c0b0 0%, #809080 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 60% 60%;
  box-shadow: 0 0 12px 4px rgba(180,200,180,0.3);
  animation: sc114-cherub2 14s ease-in-out infinite alternate-reverse;
}
.scn-sonnet-cxiv .alchemy-glow {
  position: absolute;
  top: 10%; left: 50%;
  width: 60px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(200,220,200,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: sc114-glow 8s ease-in-out infinite alternate;
}
@keyframes sc114-vessel {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02) translateY(-3px); }
  100% { transform: translateX(-50%) scale(0.98); }
}
@keyframes sc114-monst {
  0% { transform: scale(1) rotate(0deg); clip-path: polygon(20% 0%, 80% 0%, 100% 30%, 80% 100%, 40% 90%, 0% 70%); }
  50% { transform: scale(1.1) rotate(5deg); clip-path: polygon(30% 5%, 70% 5%, 90% 40%, 70% 95%, 30% 85%, 5% 60%); }
  100% { transform: scale(0.9) rotate(-3deg); clip-path: polygon(15% 0%, 85% 0%, 100% 25%, 85% 100%, 45% 95%, 0% 75%); }
}
@keyframes sc114-monst2 {
  0% { transform: scale(1) rotate(0deg); clip-path: polygon(0% 10%, 60% 0%, 100% 40%, 80% 100%, 40% 90%, 0% 70%); }
  50% { transform: scale(0.8) rotate(-8deg); clip-path: polygon(10% 5%, 65% 0%, 90% 35%, 85% 100%, 35% 85%, 0% 65%); }
  100% { transform: scale(1.1) rotate(4deg); clip-path: polygon(5% 15%, 55% 5%, 100% 45%, 75% 95%, 45% 95%, 0% 75%); }
}
@keyframes sc114-cherub {
  0% { transform: translate(0,0) scale(0.8); border-radius: 50% 50% 40% 40% / 50% 50% 60% 60%; }
  50% { transform: translate(10px,-5px) scale(1.1); border-radius: 40% 60% 50% 50% / 60% 40% 50% 50%; }
  100% { transform: translate(-5px,2px) scale(0.9); border-radius: 50% 40% 60% 50% / 50% 60% 40% 50%; }
}
@keyframes sc114-cherub2 {
  0% { transform: translate(0,0) scale(0.9); border-radius: 50% 50% 40% 40% / 50% 50% 60% 60%; }
  50% { transform: translate(-12px,8px) scale(0.8); border-radius: 60% 40% 40% 60% / 40% 60% 60% 40%; }
  100% { transform: translate(6px,-3px) scale(1.05); border-radius: 40% 60% 50% 50% / 60% 40% 50% 50%; }
}
@keyframes sc114-glow {
  0% { opacity: 0.3; transform: translateX(-50%) scale(0.8); }
  50% { opacity: 0.7; transform: translateX(-50%) scale(1.4) rotate(20deg); }
  100% { opacity: 0.4; transform: translateX(-50%) scale(1) rotate(0deg); }
}

.scn-sonnet-cxiv-part2 {
  background: linear-gradient(135deg, #3a3a3a 0%, #2a2a2a 50%, #4a4a4a 100%),
              radial-gradient(ellipse at 50% 70%, #5a5a5a 0%, transparent 70%);
}
.scn-sonnet-cxiv-part2 .hand-out {
  position: absolute;
  bottom: 15%; left: 30%;
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 40% 30% 50% 50% / 60% 40% 50% 50%;
  transform: rotate(15deg);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
  animation: sc114p2-hand 10s ease-in-out infinite alternate;
}
.scn-sonnet-cxiv-part2 .cup-form {
  position: absolute;
  bottom: 20%; left: 50%;
  width: 50px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 100%);
  border-radius: 10% 10% 30% 30% / 5% 5% 20% 20%;
  box-shadow: inset 0 -8px 15px rgba(0,0,0,0.4), 0 10px 15px rgba(0,0,0,0.5);
  animation: sc114p2-cup 12s ease-in-out infinite alternate;
}
.scn-sonnet-cxiv-part2 .liquid {
  position: absolute;
  bottom: 23%; left: 50%;
  width: 30px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a7a6a 0%, #3a5a4a 100%);
  border-radius: 0 0 50% 50% / 0 0 60% 60%;
  box-shadow: inset 0 0 10px rgba(90,122,106,0.5);
  animation: sc114p2-liquid 8s ease-in-out infinite alternate;
}
.scn-sonnet-cxiv-part2 .vapor-wisp {
  position: absolute;
  bottom: 30%; left: 50%;
  width: 20px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at bottom, rgba(200,200,200,0.3) 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(6px);
  animation: sc114p2-vapor 6s ease-in-out infinite alternate;
}
.scn-sonnet-cxiv-part2 .deep-shadow {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: sc114p2-shadow 15s ease-in-out infinite alternate;
}
@keyframes sc114p2-hand {
  0% { transform: rotate(12deg) translate(0,0); }
  50% { transform: rotate(18deg) translate(5px,-3px); }
  100% { transform: rotate(14deg) translate(-2px,1px); }
}
@keyframes sc114p2-cup {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.03) translateY(-2px); }
  100% { transform: translateX(-50%) scale(0.97); }
}
@keyframes sc114p2-liquid {
  0% { opacity: 0.6; transform: translateX(-50%) scaleY(0.9); }
  50% { opacity: 0.9; transform: translateX(-50%) scaleY(1.1); }
  100% { opacity: 0.7; transform: translateX(-50%) scaleY(1); }
}
@keyframes sc114p2-vapor {
  0% { transform: translateX(-50%) translateY(0) scale(1); opacity:0.3; }
  50% { transform: translateX(-50%) translateY(-15px) scale(1.5); opacity:0.6; }
  100% { transform: translateX(-50%) translateY(-30px) scale(2); opacity:0.1; }
}
@keyframes sc114p2-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}

.scn-sonnet-cvii-part2 {
  background: 
    linear-gradient(180deg, #4a4a5a 0%, #6a6a7a 40%, #7a7a8a 70%, #8a8a9a 100%),
    radial-gradient(ellipse at 50% 30%, #b0a080 0%, transparent 60%);
}
.scn-sonnet-cvii-part2 .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #5a5a6a 60%, transparent 100%);
  animation: cvii-sky 15s ease-in-out infinite alternate;
}
.scn-sonnet-cvii-part2 .hills {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: cvii-hills 20s ease-in-out infinite alternate;
}
.scn-sonnet-cvii-part2 .monument {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
  animation: cvii-monument 8s ease-in-out infinite;
}
.scn-sonnet-cvii-part2 .book {
  position: absolute; bottom: 35%; left: 35%; width: 30px; height: 22px;
  background: linear-gradient(135deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: cvii-book 6s ease-in-out infinite;
}
.scn-sonnet-cvii-part2 .quill {
  position: absolute; bottom: 33%; left: 42%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #c0b090 0%, #8a7a6a 100%);
  border-radius: 0 0 50% 50% / 0 0 60% 60%;
  transform-origin: bottom center;
  animation: cvii-quill 4s ease-in-out infinite;
}
.scn-sonnet-cvii-part2 .triumph-glow {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 80px;
  background: radial-gradient(circle, #c0a060 0%, #a08040 30%, transparent 70%);
  border-radius: 50%;
  animation: cvii-glow 4s ease-in-out infinite alternate;
}
@keyframes cvii-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes cvii-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes cvii-monument { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px) } }
@keyframes cvii-book { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-3px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes cvii-quill { 0% { transform: rotate(-10deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(-5deg) } }
@keyframes cvii-glow { 0% { opacity: 0.6; transform: translateX(-50%) scale(0.9) } 50% { opacity: 1; transform: translateX(-50%) scale(1.1) } 100% { opacity: 0.8; transform: translateX(-50%) scale(0.95) } }

.scn-sonnet-cviii {
  background: 
    linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 30%, #5a5a6a 60%, #6a6a7a 100%),
    radial-gradient(ellipse at 30% 50%, #5a5a6a 0%, transparent 70%);
}
.scn-sonnet-cviii .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: cviii-room 25s ease-in-out infinite alternate;
}
.scn-sonnet-cviii .window {
  position: absolute; top: 10%; left: 8%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #6a6a7a 0%, #8a8a9a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: cviii-window 12s ease-in-out infinite;
}
.scn-sonnet-cviii .desk {
  position: absolute; bottom: 15%; left: 5%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.6);
}
.scn-sonnet-cviii .book-open {
  position: absolute; bottom: 22%; left: 10%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 2px;
  transform: perspective(80px) rotateX(20deg);
  animation: cviii-book 9s ease-in-out infinite;
}
.scn-sonnet-cviii .inkwell {
  position: absolute; bottom: 20%; left: 28%; width: 12px; height: 14px;
  background: radial-gradient(circle, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.8);
}
.scn-sonnet-cviii .quill-writing {
  position: absolute; bottom: 20%; left: 25%; width: 3px; height: 25px;
  background: linear-gradient(180deg, #c0b090 0%, #8a7a6a 100%);
  border-radius: 0 0 50% 50% / 0 0 60% 60%;
  transform-origin: bottom center;
  animation: cviii-quill 5s ease-in-out infinite;
}
.scn-sonnet-cviii .figure-kneeling {
  position: absolute; bottom: 16%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.8);
  animation: cviii-figure 10s ease-in-out infinite;
}
.scn-sonnet-cviii .candle {
  position: absolute; bottom: 24%; left: 45%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 3px #c0a060, 0 0 20px 6px rgba(192,160,96,0.4);
  animation: cviii-candle 4s ease-in-out infinite alternate;
}
@keyframes cviii-room { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes cviii-window { 0% { opacity: 0.6; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.02) } 100% { opacity: 0.7; transform: scaleY(0.98) } }
@keyframes cviii-book { 0% { transform: perspective(80px) rotateX(20deg) translateY(0) } 50% { transform: perspective(80px) rotateX(22deg) translateY(-2px) } 100% { transform: perspective(80px) rotateX(18deg) translateY(0) } }
@keyframes cviii-quill { 0% { transform: rotate(-5deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(-8deg) } }
@keyframes cviii-figure { 0% { transform: scale(0.8) translateY(0) } 50% { transform: scale(0.85) translateY(-3px) } 100% { transform: scale(0.78) translateY(2px) } }
@keyframes cviii-candle { 0% { box-shadow: 0 0 8px 2px #c0a060; opacity: 0.8 } 50% { box-shadow: 0 0 16px 5px #e0c080; opacity: 1 } 100% { box-shadow: 0 0 10px 3px #c0a060; opacity: 0.9 } }

.scn-sonnet-cix {
  background: 
    linear-gradient(180deg, #5a5a6a 0%, #6a6a7a 40%, #7a7a8a 70%, #8a8a9a 100%),
    radial-gradient(ellipse at 50% 60%, #8a8a9a 0%, transparent 80%);
}
.scn-sonnet-cix .sky-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #6a6a7a 60%, transparent 100%);
  animation: cix-sky 18s ease-in-out infinite alternate;
}
.scn-sonnet-cix .fields {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.4);
  animation: cix-fields 20s ease-in-out infinite alternate;
}
.scn-sonnet-cix .path {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 40% 40% / 10% 10% 60% 60%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: cix-path 12s ease-in-out infinite;
}
.scn-sonnet-cix .house {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: cix-house 9s ease-in-out infinite;
}
.scn-sonnet-cix .window-warm {
  position: absolute; bottom: 46%; left: 52%; width: 16px; height: 20px;
  background: radial-gradient(circle, #f0c060 0%, #c08030 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 5px #c08030, 0 0 40px 12px rgba(192,128,48,0.5);
  animation: cix-window 5s ease-in-out infinite alternate;
}
.scn-sonnet-cix .figure-walking {
  position: absolute; bottom: 36%; left: 35%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cix-figure 12s ease-in-out infinite;
}
.scn-sonnet-cix .trees {
  position: absolute; bottom: 38%; left: 20%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -20px 0 #1a2a1a, 20px 0 #1a2a1a;
  animation: cix-trees 15s ease-in-out infinite alternate;
}
@keyframes cix-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes cix-fields { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes cix-path { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) translateY(-2px) } 100% { transform: translateX(-50%) scaleY(0.98) } }
@keyframes cix-house { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes cix-window { 0% { box-shadow: 0 0 15px 3px #c08030; opacity: 0.8 } 50% { box-shadow: 0 0 30px 8px #f0c060; opacity: 1 } 100% { box-shadow: 0 0 18px 4px #c08030; opacity: 0.9 } }
@keyframes cix-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes cix-trees { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(0.97) } }

.scn-sonnet-cix-part2 {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #3a3a4a 100%),
    radial-gradient(ellipse at 50% 50%, #2a2a3a 0%, transparent 60%);
}
.scn-sonnet-cix-part2 .void {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, #1a1a2a 100%);
  animation: cix2-void 30s ease-in-out infinite alternate;
}
.scn-sonnet-cix-part2 .pedestal {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.8);
  animation: cix2-pedestal 20s ease-in-out infinite alternate;
}
.scn-sonnet-cix-part2 .rose-petals {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 40px;
  background: radial-gradient(ellipse at 30% 40%, #b08a7a 0%, #6a3a2a 50%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 16px 4px rgba(80, 40, 20, 0.6);
  animation: cix2-rose 6s ease-in-out infinite alternate;
}
.scn-sonnet-cix-part2 .rose-stem {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 6px; height: 50px;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%);
  border-radius: 2px;
  animation: cix2-stem 8s ease-in-out infinite;
}
.scn-sonnet-cix-part2 .rose-thorns {
  position: absolute; bottom: 30%; left: 48%; width: 4px; height: 8px;
  background: #3a2a1a;
  border-radius: 0 0 50% 50% / 0 0 60% 60%;
  box-shadow: 0 20px #3a2a1a, 0 40px #3a2a1a;
  animation: cix2-thorns 10s ease-in-out infinite;
}
.scn-sonnet-cix-part2 .rose-glow {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 80px;
  background: radial-gradient(circle, #b08060 0%, #8a5a3a 30%, transparent 70%);
  border-radius: 50%;
  animation: cix2-glow 4s ease-in-out infinite alternate;
}
@keyframes cix2-void { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes cix2-pedestal { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(0.98) } }
@keyframes cix2-rose { 0% { transform: translateX(-50%) scale(1) rotate(-3deg) } 50% { transform: translateX(-50%) scale(1.05) rotate(3deg) } 100% { transform: translateX(-50%) scale(0.97) rotate(-1deg) } }
@keyframes cix2-stem { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes cix2-thorns { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes cix2-glow { 0% { transform: translateX(-50%) scale(0.9); opacity: 0.5 } 50% { transform: translateX(-50%) scale(1.15); opacity: 1 } 100% { transform: translateX(-50%) scale(0.95); opacity: 0.7 } }

.scn-lines-life-repair {
  background: linear-gradient(180deg, #c8b594 0%, #a08a6a 40%, #6b5a3e 100%), radial-gradient(ellipse at 30% 40%, #f5e6d0 0%, transparent 60%);
  position: relative; height: 100%; overflow: hidden;
}
.scn-lines-life-repair .walls { position:absolute; inset:0; background: linear-gradient(135deg, #d4c4a8 0%, #b8a88c 50%, #9a8a6e 100%); }
.scn-lines-life-repair .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #7a6a4e 0%, #9a8a6e 100%); border-radius: 20% 20% 0 0/ 30% 30% 0 0; }
.scn-lines-life-repair .window { position:absolute; top:15%; left:60%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 30%, #fffaee 0%, #fff0cc 40%, transparent 70%); border: 4px solid #5a4a2e; box-shadow: inset 0 0 40px #fffaee; }
.scn-lines-life-repair .desk { position:absolute; bottom:20%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, #6a4a2e 0%, #4a2a1e 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-lines-life-repair .chair { position:absolute; bottom:16%; left:25%; width:20%; height:18%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; }
.scn-lines-life-repair .figure { position:absolute; bottom:30%; left:28%; width:14%; height:36%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fig-llr 6s ease-in-out infinite; }
.scn-lines-life-repair .lamp { position:absolute; top:10%; right:12%; width:8%; height:12%; background: radial-gradient(circle at 50% 20%, #ffd080 0%, #c08040 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 30px 10px rgba(255,208,128,0.4); animation: lamp-llr 8s ease-in-out infinite alternate; }
.scn-lines-life-repair .paper { position:absolute; bottom:22%; left:38%; width:20%; height:10%; background: linear-gradient(135deg, #fff5e0 0%, #e8d4b8 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: paper-llr 12s ease-in-out infinite alternate; }
.scn-lines-life-repair .pen { position:absolute; bottom:24%; left:45%; width:2%; height:14%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 10% 10%; transform-origin: 50% 100%; animation: pen-llr 4s ease-in-out infinite; }
@keyframes fig-llr { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lamp-llr { 0% { opacity:0.8; box-shadow: 0 0 20px 5px rgba(255,208,128,0.3); } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(255,208,128,0.6); } 100% { opacity:0.85; box-shadow: 0 0 25px 8px rgba(255,208,128,0.35); } }
@keyframes paper-llr { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes pen-llr { 0% { transform: rotate(0deg) translate(0,0); } 25% { transform: rotate(-10deg) translate(2px,-2px); } 50% { transform: rotate(0deg) translate(0,0); } 75% { transform: rotate(10deg) translate(-2px,-2px); } 100% { transform: rotate(0deg) translate(0,0); } }

.scn-tomb-verses-desert {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 40%, #1a0a04 100%), radial-gradient(ellipse at 50% 70%, #8a6030 0%, transparent 70%);
  position: relative; height: 100%; overflow: hidden;
}
.scn-tomb-verses-desert .stone-walls { position:absolute; inset:0%; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0e 100%); }
.scn-tomb-verses-desert .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #1a0a04 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; }
.scn-tomb-verses-desert .arch { position:absolute; top:5%; left:25%; width:50%; height:55%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 0 0 / 80% 80% 0 0; border: 4px solid #2a1a0e; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5); }
.scn-tomb-verses-desert .sarcophagus { position:absolute; bottom:18%; left:32%; width:36%; height:22%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,0.6); }
.scn-tomb-verses-desert .torch { position:absolute; top:12%; left:48%; width:4%; height:20%; background: linear-gradient(180deg, #0a0602 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: torch-tvd 5s ease-in-out infinite; }
.scn-tomb-verses-desert .glow { position:absolute; top:5%; left:40%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 80%, #ffb060 0%, #c08040 30%, transparent 70%); animation: glow-tvd 5s ease-in-out infinite alternate; }
.scn-tomb-verses-desert .shadow { position:absolute; bottom:10%; left:35%; width:30%; height:14%; background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, transparent 100%); animation: shadow-tvd 9s ease-in-out infinite alternate; }
.scn-tomb-verses-desert .dust { position:absolute; top:30%; left:20%; width:60%; height:40%; background: repeating-linear-gradient(0deg, rgba(255,200,100,0.03) 0px, rgba(255,200,100,0.03) 2px, transparent 2px, transparent 10px); animation: dust-tvd 30s linear infinite; }
@keyframes torch-tvd { 0% { transform: rotate(-2deg); } 25% { transform: rotate(1deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes glow-tvd { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.75; transform: scale(0.98); } }
@keyframes shadow-tvd { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(10px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes dust-tvd { 0% { background-position: 0 0; } 100% { background-position: 0 100%; } }

.scn-child-live-twice {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 40%, #ffdab9 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 60%);
  position: relative; height: 100%; overflow: hidden;
}
.scn-child-live-twice .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7ec8e3 0%, #b0e0ff 100%); }
.scn-child-live-twice .sun { position:absolute; top:8%; left:70%; width:12%; height:12%; background: radial-gradient(circle at 50% 50%, #fff8dc 0%, #ffd700 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,215,0,0.4); animation: sun-clt 15s ease-in-out infinite alternate; }
.scn-child-live-twice .cloud { position:absolute; top:18%; left:10%; width:25%; height:8%; background: linear-gradient(135deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.3) 100%); border-radius:50%; filter: blur(4px); animation: cloud-clt 30s linear infinite; }
.scn-child-live-twice .field { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #7ccd7c 0%, #3cb371 50%, #2e8b57 100%); border-radius: 60% 60% 0 0 / 30% 30% 0 0; }
.scn-child-live-twice .tree { position:absolute; bottom:35%; left:20%; width:20%; height:60%; background: linear-gradient(180deg, #8b4513 0%, #5c3a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; }
.scn-child-live-twice .tree::after { display:block; width:150%; height:80%; position:absolute; top:-40%; left:-25%; background: radial-gradient(ellipse at 50% 50%, #228b22 0%, #006400 100%); border-radius:50%; content:''; }
.scn-child-live-twice .child { position:absolute; bottom:30%; left:55%; width:10%; height:25%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: child-clt 4s ease-in-out infinite; }
.scn-child-live-twice .flowers { position:absolute; bottom:20%; left:40%; width:15%; height:10%; background: radial-gradient(circle at 20% 40%, #ff69b4 0%, transparent 50%), radial-gradient(circle at 60% 70%, #ffa07a 0%, transparent 50%), radial-gradient(circle at 80% 30%, #dda0dd 0%, transparent 50%); animation: flowers-clt 8s ease-in-out infinite alternate; }
@keyframes sun-clt { 0% { transform: translateY(0); opacity:0.9; } 50% { transform: translateY(-5px); opacity:1; } 100% { transform: translateY(0); opacity:0.9; } }
@keyframes cloud-clt { 0% { transform: translateX(-30vw); } 100% { transform: translateX(130vw); } }
@keyframes child-clt { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(3deg) translateY(-2px); } 70% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes flowers-clt { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(5deg); } 100% { transform: scale(1) rotate(0deg); } }

.scn-eternal-summer-verse {
  background: linear-gradient(180deg, #ffda75 0%, #fccb6a 30%, #b8dfff 100%), radial-gradient(ellipse at 50% 100%, #fff4cc 0%, transparent 70%);
  position: relative; height: 100%; overflow: hidden;
}
.scn-eternal-summer-verse .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 100%); }
.scn-eternal-summer-verse .sun { position:absolute; top:10%; left:65%; width:14%; height:14%; background: radial-gradient(circle at 50% 50%, #fff8dc 0%, #ffd700 100%); border-radius:50%; box-shadow: 0 0 50px 25px rgba(255,215,0,0.5); animation: sun-esv 18s ease-in-out infinite alternate; }
.scn-eternal-summer-verse .rays { position:absolute; top:5%; left:50%; width:40%; height:40%; background: repeating-linear-gradient(45deg, rgba(255,215,0,0.1) 0px, rgba(255,215,0,0.1) 10px, transparent 10px, transparent 20px); transform-origin: bottom center; animation: rays-esv 25s linear infinite; }
.scn-eternal-summer-verse .hill { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%); border-radius: 70% 30% 0 0 / 40% 20% 0 0; }
.scn-eternal-summer-verse .poet { position:absolute; bottom:20%; left:45%; width:12%; height:40%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: poet-esv 6s ease-in-out infinite; }
.scn-eternal-summer-verse .poet::before { display:block; width:60%; height:30%; position:absolute; top:-20%; left:20%; background: radial-gradient(ellipse at 50% 50%, #d4a574 0%, #8b5e3c 100%); border-radius:50%; content:''; } /* profile head */
.scn-eternal-summer-verse .scroll { position:absolute; bottom:25%; left:52%; width:12%; height:8%; background: linear-gradient(135deg, #f5deb3 0%, #d2b48c 100%); border-radius: 2px; transform: rotate(10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: scroll-esv 10s ease-in-out infinite alternate; }
.scn-eternal-summer-verse .laurel { position:absolute; top:22%; right:20%; width:8%; height:6%; background: radial-gradient(circle at 30% 50%, #228b22 0%, #006400 100%); border-radius:50%; animation: laurel-esv 14s ease-in-out infinite; }
.scn-eternal-summer-verse .butterfly { position:absolute; top:30%; left:30%; width:4%; height:3%; background: radial-gradient(circle at 50% 50%, #ffb6c1 0%, #ff69b4 100%); border-radius:50%; animation: butterfly-esv 5s ease-in-out infinite alternate; }
.scn-eternal-summer-verse .grass { position:absolute; bottom:5%; left:0; right:0; height:12%; background: repeating-linear-gradient(80deg, #556b2f 0px, #556b2f 4px, #6b8e23 4px, #6b8e23 8px); animation: grass-esv 3s ease-in-out infinite alternate; }
@keyframes sun-esv { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes rays-esv { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes poet-esv { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 70% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes scroll-esv { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-1px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes laurel-esv { 0% { transform: scale(1); } 50% { transform: scale(1.1) rotate(10deg); } 100% { transform: scale(1); } }
@keyframes butterfly-esv { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(10px,-10px) rotate(20deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes grass-esv { 0% { transform: skewX(0deg); } 50% { transform: skewX(-3deg); } 100% { transform: skewX(0deg); } }

/* scene: desire-beauty-rose */
.scn-desire-beauty-rose {
  background: linear-gradient(180deg, #fdecc8 0%, #f5d6a0 40%, #e8b87a 100%),
              radial-gradient(ellipse at 70% 30%, #ffedb0 0%, transparent 60%);
}
.scn-desire-beauty-rose .petal-back {
  position: absolute; bottom: 35%; left: 50%; transform: translate(-50%,0);
  width: 120px; height: 120px;
  background: radial-gradient(ellipse 60% 70%, #d4959b 0%, #b87078 60%, #9a5a62 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset -10px -10px 30px rgba(0,0,0,0.15);
  animation: ro1-back 8s ease-in-out infinite alternate;
}
.scn-desire-beauty-rose .petal-front {
  position: absolute; bottom: 40%; left: 50%; transform: translate(-50%,0);
  width: 80px; height: 90px;
  background: radial-gradient(ellipse 50% 60%, #edb6b0 0%, #c47a7a 60%, #a35353 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 40% 50%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  animation: ro1-front 6s ease-in-out infinite alternate;
}
.scn-desire-beauty-rose .stem {
  position: absolute; bottom: 10%; left: 50%; transform: translate(-50%,0);
  width: 8px; height: 120px;
  background: linear-gradient(180deg, #7a4a3a 0%, #5c3528 60%, #3a1e14 100%);
  border-radius: 4px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.2);
  animation: ro1-stem 12s ease-in-out infinite;
}
.scn-desire-beauty-rose .thorn {
  position: absolute; bottom: 45%; left: 48%;
  width: 6px; height: 10px;
  background: #5c3528;
  border-radius: 0 50% 0 50%;
  transform: rotate(-30deg);
  animation: ro1-thorn 8s ease-in-out infinite alternate;
}
.scn-desire-beauty-rose .leaf {
  position: absolute; bottom: 20%; left: 40%;
  width: 40px; height: 20px;
  background: linear-gradient(135deg, #6a8a4a 0%, #4a6a2a 100%);
  border-radius: 0 60% 60% 0;
  transform: rotate(-15deg);
  box-shadow: -2px -2px 6px rgba(0,0,0,0.1);
  animation: ro1-leaf 15s ease-in-out infinite alternate;
}
.scn-desire-beauty-rose .sun-glow {
  position: absolute; top: 10%; right: 20%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #ffea9a 0%, #ffe080 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ro1-glow 4s ease-in-out infinite alternate;
}
@keyframes ro1-back {
  0% { transform: translate(-50%,0) scale(1) rotate(-2deg); }
  50% { transform: translate(-50%,-2px) scale(1.02) rotate(0deg); }
  100% { transform: translate(-50%,2px) scale(0.98) rotate(2deg); }
}
@keyframes ro1-front {
  0% { transform: translate(-50%,0) scale(1) rotate(3deg); }
  50% { transform: translate(-50%,-3px) scale(1.04) rotate(-1deg); }
  100% { transform: translate(-50%,1px) scale(0.96) rotate(0deg); }
}
@keyframes ro1-stem {
  0%,100% { transform: translate(-50%,0) rotate(0deg); }
  50% { transform: translate(-50%,-1px) rotate(1deg); }
}
@keyframes ro1-thorn {
  0% { transform: rotate(-30deg); }
  100% { transform: rotate(-20deg); }
}
@keyframes ro1-leaf {
  0% { transform: rotate(-15deg); }
  50% { transform: rotate(-10deg) scale(1.03); }
  100% { transform: rotate(-20deg); }
}
@keyframes ro1-glow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.8; transform: scale(0.9); }
}

/* scene: spring-herald-buried */
.scn-spring-herald-buried {
  background: linear-gradient(180deg, #fdf6e3 0%, #f5e6c8 30%, #e8d4a0 70%, #d4b87a 100%),
              radial-gradient(ellipse at 50% 80%, #ffeac2 0%, transparent 60%);
}
.scn-spring-herald-buried .bud-outer {
  position: absolute; bottom: 30%; left: 50%; transform: translate(-50%,0);
  width: 100px; height: 110px;
  background: radial-gradient(ellipse 50% 60%, #b8a078 0%, #8a7a5a 60%, #6a5a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 50% 40%;
  box-shadow: inset -10px -10px 30px rgba(0,0,0,0.2);
  animation: sp2-outer 10s ease-in-out infinite alternate;
}
.scn-spring-herald-buried .bud-inner {
  position: absolute; bottom: 35%; left: 50%; transform: translate(-50%,0);
  width: 60px; height: 70px;
  background: radial-gradient(ellipse 45% 55%, #d4c0a0 0%, #a89870 60%, #7a6a4a 100%);
  border-radius: 50% 40% 50% 40% / 50% 60% 40% 50%;
  box-shadow: 0 6px 16px rgba(0,0,0,0.15);
  animation: sp2-inner 7s ease-in-out infinite alternate;
}
.scn-spring-herald-buried .stem {
  position: absolute; bottom: 5%; left: 50%; transform: translate(-50%,0);
  width: 10px; height: 130px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 5px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.2);
  animation: sp2-stem 14s ease-in-out infinite;
}
.scn-spring-herald-buried .leaf-l {
  position: absolute; bottom: 20%; left: 30%;
  width: 50px; height: 20px;
  background: linear-gradient(135deg, #7a9a5a 0%, #5a7a3a 100%);
  border-radius: 0 60% 60% 0;
  transform: rotate(-20deg);
  box-shadow: -2px -2px 6px rgba(0,0,0,0.1);
  animation: sp2-leaf-l 18s ease-in-out infinite alternate;
}
.scn-spring-herald-buried .leaf-r {
  position: absolute; bottom: 25%; right: 30%;
  width: 45px; height: 18px;
  background: linear-gradient(225deg, #7a9a5a 0%, #5a7a3a 100%);
  border-radius: 60% 0 0 60%;
  transform: rotate(20deg);
  box-shadow: 2px -2px 6px rgba(0,0,0,0.1);
  animation: sp2-leaf-r 20s ease-in-out infinite alternate;
}
.scn-spring-herald-buried .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #b89860 0%, #8a7040 100%);
  border-radius: 60% 40% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-spring-herald-buried .ray {
  position: absolute; top: 8%; left: 10%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #ffefc0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: sp2-ray 5s ease-in-out infinite alternate;
}
@keyframes sp2-outer {
  0% { transform: translate(-50%,0) scale(1) rotate(-1deg); }
  50% { transform: translate(-50%,-2px) scale(1.01) rotate(0deg); }
  100% { transform: translate(-50%,1px) scale(0.99) rotate(1deg); }
}
@keyframes sp2-inner {
  0% { transform: translate(-50%,0) scale(1); }
  50% { transform: translate(-50%,-3px) scale(0.98); }
  100% { transform: translate(-50%,2px) scale(1.02); }
}
@keyframes sp2-stem {
  0%,100% { transform: translate(-50%,0) rotate(0deg); }
  50% { transform: translate(-50%,-1px) rotate(1deg); }
}
@keyframes sp2-leaf-l {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(-15deg) scale(1.04); }
  100% { transform: rotate(-25deg); }
}
@keyframes sp2-leaf-r {
  0% { transform: rotate(20deg); }
  50% { transform: rotate(15deg) scale(1.03); }
  100% { transform: rotate(25deg); }
}
@keyframes sp2-ray {
  0% { opacity: 0.5; transform: translate(0,0); }
  50% { opacity: 1; transform: translate(10px,-5px) scale(1.1); }
  100% { opacity: 0.7; transform: translate(-5px,2px); }
}

/* scene: beauty-waste-defence */
.scn-beauty-waste-defence {
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 30%, #3a4a5a 60%, #2a3a4a 100%),
              radial-gradient(ellipse at 50% 100%, #5a6a7a 0%, transparent 70%);
}
.scn-beauty-waste-defence .overcast-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 50%, transparent 100%);
  animation: wa3-sky 15s ease-in-out infinite alternate;
}
.scn-beauty-waste-defence .cloud {
  position: absolute; top: 15%; left: 20%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(200,210,220,0.1) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: wa3-cloud 40s linear infinite;
}
.scn-beauty-waste-defence .figure-body {
  position: absolute; bottom: 25%; left: 50%; transform: translate(-50%,0);
  width: 60px; height: 140px;
  background: radial-gradient(ellipse 50% 60% at 50% 30%, #2a3a4a 0%, #1a2a3a 60%, #0a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: wa3-body 6s ease-in-out infinite alternate;
}
.scn-beauty-waste-defence .eye-l {
  position: absolute; bottom: 50%; left: 42%; width: 10px; height: 16px;
  background: radial-gradient(circle, #ffc060 0%, #8a6020 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(255,192,96,0.6);
  animation: wa3-eye 2s ease-in-out infinite alternate;
}
.scn-beauty-waste-defence .eye-r {
  position: absolute; bottom: 50%; left: 54%; width: 10px; height: 16px;
  background: radial-gradient(circle, #ffc060 0%, #8a6020 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(255,192,96,0.6);
  animation: wa3-eye 2s ease-in-out infinite alternate-reverse;
}
.scn-beauty-waste-defence .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 40% 60% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-beauty-waste-defence .shadow-mist {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(20,30,40,0.4) 100%);
  animation: wa3-mist 12s ease-in-out infinite alternate;
}
@keyframes wa3-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes wa3-cloud {
  0% { transform: translateX(-120px); }
  100% { transform: translateX(120vw); }
}
@keyframes wa3-body {
  0% { transform: translate(-50%,0) scale(1); }
  50% { transform: translate(-50%,-3px) scale(0.98); }
  100% { transform: translate(-50%,2px) scale(1.01); }
}
@keyframes wa3-eye {
  0% { transform: scale(1); opacity: 0.7; box-shadow: 0 0 8px 2px rgba(255,192,96,0.4); }
  50% { transform: scale(1.3); opacity: 1; box-shadow: 0 0 18px 6px rgba(255,192,96,0.8); }
  100% { transform: scale(0.9); opacity: 0.5; box-shadow: 0 0 4px 1px rgba(255,192,96,0.2); }
}
@keyframes wa3-mist {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.2; }
}

/* scene: item-mirror-glass-generation */
.scn-item-mirror-glass-generation {
  background: linear-gradient(180deg, #efe6d0 0%, #dcc8a8 40%, #c4a878 100%),
              radial-gradient(ellipse at 50% 30%, #fff4e0 0%, transparent 70%);
}
.scn-item-mirror-glass-generation .mirror-frame {
  position: absolute; top: 20%; left: 50%; transform: translate(-50%,0);
  width: 160px; height: 200px;
  background: linear-gradient(180deg, #b89870 0%, #8a7050 50%, #6a5030 100%);
  border-radius: 8% 10% 8% 10% / 12% 14% 10% 12%;
  box-shadow: 0 12px 30px rgba(0,0,0,0.4), inset 0 2px 4px rgba(255,255,255,0.3);
  animation: mi4-frame 9s ease-in-out infinite alternate;
}
.scn-item-mirror-glass-generation .mirror-glass {
  position: absolute; top: 24%; left: 50%; transform: translate(-50%,0);
  width: 130px; height: 170px;
  background: linear-gradient(135deg, #d8e4f0 0%, #b0c4d8 40%, #8aa0b8 100%);
  border-radius: 4% 6% 4% 6% / 6% 8% 5% 7%;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.6), 0 4px 10px rgba(0,0,0,0.2);
  animation: mi4-glass 8s ease-in-out infinite alternate;
}
.scn-item-mirror-glass-generation .figure-profile {
  position: absolute; top: 35%; left: 30%; width: 40px; height: 100px;
  background: radial-gradient(ellipse 50% 60% at 50% 40%, #b0a090 0%, #8a7a6a 60%, #5a4a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: mi4-figure 6s ease-in-out infinite alternate;
}
.scn-item-mirror-glass-generation .reflection {
  position: absolute; top: 35%; right: 30%; width: 40px; height: 100px;
  background: radial-gradient(ellipse 50% 60% at 50% 40%, #c0b8a8 0%, #a8a090 60%, #7a7060 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  opacity: 0.8;
  animation: mi4-reflection 6s ease-in-out infinite alternate-reverse;
}
.scn-item-mirror-glass-generation .candle {
  position: absolute; bottom: 15%; left: 18%;
  width: 12px; height: 50px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 60%, #a08060 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: mi4-candle 10s ease-in-out infinite;
}
.scn-item-mirror-glass-generation .candle-glow {
  position: absolute; bottom: 38%; left: 18%; transform: translate(-50%,0);
  width: 20px; height: 20px;
  background: radial-gradient(circle, #ffe080 0%, #ffc840 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: mi4-glow 3s ease-in-out infinite alternate;
}
@keyframes mi4-frame {
  0% { transform: translate(-50%,0) scale(1); }
  50% { transform: translate(-50%,-2px) scale(1.01); }
  100% { transform: translate(-50%,1px) scale(0.99); }
}
@keyframes mi4-glass {
  0% { transform: translate(-50%,0) scale(1); opacity: 0.9; }
  50% { transform: translate(-50%,-1px) scale(1.005); opacity: 1; }
  100% { transform: translate(-50%,1px) scale(0.995); opacity: 0.85; }
}
@keyframes mi4-figure {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.01) rotate(1deg); }
  100% { transform: scale(0.99) rotate(-1deg); }
}
@keyframes mi4-reflection {
  0% { transform: scaleX(-1) scale(1); opacity: 0.7; }
  50% { transform: scaleX(-1) scale(1.02); opacity: 0.85; }
  100% { transform: scaleX(-1) scale(0.98); opacity: 0.65; }
}
@keyframes mi4-candle {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes mi4-glow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.3); }
  100% { opacity: 0.8; transform: scale(0.9); }
}

.scn-old-words-new {
  background: linear-gradient(180deg, #b0b8c0 0%, #8a919a 50%, #6b737c 100%),
              radial-gradient(ellipse at 50% 40%, #d0d4d8 0%, transparent 70%);
}
.scn-old-words-new .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #c8ced4 0%, #a6adb5 100%);
}
.scn-old-words-new .window {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #e0e4e8 0%, #bcc2c8 100%);
  border-radius: 4%; box-shadow: inset 0 0 30px rgba(200,210,220,0.6);
  animation: oww-window 10s ease-in-out infinite alternate;
}
.scn-old-words-new .desk {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #a08060 0%, #7a6040 100%);
  border-radius: 2%; box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: oww-desk 20s ease-in-out infinite;
}
.scn-old-words-new .book {
  position: absolute; bottom: 30%; left: 35%; width: 25%; height: 18%;
  background: linear-gradient(135deg, #d4c4a8 0%, #bca88c 50%, #e0d0b4 100%);
  border-radius: 4% 4% 20% 20%; transform: rotate(-2deg);
  box-shadow: 2px 4px 10px rgba(0,0,0,0.2);
  animation: oww-book 15s ease-in-out infinite alternate;
}
.scn-old-words-new .quill {
  position: absolute; bottom: 32%; left: 55%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #f0e8dc 0%, #c8b8a0 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: oww-quill 4s ease-in-out infinite;
}
.scn-old-words-new .figure {
  position: absolute; bottom: 18%; left: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #3a3a42 0%, #1a1a22 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oww-figure 6s ease-in-out infinite;
}
.scn-old-words-new .words-float {
  position: absolute; top: 25%; left: 20%; width: 60%; height: 10%;
  background: radial-gradient(circle at 50% 50%, rgba(80,80,90,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: oww-words 12s ease-in-out infinite;
}
@keyframes oww-window {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02) translateY(2px); }
  100% { opacity: 0.9; transform: scale(0.98); }
}
@keyframes oww-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes oww-book {
  0% { transform: rotate(-2deg) scale(1); }
  50% { transform: rotate(0deg) scale(1.02); }
  100% { transform: rotate(-3deg) scale(0.98); }
}
@keyframes oww-quill {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-4px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes oww-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes oww-words {
  0% { opacity: 0.2; transform: translateX(-10px) scale(1); }
  50% { opacity: 0.6; transform: translateX(20px) scale(1.1); }
  100% { opacity: 0.3; transform: translateX(-20px) scale(0.95); }
}

.scn-glass-and-dial {
  background: linear-gradient(180deg, #f5f0e8 0%, #e0d8cc 40%, #c0b8a8 100%),
              radial-gradient(ellipse at 30% 20%, #fff8f0 0%, transparent 60%);
}
.scn-glass-and-dial .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8e0d4 0%, #c8c0b0 100%);
}
.scn-glass-and-dial .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #a09080 0%, #806858 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-glass-and-dial .window {
  position: absolute; top: 5%; left: 15%; width: 35%; height: 60%;
  background: linear-gradient(135deg, #fff8ee 0%, #e8dccc 100%);
  border-radius: 2%; box-shadow: inset 0 0 20px rgba(255,230,200,0.8);
}
.scn-glass-and-dial .sunbeam {
  position: absolute; top: 10%; left: 30%; width: 20%; height: 80%;
  background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 90%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: gd-sunbeam 15s linear infinite alternate;
}
.scn-glass-and-dial .mirror {
  position: absolute; top: 20%; right: 12%; width: 25%; height: 45%;
  background: linear-gradient(135deg, #d0d8e0 0%, #a0b0c0 100%);
  border-radius: 4%; box-shadow: 0 0 30px rgba(100,150,200,0.3), inset 0 0 10px rgba(255,255,255,0.5);
  animation: gd-mirror 8s ease-in-out infinite;
}
.scn-glass-and-dial .clock {
  position: absolute; top: 25%; right: 40%; width: 15%; height: 25%;
  background: radial-gradient(circle at 50% 50%, #f0e8dc 0%, #c0b8a8 70%, #8a8070 100%);
  border-radius: 50%; box-shadow: 0 6px 20px rgba(0,0,0,0.3);
  animation: gd-clock 60s linear infinite;
}
.scn-glass-and-dial .book {
  position: absolute; bottom: 20%; left: 25%; width: 40%; height: 20%;
  background: linear-gradient(135deg, #e4dcc8 0%, #c0b4a0 100%);
  border-radius: 2% 2% 10% 10%; transform: rotate(-4deg);
  box-shadow: 2px 4px 15px rgba(0,0,0,0.2);
  animation: gd-book 10s ease-in-out infinite;
}
.scn-glass-and-dial .chair {
  position: absolute; bottom: 18%; left: 5%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  transform-origin: bottom center;
  animation: gd-chair 5s ease-in-out infinite;
}
@keyframes gd-sunbeam {
  0% { opacity: 0.3; transform: skewX(-5deg) translateX(-10px); }
  50% { opacity: 0.7; transform: skewX(0deg) translateX(10px); }
  100% { opacity: 0.4; transform: skewX(5deg) translateX(-5px); }
}
@keyframes gd-mirror {
  0% { opacity: 0.9; transform: scale(1); box-shadow: 0 0 20px rgba(100,150,200,0.2); }
  50% { opacity: 1; transform: scale(1.02); box-shadow: 0 0 40px rgba(100,150,200,0.4); }
  100% { opacity: 0.95; transform: scale(0.98); box-shadow: 0 0 25px rgba(100,150,200,0.3); }
}
@keyframes gd-clock {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes gd-book {
  0% { transform: rotate(-4deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes gd-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

.scn-waste-blanks-children {
  background: linear-gradient(180deg, #c8d4dc 0%, #a0b0b8 50%, #809098 100%),
              radial-gradient(ellipse at 40% 30%, #e0e8ec 0%, transparent 60%);
}
.scn-waste-blanks-children .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d8e0e4 0%, #b8c4cc 100%);
}
.scn-waste-blanks-children .window {
  position: absolute; top: 10%; left: 20%; width: 50%; height: 55%;
  background: linear-gradient(135deg, #eef4f8 0%, #c8d4dc 100%);
  border-radius: 2%; box-shadow: inset 0 0 30px rgba(200,220,255,0.5);
  animation: wbc-window 12s ease-in-out infinite alternate;
}
.scn-waste-blanks-children .desk {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 25%;
  background: linear-gradient(180deg, #a09080 0%, #7a6a5a 100%);
  border-radius: 2%; box-shadow: 0 6px 15px rgba(0,0,0,0.2);
}
.scn-waste-blanks-children .paper {
  position: absolute; bottom: 25%; left: 30%; width: 35%; height: 20%;
  background: linear-gradient(135deg, #f0ece4 0%, #d8d0c4 100%);
  border-radius: 1px; transform: rotate(-2deg);
  box-shadow: 1px 2px 8px rgba(0,0,0,0.1);
  animation: wbc-paper 8s ease-in-out infinite;
}
.scn-waste-blanks-children .pen {
  position: absolute; bottom: 28%; left: 55%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #4a4a52 0%, #2a2a32 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: wbc-pen 3s ease-in-out infinite;
}
.scn-waste-blanks-children .child {
  position: absolute; bottom: 18%; left: 15%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wbc-child 5s ease-in-out infinite;
}
.scn-waste-blanks-children .ray {
  position: absolute; top: 15%; left: 25%; width: 40%; height: 5%;
  background: linear-gradient(90deg, rgba(255,255,220,0.4) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: wbc-ray 14s linear infinite;
}
@keyframes wbc-window {
  0% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.01) translateY(2px); }
  100% { opacity: 0.85; transform: scale(0.99); }
}
@keyframes wbc-paper {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes wbc-pen {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-3px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes wbc-child {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(3deg); }
  75% { transform: translateX(-5px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes wbc-ray {
  0% { transform: translateX(-30px) scaleX(1); opacity: 0.3; }
  50% { transform: translateX(60px) scaleX(1.5); opacity: 0.6; }
  100% { transform: translateX(-30px) scaleX(1); opacity: 0.3; }
}

.scn-muse-invoked {
  background: linear-gradient(180deg, #8a8f9a 0%, #6a707c 40%, #4a4e58 100%),
              radial-gradient(ellipse at 50% 30%, #b0b6c0 0%, transparent 70%);
}
.scn-muse-invoked .sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #8a8f9a 0%, #5a606c 100%);
  animation: mi-sky 20s ease-in-out infinite alternate;
}
.scn-muse-invoked .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4048 0%, #1a1e22 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
}
.scn-muse-invoked .figure {
  position: absolute; bottom: 25%; left: 50%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #1a1e22 0%, #0a0c10 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mi-figure 6s ease-in-out infinite;
}
.scn-muse-invoked .wing {
  position: absolute; bottom: 45%; left: 45%; width: 20%; height: 20%;
  background: radial-gradient(ellipse at 30% 50%, #b0b6c0 0%, transparent 70%);
  border-radius: 50% 10% 50% 10% / 30% 60% 40% 70%;
  opacity: 0.7;
  animation: mi-wing 8s ease-in-out infinite alternate;
}
.scn-muse-invoked .lyre {
  position: absolute; bottom: 28%; left: 52%; width: 6%; height: 15%;
  background: linear-gradient(180deg, #c8b070 0%, #8a7840 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: mi-lyre 5s ease-in-out infinite;
}
.scn-muse-invoked .glow {
  position: absolute; top: 15%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(circle, rgba(255,220,150,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: mi-glow 4s ease-in-out infinite alternate;
}
.scn-muse-invoked .cloud {
  position: absolute; top: 10%; left: -10%; width: 30%; height: 15%;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%);
  border-radius: 50%; filter: blur(8px);
  animation: mi-cloud 40s linear infinite;
}
.scn-muse-invoked .rays {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,220,150,0.2) 0%, transparent 70%);
  clip-path: polygon(50% 0, 60% 30%, 40% 30%, 70% 60%, 30% 60%, 50% 100%, 20% 60%, 80% 60%, 40% 30%, 60% 30%);
  animation: mi-rays 6s ease-in-out infinite;
}
@keyframes mi-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes mi-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes mi-wing {
  0% { transform: rotate(0deg) scale(1); opacity: 0.5; }
  50% { transform: rotate(10deg) scale(1.1); opacity: 0.8; }
  100% { transform: rotate(-5deg) scale(0.95); opacity: 0.6; }
}
@keyframes mi-lyre {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes mi-glow {
  0% { opacity: 0.3; transform: scale(0.9); }
  100% { opacity: 0.7; transform: scale(1.2); }
}
@keyframes mi-cloud {
  0% { transform: translateX(-100px); }
  100% { transform: translateX(110vw); }
}
@keyframes mi-rays {
  0% { opacity: 0.2; transform: scale(0.9); }
  50% { opacity: 0.5; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(0.95); }
}

.scn-sonnet-xcvii {
  background: linear-gradient(180deg, #4a5568 0%, #718096 40%, #a0aec0 100%),
              radial-gradient(ellipse at 50% 0%, #cbd5e0 0%, transparent 60%);
}
.scn-sonnet-xcvii .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3c4a5e 0%, transparent 100%);
  animation: sn97-sky 12s ease-in-out infinite alternate;
}
.scn-sonnet-xcvii .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a5568 0%, #2d3748 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.4);
  animation: sn97-ground 20s ease-in-out infinite alternate;
}
.scn-sonnet-xcvii .tree-trunk {
  position: absolute; bottom: 35%; left: 20%; width: 14px; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2d1f14 100%);
  border-radius: 4px;
  transform-origin: bottom center;
  animation: sn97-trunk 8s ease-in-out infinite;
}
.scn-sonnet-xcvii .tree-branches {
  position: absolute; bottom: 55%; left: 20%; width: 40%; height: 30%;
  background: linear-gradient(135deg, transparent 30%, #4a3a2a 31%, #2d1f14 70%, transparent 71%);
  border-radius: 50%;
  clip-path: polygon(0 20%, 50% 0, 100% 20%, 85% 80%, 15% 80%);
  animation: sn97-branches 8s ease-in-out infinite alternate;
}
.scn-sonnet-xcvii .figure {
  position: absolute; bottom: 28%; left: 55%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a202c 0%, #0f141a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sn97-figure 6s ease-in-out infinite;
}
.scn-sonnet-xcvii .falling-leaf {
  position: absolute; top: -10px; left: 30%; width: 10px; height: 16px;
  background: linear-gradient(180deg, #a0754a 0%, #7a5a30 100%);
  border-radius: 40% 60% 40% 60%;
  animation: sn97-leaf-fall 5s linear infinite;
}
.scn-sonnet-xcvii .leaf2 {
  left: 45%; animation-delay: -2.5s; animation-duration: 6s;
}
@keyframes sn97-sky { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes sn97-ground { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(.98); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes sn97-trunk { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } }
@keyframes sn97-branches { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(.95); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes sn97-figure { 0% { transform: translateX(0px) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes sn97-leaf-fall { 0% { transform: translateY(0) rotate(0deg) translateX(0); opacity: .9; } 30% { transform: translateY(40px) rotate(80deg) translateX(15px); opacity: .7; } 60% { transform: translateY(80px) rotate(160deg) translateX(-10px); opacity: .5; } 100% { transform: translateY(120px) rotate(300deg) translateX(5px); opacity: 0; } }

.scn-sonnet-xcvii-part2 {
  background: linear-gradient(180deg, #718096 0%, #a0aec0 40%, #cbd5e0 100%),
              radial-gradient(ellipse at 30% 20%, #e2e8f0 0%, transparent 50%);
}
.scn-sonnet-xcvii-part2 .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5a6a7e 0%, transparent 100%);
  animation: sn97b-sky 15s ease-in-out infinite alternate;
}
.scn-sonnet-xcvii-part2 .branch {
  position: absolute; bottom: 30%; left: 5%; width: 50%; height: 12px;
  background: linear-gradient(90deg, #4a3a2a 0%, #2d1f14 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: left center;
  animation: sn97b-branch 6s ease-in-out infinite alternate;
}
.scn-sonnet-xcvii-part2 .bird {
  position: absolute; bottom: 42%; left: 30%; width: 20px; height: 14px;
  background: radial-gradient(circle at 40% 50%, #2d3748 0%, #1a202c 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: center;
  animation: sn97b-bird 4s ease-in-out infinite;
}
.scn-sonnet-xcvii-part2 .bird2 {
  left: 50%; bottom: 48%; animation-delay: -2s; animation-duration: 5s;
}
.scn-sonnet-xcvii-part2 .falling-leaf {
  position: absolute; top: -10px; left: 20%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%);
  border-radius: 40% 60% 40% 60%;
  animation: sn97b-leaf-fall 4s linear infinite;
}
.scn-sonnet-xcvii-part2 .leaf2 {
  left: 40%; animation-delay: -1.8s; animation-duration: 4.5s;
}
@keyframes sn97b-sky { 0% { opacity: .5; } 50% { opacity: 1; } 100% { opacity: .6; } }
@keyframes sn97b-branch { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(3deg) scaleX(.95); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes sn97b-bird { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(3deg); } 50% { transform: translateX(10px) rotate(0deg); } 75% { transform: translateX(5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sn97b-leaf-fall { 0% { transform: translateY(0) rotate(0deg) translateX(0); } 40% { transform: translateY(50px) rotate(120deg) translateX(10px); } 70% { transform: translateY(90px) rotate(240deg) translateX(-5px); } 100% { transform: translateY(120px) rotate(360deg) translateX(0); opacity: 0; } }

.scn-sonnet-xcviii {
  background: linear-gradient(180deg, #cbd5e0 0%, #e2e8f0 40%, #f7fafc 100%),
              radial-gradient(ellipse at 80% 20%, #edf2f7 0%, transparent 60%);
}
.scn-sonnet-xcviii .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a0aec0 0%, transparent 100%);
  animation: sn98-sky 14s ease-in-out infinite alternate;
}
.scn-sonnet-xcviii .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #8fa08a 0%, #6e7b6a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,.1);
}
.scn-sonnet-xcviii .lily-stem {
  position: absolute; bottom: 40%; left: 25%; width: 6px; height: 50%;
  background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%);
  border-radius: 3px;
  transform-origin: bottom center;
  animation: sn98-stem 8s ease-in-out infinite;
}
.scn-sonnet-xcviii .lily {
  position: absolute; bottom: 75%; left: 22%; width: 30px; height: 40px;
  background: radial-gradient(circle at 50% 60%, #f0f8ff 0%, #e0e8f0 60%, transparent 80%);
  border-radius: 50% 50% 30% 30%;
  animation: sn98-lily 6s ease-in-out infinite alternate;
}
.scn-sonnet-xcviii .rose-bush {
  position: absolute; bottom: 35%; right: 15%; width: 80px; height: 70px;
  background: radial-gradient(ellipse at 50% 80%, #3d2a1a 0%, transparent 70%);
  border-radius: 40% 60% 30% 50%;
  animation: sn98-bush 10s ease-in-out infinite alternate;
}
.scn-sonnet-xcviii .rose {
  position: absolute; bottom: 45%; right: 25%; width: 28px; height: 24px;
  background: radial-gradient(circle at 40% 40%, #b87878 0%, #702243 50%, #3a1220 100%);
  border-radius: 50% 50% 40% 40%;
  animation: sn98-rose 4s ease-in-out infinite alternate;
}
.scn-sonnet-xcviii .petal {
  position: absolute; top: 20%; left: 35%; width: 12px; height: 14px;
  background: linear-gradient(180deg, #e8d0c8 0%, #c8a898 100%);
  border-radius: 40% 60% 40% 60%;
  animation: sn98-petal-fall 6s linear infinite;
}
.scn-sonnet-xcviii .petal2 {
  left: 55%; animation-delay: -3s; animation-duration: 7s;
}
.scn-sonnet-xcviii .butterfly {
  position: absolute; bottom: 55%; left: 40%; width: 18px; height: 12px;
  background: radial-gradient(circle at 50% 50%, #c8a050 0%, #a08030 100%);
  border-radius: 50% 50% 30% 30%;
  animation: sn98-butterfly 5s ease-in-out infinite;
}
@keyframes sn98-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes sn98-stem { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes sn98-lily { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.05) rotate(3deg); } 100% { transform: scaleY(1) rotate(0deg); } }
@keyframes sn98-bush { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-3px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes sn98-rose { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.08) rotate(5deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes sn98-petal-fall { 0% { transform: translateY(0) rotate(0deg) translateX(0); opacity: .8; } 40% { transform: translateY(60px) rotate(90deg) translateX(10px); opacity: .6; } 70% { transform: translateY(120px) rotate(180deg) translateX(-5px); opacity: .3; } 100% { transform: translateY(180px) rotate(270deg) translateX(0); opacity: 0; } }
@keyframes sn98-butterfly { 0% { transform: translateX(0) scaleX(1); } 25% { transform: translateX(15px) scaleX(-1); } 50% { transform: translateX(30px) scaleX(1); } 75% { transform: translateX(15px) scaleX(-1); } 100% { transform: translateX(0) scaleX(1); } }

.scn-sonnet-xcviii-part2 {
  background: linear-gradient(180deg, #5a6a7e 0%, #718096 40%, #8899aa 100%),
              radial-gradient(ellipse at 50% 60%, #a0aec0 0%, transparent 70%);
}
.scn-sonnet-xcviii-part2 .surface {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3d4a5a 0%, #2d3a4a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-sonnet-xcviii-part2 .flower-stem {
  position: absolute; bottom: 50%; left: 40%; width: 5px; height: 40%;
  background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: sn98b-stem 7s ease-in-out infinite;
}
.scn-sonnet-xcviii-part2 .flower-head {
  position: absolute; bottom: 75%; left: 36%; width: 28px; height: 28px;
  background: radial-gradient(circle at 40% 40%, #c8b8a8 0%, #a89080 60%, transparent 80%);
  border-radius: 50%;
  animation: sn98b-head 5s ease-in-out infinite alternate;
}
.scn-sonnet-xcviii-part2 .hand-silhouette {
  position: absolute; bottom: 35%; left: 55%; width: 20px; height: 30px;
  background: #1a202c;
  border-radius: 30% 30% 40% 40%;
  transform-origin: bottom center;
  clip-path: polygon(0 20%, 30% 0, 70% 0, 100% 20%, 100% 100%, 0 100%);
  animation: sn98b-hand 6s ease-in-out infinite;
}
.scn-sonnet-xcviii-part2 .shadow-flower {
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 25px;
  background: rgba(0,0,0,.15);
  border-radius: 40%;
  filter: blur(4px);
  animation: sn98b-shadow 7s ease-in-out infinite;
}
.scn-sonnet-xcviii-part2 .shadow-hand {
  position: absolute; bottom: 25%; left: 50%; width: 16px; height: 24px;
  background: rgba(0,0,0,.1);
  border-radius: 30%;
  filter: blur(5px);
  animation: sn98b-shadow 6s ease-in-out infinite reverse;
}
.scn-sonnet-xcviii-part2 .petal-falling {
  position: absolute; top: -10px; left: 30%; width: 10px; height: 12px;
  background: linear-gradient(180deg, #e0d0c0 0%, #b8a898 100%);
  border-radius: 40% 60% 40% 60%;
  animation: sn98b-petal 8s linear infinite;
}
@keyframes sn98b-stem { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes sn98b-head { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(4deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes sn98b-hand { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(5deg); } 50% { transform: translateX(10px) rotate(0deg); } 75% { transform: translateX(5px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sn98b-shadow { 0% { transform: translateX(0) scale(1); opacity: .3; } 50% { transform: translateX(-3px) scale(.95); opacity: .15; } 100% { transform: translateX(0) scale(1); opacity: .3; } }
@keyframes sn98b-petal { 0% { transform: translateY(0) rotate(0deg) translateX(0); opacity: .7; } 40% { transform: translateY(60px) rotate(100deg) translateX(8px); opacity: .5; } 70% { transform: translateY(120px) rotate(200deg) translateX(-4px); opacity: .2; } 100% { transform: translateY(180px) rotate(300deg) translateX(0); opacity: 0; } }

/* Scene 1: sonnet-cxxxv-part2 – pleading, overcast */
.scn-sonnet-cxxxv-part2 {
  background: linear-gradient(180deg, #6b7b83 0%, #8b9ba3 30%, #9badb5 60%, #7a8a92 100%),
              radial-gradient(ellipse at 50% 0%, #aac0c8 0%, transparent 60%);
}
.scn-sonnet-cxxxv-part2 .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #7a8a92 0%, #9badb5 40%, transparent 100%);
  animation: scap2-sky 14s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxv-part2 .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #55605a 0%, #3e4742 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,.3);
  animation: scap2-hills 18s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxv-part2 .figure {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scap2-figure 6s ease-in-out infinite;
}
.scn-sonnet-cxxxv-part2 .hand {
  position: absolute; bottom: 32%; left: 48%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #2b2b2b 0%, #1a1a1a 100%);
  border-radius: 50%;
  transform-origin: bottom center;
  animation: scap2-hand 6s ease-in-out infinite;
}
.scn-sonnet-cxxxv-part2 .lantern {
  position: absolute; bottom: 26%; left: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c2a864 0%, #8a7030 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(194,168,100,.6);
  animation: scap2-lantern 4s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxv-part2 .cloud-a {
  position: absolute; top: 15%; left: 10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(200,210,215,0.6) 0%, rgba(200,210,215,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: scap2-drift-a 40s linear infinite;
}
.scn-sonnet-cxxxv-part2 .cloud-b {
  position: absolute; top: 25%; right: 5%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(200,210,215,0.5) 0%, rgba(200,210,215,0.05) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: scap2-drift-b 55s linear infinite reverse;
}
.scn-sonnet-cxxxv-part2 .mist {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(180,190,195,0.3) 50%, transparent 100%);
  filter: blur(10px);
  animation: scap2-mist 20s ease-in-out infinite alternate;
}
@keyframes scap2-sky {
  0% { opacity: .75; }
  50% { opacity: 1; }
  100% { opacity: .8; }
}
@keyframes scap2-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes scap2-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(3deg); }
  50% { transform: translateX(-6px) rotate(-2deg); }
  75% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes scap2-hand {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  50% { transform: translateX(-5px) rotate(-25deg) scaleY(1.1); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes scap2-lantern {
  0% { box-shadow: 0 0 15px 4px rgba(194,168,100,0.5); opacity: .7; }
  50% { box-shadow: 0 0 30px 12px rgba(194,168,100,0.8); opacity: 1; }
  100% { box-shadow: 0 0 18px 6px rgba(194,168,100,0.5); opacity: .8; }
}
@keyframes scap2-drift-a {
  0% { transform: translateX(-30px) scale(1); }
  100% { transform: translateX(120vw) scale(1.2); }
}
@keyframes scap2-drift-b {
  0% { transform: translateX(0) scale(1); }
  100% { transform: translateX(-100vw) scale(.9); }
}
@keyframes scap2-mist {
  0% { opacity: .3; transform: scaleY(1); }
  50% { opacity: .5; transform: scaleY(1.1); }
  100% { opacity: .3; transform: scaleY(1); }
}

/* Scene 2: sonnet-cxxxvi – clever, overcast */
.scn-sonnet-cxxxvi {
  background: linear-gradient(180deg, #6f7a7a 0%, #8e9b9b 40%, #7a8585 100%),
              radial-gradient(ellipse at 50% 70%, #a0aeae 0%, transparent 60%);
}
.scn-sonnet-cxxxvi .curtain.cloth {
  position: absolute; top: 0; left: 0; right: 0; height: 100%;
  background: linear-gradient(90deg, #2d3a3a 0%, #405050 20%, #2d3a3a 40%, #405050 60%, #2d3a3a 80%, #405050 100%);
  clip-path: polygon(0 0, 100% 0, 95% 100%, 85% 80%, 70% 100%, 50% 80%, 30% 100%, 15% 80%, 5% 100%);
  animation: scxe-curtain 10s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxvi .curtain.rod {
  position: absolute; top: 5%; left: 0; right: 0; height: 6px;
  background: linear-gradient(90deg, #5a4a3a 0%, #8a7050 50%, #5a4a3a 100%);
  border-radius: 3px;
}
.scn-sonnet-cxxxvi .mask {
  position: absolute; top: 40%; left: 50%; width: 30px; height: 22px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(0deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: scxe-mask 8s ease-in-out infinite;
}
.scn-sonnet-cxxxvi .figure {
  position: absolute; bottom: 15%; left: 42%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scxe-figure 6s ease-in-out infinite;
}
.scn-sonnet-cxxxvi .hand {
  position: absolute; bottom: 35%; left: 50%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #2b2b2b 0%, #1a1a1a 100%);
  border-radius: 50%;
  transform-origin: bottom center;
  animation: scxe-hand 8s ease-in-out infinite;
}
.scn-sonnet-cxxxvi .shadow {
  position: absolute; bottom: 5%; left: 30%; right: 30%; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: scxe-shadow 12s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxvi .glow {
  position: absolute; top: 20%; left: 40%; right: 40%; bottom: 60%;
  background: radial-gradient(ellipse, rgba(200,210,210,0.15) 0%, transparent 60%);
  animation: scxe-glow 14s ease-in-out infinite alternate;
}
@keyframes scxe-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(0); }
}
@keyframes scxe-mask {
  0% { transform: translateX(-50%) rotate(-5deg) scaleX(1); }
  25% { transform: translateX(-50%) rotate(5deg) scaleX(.95); }
  50% { transform: translateX(-50%) rotate(-8deg) scaleX(1.1); }
  75% { transform: translateX(-50%) rotate(4deg) scaleX(1); }
  100% { transform: translateX(-50%) rotate(-5deg) scaleX(1); }
}
@keyframes scxe-figure {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-3deg); }
  50% { transform: rotate(2deg); }
  75% { transform: rotate(-1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes scxe-hand {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  50% { transform: translateX(6px) rotate(10deg) scaleY(1.15); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes scxe-shadow {
  0% { opacity: .5; transform: scaleX(1); }
  50% { opacity: .8; transform: scaleX(1.2); }
  100% { opacity: .5; transform: scaleX(1); }
}
@keyframes scxe-glow {
  0% { opacity: .2; }
  50% { opacity: .5; }
  100% { opacity: .2; }
}

/* Scene 3: item-forged-hooks – tense, dim-interior */
.scn-item-forged-hooks {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 50%, #1a1a1a 100%),
              radial-gradient(ellipse at 50% 80%, #3a3a3a 0%, transparent 60%);
}
.scn-item-forged-hooks .wall.left {
  position: absolute; top: 0; left: 0; bottom: 20%; width: 30%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
}
.scn-item-forged-hooks .wall.right {
  position: absolute; top: 0; right: 0; bottom: 20%; width: 30%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
}
.scn-item-forged-hooks .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
}
.scn-item-forged-hooks .figure {
  position: absolute; bottom: 25%; left: 35%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #0d0d0d 0%, #050505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ifho-figure 8s ease-in-out infinite;
}
.scn-item-forged-hooks .blindfold {
  position: absolute; bottom: 55%; left: 45%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 10px;
  transform: rotate(5deg);
  animation: ifho-blindfold 10s ease-in-out infinite;
}
.scn-item-forged-hooks .candle {
  position: absolute; bottom: 25%; right: 20%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #c8a870 0%, #8a7040 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 3px rgba(200,168,112,0.3);
  animation: ifho-candle 6s ease-in-out infinite alternate;
}
.scn-item-forged-hooks .flame {
  position: absolute; bottom: 54%; right: 23%; width: 6px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #c89040 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: ifho-flame .5s ease-in-out infinite alternate;
}
.scn-item-forged-hooks .shadow {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%);
  filter: blur(5px);
  animation: ifho-shadow 12s ease-in-out infinite alternate;
}
@keyframes ifho-figure {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-2deg); }
  50% { transform: rotate(0deg) translateY(-3px); }
  75% { transform: rotate(2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes ifho-blindfold {
  0% { transform: rotate(5deg) translateX(0); }
  50% { transform: rotate(-5deg) translateX(2px); }
  100% { transform: rotate(5deg) translateX(0); }
}
@keyframes ifho-candle {
  0% { opacity: .8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: .9; transform: scaleY(1); }
}
@keyframes ifho-flame {
  0% { transform: translateY(0) scale(1); opacity: .9; }
  100% { transform: translateY(-2px) scale(1.2); opacity: 1; }
}
@keyframes ifho-shadow {
  0% { opacity: .4; transform: scaleX(1); }
  50% { opacity: .6; transform: scaleX(1.1); }
  100% { opacity: .4; transform: scaleX(1); }
}

/* Scene 4: sonnet-cxxxvii-rest – tense, dim-interior */
.scn-sonnet-cxxxvii-rest {
  background: linear-gradient(180deg, #12121a 0%, #1e1e2a 40%, #12121a 100%),
              radial-gradient(ellipse at 50% 70%, #1a1a2a 0%, transparent 60%);
}
.scn-sonnet-cxxxvii-rest .bars.bar-1 {
  position: absolute; top: 0; bottom: 0; left: 20%; width: 6px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 3px;
  box-shadow: 2px 0 4px rgba(0,0,0,.3);
  animation: scv7-bars 6s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxvii-rest .bars.bar-2 {
  position: absolute; top: 0; bottom: 0; left: 70%; width: 6px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 3px;
  box-shadow: -2px 0 4px rgba(0,0,0,.3);
  animation: scv7-bars 6s ease-in-out infinite alternate reverse;
}
.scn-sonnet-cxxxvii-rest .figure {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #0d0d12 0%, #05050a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scv7-figure 8s ease-in-out infinite;
}
.scn-sonnet-cxxxvii-rest .heart {
  position: absolute; bottom: 50%; left: 50%; width: 24px; height: 22px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0d0d 100%);
  border-radius: 50% 50% 0 0;
  transform: translateX(-50%) rotate(45deg);
  box-shadow: 0 0 12px 2px rgba(94,26,29,.4);
  animation: scv7-heart 4s ease-in-out infinite;
}
.scn-sonnet-cxxxvii-rest .chain.chain-1 {
  position: absolute; bottom: 30%; left: 45%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 2px;
  animation: scv7-chain 10s ease-in-out infinite alternate;
}
.scn-sonnet-cxxxvii-rest .chain.chain-2 {
  position: absolute; bottom: 30%; left: 55%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 2px;
  animation: scv7-chain 10s ease-in-out infinite alternate-reverse;
}
.scn-sonnet-cxxxvii-rest .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 100%);
}
.scn-sonnet-cxxxvii-rest .shadow {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  filter: blur(6px);
  animation: scv7-shadow 12s ease-in-out infinite alternate;
}
@keyframes scv7-bars {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(0); }
}
@keyframes scv7-figure {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-2deg) translateY(-2px); }
  50% { transform: rotate(0deg) translateY(-3px); }
  75% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes scv7-heart {
  0% { transform: translateX(-50%) rotate(45deg) scale(1); }
  25% { transform: translateX(-50%) rotate(45deg) scale(1.1); }
  50% { transform: translateX(-50%) rotate(45deg) scale(1.2); }
  75% { transform: translateX(-50%) rotate(45deg) scale(1.1); }
  100% { transform: translateX(-50%) rotate(45deg) scale(1); }
}
@keyframes scv7-chain {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes scv7-shadow {
  0% { opacity: .5; transform: scaleX(1); }
  50% { opacity: .7; transform: scaleX(1.15); }
  100% { opacity: .5; transform: scaleX(1); }
}

/* ----- heart-raiment-babe ----- */
.scn-heart-raiment-babe {
  background: linear-gradient(135deg, #f5e6c8 0%, #d9b68c 60%, #b6855a 100%),
    radial-gradient(ellipse at 60% 50%, rgba(255,215,140,0.4) 0%, transparent 70%);
}
.scn-heart-raiment-babe .bg { position:absolute; inset:0; background: radial-gradient(circle at 30% 60%, rgba(255,220,160,0.3) 0%, transparent 60%); animation: hrb-bg 10s ease-in-out infinite; }
.scn-heart-raiment-babe .figure { position:absolute; bottom:20%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hrb-figure 6s ease-in-out infinite; }
.scn-heart-raiment-babe .garment { position:absolute; bottom:18%; left:28%; width:50px; height:60px; background: linear-gradient(135deg, #c8553d 0%, #8a3a2a 60%, #5e1a1d 100%); border-radius: 20% 60% 30% 70% / 60% 50% 50% 40%; transform-origin: bottom center; animation: hrb-garment 8s ease-in-out infinite alternate; }
.scn-heart-raiment-babe .heart { position:absolute; bottom:45%; left:38%; width:14px; height:12px; background: radial-gradient(circle at 30% 30%, #d4654e 0%, #a83a2a 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; transform: rotate(45deg); box-shadow: 0 0 20px 6px rgba(212,101,78,0.5); animation: hrb-heart 4s ease-in-out infinite; }
.scn-heart-raiment-babe .glow { position:absolute; bottom:40%; left:34%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,200,120,0.4) 0%, transparent 70%); border-radius:50%; animation: hrb-glow 5s ease-in-out infinite alternate; }
.scn-heart-raiment-babe .frame { position:absolute; inset:8%; border:4px solid rgba(180,130,80,0.6); border-radius:40px; background: transparent; pointer-events:none; animation: hrb-frame 12s ease-in-out infinite; }
@keyframes hrb-bg { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes hrb-figure { 0%,100% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(1deg) translateX(2px) } 75% { transform: rotate(-1deg) translateX(-2px) } }
@keyframes hrb-garment { 0% { border-radius: 20% 60% 30% 70% / 60% 50% 50% 40%; } 50% { border-radius: 30% 50% 40% 60% / 50% 60% 40% 50%; } 100% { border-radius: 20% 60% 30% 70% / 60% 50% 50% 40%; } }
@keyframes hrb-heart { 0% { transform: rotate(45deg) scale(1); } 50% { transform: rotate(45deg) scale(1.15); box-shadow: 0 0 30px 10px rgba(212,101,78,0.6); } 100% { transform: rotate(45deg) scale(1); } }
@keyframes hrb-glow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.2); } 100% { opacity:0.5; transform: scale(1); } }
@keyframes hrb-frame { 0%,100% { border-color: rgba(180,130,80,0.6); } 50% { border-color: rgba(200,160,100,0.8); } }

/* ----- actor-fear-part ----- */
.scn-actor-fear-part {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3a 50%, #0d0d1a 100%),
    radial-gradient(ellipse at 50% 0%, rgba(150,100,180,0.2) 0%, transparent 60%);
}
.scn-actor-fear-part .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.5) 100%); }
.scn-actor-fear-part .stage-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 40% 60% 0 0 / 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.8); }
.scn-actor-fear-part .spotlight { position:absolute; top:0; left:20%; width:60%; height:60%; background: radial-gradient(ellipse at 50% 0%, rgba(255,200,120,0.35) 0%, transparent 65%); animation: afp-spot 3s ease-in-out infinite alternate; }
.scn-actor-fear-part .actor { position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:30px; height:70px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 8px 20px rgba(0,0,0,0.8); animation: afp-actor 0.8s ease-in-out infinite; }
.scn-actor-fear-part .shadow { position:absolute; bottom:25%; left:45%; width:60px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); border-radius:50%; animation: afp-shadow 1.2s ease-in-out infinite; }
.scn-actor-fear-part .hand-left { position:absolute; bottom:32%; left:42%; width:12px; height:24px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin: bottom center; animation: afp-hand 0.6s ease-in-out infinite; }
.scn-actor-fear-part .hand-right { position:absolute; bottom:32%; left:56%; width:12px; height:24px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin: bottom center; animation: afp-hand 0.6s ease-in-out infinite reverse; }
@keyframes afp-spot { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.5; } }
@keyframes afp-actor { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-49%) translateY(-1px) rotate(1deg); } 75% { transform: translateX(-51%) translateY(1px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes afp-shadow { 0%,100% { transform: scaleX(1); opacity:0.6; } 50% { transform: scaleX(1.1); opacity:0.4; } }
@keyframes afp-hand { 0%,100% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(10deg) translateX(3px); } 70% { transform: rotate(-8deg) translateX(-2px); } }

/* ----- books-eloquence-love ----- */
.scn-books-eloquence-love {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a1a 40%, #1a0e05 100%),
    radial-gradient(ellipse at 50% 80%, rgba(180,130,60,0.3) 0%, transparent 70%);
}
.scn-books-eloquence-love .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 40%, rgba(0,0,0,0.4) 100%); }
.scn-books-eloquence-love .desk { position:absolute; bottom:10%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%); border-radius: 8% 8% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.6); }
.scn-books-eloquence-love .books-stack { position:absolute; bottom:30%; left:38%; width:100px; height:50px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: bel-stack 6s ease-in-out infinite; }
.scn-books-eloquence-love .book-spine { position:absolute; bottom:35%; left:58%; width:12px; height:40px; background: linear-gradient(180deg, #8a5a3a 0%, #5a3020 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.4); animation: bel-spine 8s ease-in-out infinite alternate; }
.scn-books-eloquence-love .glow { position:absolute; bottom:35%; left:35%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 70%); border-radius:50%; animation: bel-glow 5s ease-in-out infinite; }
.scn-books-eloquence-love .lamp { position:absolute; bottom:40%; left:20%; width:20px; height:20px; background: radial-gradient(circle, #ffd080 0%, #b08040 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,208,128,0.3); animation: bel-lamp 3s ease-in-out infinite alternate; }
@keyframes bel-stack { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } }
@keyframes bel-spine { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-7deg) translateX(2px); } 100% { transform: rotate(-3deg) translateX(-1px); } }
@keyframes bel-glow { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.1); } 100% { opacity:0.4; transform: scale(1); } }
@keyframes bel-lamp { 0% { opacity:0.7; box-shadow: 0 0 20px 6px rgba(255,208,128,0.3); } 50% { opacity:1; box-shadow: 0 0 40px 14px rgba(255,208,128,0.5); } 100% { opacity:0.8; box-shadow: 0 0 25px 8px rgba(255,208,128,0.35); } }

/* ----- shop-windows-eyes ----- */
.scn-shop-windows-eyes {
  background: linear-gradient(135deg, #f0d8b0 0%, #d4b88a 40%, #b8986a 100%),
    radial-gradient(circle at 20% 40%, rgba(255,220,160,0.4) 0%, transparent 60%);
}
.scn-shop-windows-eyes .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 20%, rgba(0,0,0,0.15) 100%); }
.scn-shop-windows-eyes .shelf { position:absolute; bottom:30%; left:5%; right:5%; height:8px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-shop-windows-eyes .frame { position:absolute; bottom:20%; left:15%; right:15%; top:10%; border: 6px solid #6a4a2a; border-radius: 8px; background: transparent; pointer-events:none; box-shadow: inset 0 0 20px rgba(0,0,0,0.2); }
.scn-shop-windows-eyes .window { position:absolute; bottom:22%; left:17%; right:17%; top:12%; background: linear-gradient(180deg, rgba(200,180,140,0.3) 0%, rgba(180,160,120,0.2) 100%); border-radius: 4px; animation: swe-window 8s ease-in-out infinite; }
.scn-shop-windows-eyes .eye-left { position:absolute; bottom:38%; left:28%; width:30px; height:36px; background: radial-gradient(circle at 50% 50%, #3a2a1a 0%, #7a5a3a 60%, #d4b88a 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 12px 4px rgba(0,0,0,0.2); animation: swe-eye 4s ease-in-out infinite; }
.scn-shop-windows-eyes .eye-right { position:absolute; bottom:38%; right:28%; width:30px; height:36px; background: radial-gradient(circle at 50% 50%, #3a2a1a 0%, #7a5a3a 60%, #d4b88a 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 12px 4px rgba(0,0,0,0.2); animation: swe-eye 4s ease-in-out infinite 2s; }
.scn-shop-windows-eyes .glow { position:absolute; bottom:35%; left:40%; right:40%; top:30%; background: radial-gradient(circle, rgba(255,220,140,0.3) 0%, transparent 70%); border-radius:50%; animation: swe-glow 5s ease-in-out infinite alternate; }
@keyframes swe-window { 0%,100% { opacity:0.7; } 50% { opacity:0.9; } }
@keyframes swe-eye { 0%,100% { transform: scaleY(1); } 45% { transform: scaleY(0.1); } 50% { transform: scaleY(0.1); } 55% { transform: scaleY(1); } }
@keyframes swe-glow { 0% { opacity:0.5; transform: scale(1); } 100% { opacity:0.8; transform: scale(1.1); } }

.scn-sonnet-xcix {
  background: 
    linear-gradient(180deg, #8a9ba8 0%, #b0c2d0 40%, #c8d6e0 100%),
    radial-gradient(ellipse at 50% 0%, #d4e3ed 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-sonnet-xcix .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #7a8b98 0%, #b8c8d5 100%);
  animation: sn1-sky 8s ease-in-out infinite alternate;
}
.scn-sonnet-xcix .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 30% 40% 0 0 / 20% 25% 0 0;
}
.scn-sonnet-xcix .violet {
  position: absolute; bottom: 40%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle at 50% 50%, #5a3a7a 0%, #3a1a5a 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px 2px rgba(90,58,122,0.5);
  animation: sn1-violet 4s ease-in-out infinite;
}
.scn-sonnet-xcix .lily {
  position: absolute; bottom: 35%; right: 25%; width: 50px; height: 60px;
  background: radial-gradient(ellipse at 50% 40%, #f0f0e8 0%, #d0d0c0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px 2px rgba(240,240,232,0.4);
  animation: sn1-lily 6s ease-in-out infinite;
}
.scn-sonnet-xcix .hand {
  position: absolute; bottom: 30%; left: 45%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #c9b9a0 0%, #a08970 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sn1-hand 3s ease-in-out infinite;
}
.scn-sonnet-xcix .breath {
  position: absolute; bottom: 45%; left: 55%; width: 80px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,220,240,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: sn1-breath 7s ease-in-out infinite alternate;
}
.scn-sonnet-xcix .leaf-a {
  position: absolute; bottom: 25%; left: 15%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 80% 20% 50% 50% / 60% 40% 60% 40%;
  animation: sn1-leaf 5s ease-in-out infinite;
}
.scn-sonnet-xcix .leaf-b {
  position: absolute; bottom: 30%; right: 20%; width: 18px; height: 8px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 20% 80% 50% 50% / 40% 60% 40% 60%;
  animation: sn1-leaf 5s ease-in-out infinite reverse;
}
@keyframes sn1-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes sn1-violet { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes sn1-lily { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes sn1-hand { 0% { transform: translateX(0) rotate(-5deg) } 50% { transform: translateX(8px) rotate(5deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes sn1-breath { 0% { transform: translate(0,0) scale(1); opacity: 0.3 } 50% { transform: translate(10px,-5px) scale(1.3); opacity: 0.7 } 100% { transform: translate(0,0) scale(1); opacity: 0.3 } }
@keyframes sn1-leaf { 0% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-10deg) } }

.scn-sonnet-xcix-part2 {
  background: 
    linear-gradient(180deg, #2c2a3e 0%, #3d3a52 40%, #4a485c 100%),
    radial-gradient(ellipse at 50% 100%, #4a485c 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-sonnet-xcix-part2 .sky-dark {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1e1c30 0%, #2a283e 100%);
  animation: sn2-sky 10s ease-in-out infinite alternate;
}
.scn-sonnet-xcix-part2 .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1e1e1a 0%, #0e0e0a 100%);
  border-radius: 50% 40% 0 0 / 30% 20% 0 0;
}
.scn-sonnet-xcix-part2 .flower-wilted {
  position: absolute; bottom: 30%; left: 40%; width: 50px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  animation: sn2-wilt 6s ease-in-out infinite;
}
.scn-sonnet-xcix-part2 .canker {
  position: absolute; bottom: 28%; left: 42%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 40% 60% 40% 60% / 50% 50% 50% 50%;
  animation: sn2-canker 2s ease-in-out infinite;
}
.scn-sonnet-xcix-part2 .petal-a {
  position: absolute; bottom: 35%; left: 35%; width: 12px; height: 16px;
  background: radial-gradient(ellipse at 50% 40%, #c89a7a 0%, #a07050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sn2-petal 4s linear infinite;
}
.scn-sonnet-xcix-part2 .petal-b {
  position: absolute; bottom: 38%; right: 35%; width: 10px; height: 14px;
  background: radial-gradient(ellipse at 50% 40%, #b88a6a 0%, #906050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sn2-petal 4s linear infinite reverse;
  animation-delay: -2s;
}
.scn-sonnet-xcix-part2 .breath-stolen {
  position: absolute; bottom: 40%; left: 50%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,200,220,0.2) 0%, transparent 70%);
  filter: blur(10px);
  animation: sn2-breath 8s ease-in-out infinite alternate;
}
.scn-sonnet-xcix-part2 .shadow-veil {
  position: absolute; inset: 0;
  background: rgba(10,10,15,0.4);
  animation: sn2-veil 12s ease-in-out infinite alternate;
}
@keyframes sn2-sky { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes sn2-wilt { 0% { transform: rotate(-15deg) scale(1) } 50% { transform: rotate(-20deg) scale(0.95) } 100% { transform: rotate(-15deg) scale(1) } }
@keyframes sn2-canker { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(10deg) } 75% { transform: translateX(-3px) rotate(-10deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes sn2-petal { 0% { transform: translateY(0) rotate(0deg); opacity: 1 } 50% { transform: translateY(30vh) rotate(180deg); opacity: 0.5 } 100% { transform: translateY(60vh) rotate(360deg); opacity: 0 } }
@keyframes sn2-breath { 0% { transform: translate(0,0) scale(1); opacity: 0.2 } 50% { transform: translate(-10px,-10px) scale(1.5); opacity: 0.6 } 100% { transform: translate(0,0) scale(1); opacity: 0.2 } }
@keyframes sn2-veil { 0% { opacity: 0.3 } 50% { opacity: 0.5 } 100% { opacity: 0.3 } }

.scn-sonnet-c {
  background: 
    linear-gradient(180deg, #3a3c4a 0%, #4a4c5a 30%, #6a6c7a 100%),
    repeating-linear-gradient(90deg, transparent, rgba(255,255,255,0.03) 2px, transparent 4px);
  position: relative; overflow: hidden;
}
.scn-sonnet-c .sky-storm {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2c3a 0%, #4a4c5a 100%);
  animation: sn3-sky 4s ease-in-out infinite alternate;
}
.scn-sonnet-c .hills {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-sonnet-c .muse-figure {
  position: absolute; bottom: 25%; left: 35%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sn3-figure 3s ease-in-out infinite;
}
.scn-sonnet-c .lyre {
  position: absolute; bottom: 35%; left: 40%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 40%, #d0b090 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: sn3-lyre 5s ease-in-out infinite;
}
.scn-sonnet-c .rain-streak-a {
  position: absolute; top: 0; left: 20%; width: 2px; height: 80vh;
  background: linear-gradient(180deg, rgba(200,210,230,0.2) 0%, rgba(200,210,230,0.5) 50%, transparent 100%);
  animation: sn3-rain 0.8s linear infinite;
}
.scn-sonnet-c .rain-streak-b {
  position: absolute; top: 0; right: 30%; width: 2px; height: 80vh;
  background: linear-gradient(180deg, rgba(200,210,230,0.3) 0%, rgba(200,210,230,0.6) 50%, transparent 100%);
  animation: sn3-rain 0.6s linear infinite;
}
.scn-sonnet-c .storm-cloud {
  position: absolute; top: 10%; left: 10%; width: 120px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, #4a4c5a 0%, #2a2c3a 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: sn3-cloud 20s linear infinite;
}
.scn-sonnet-c .lightning-flash {
  position: absolute; top: 5%; left: 50%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #fff 0%, #ffd 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 10px rgba(255,255,200,0.3);
  animation: sn3-flash 4s ease-in-out infinite;
}
@keyframes sn3-sky { 0% { background-position: 0 0; } 50% { background-position: 0 10px; } 100% { background-position: 0 0; } }
@keyframes sn3-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sn3-lyre { 0% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(25deg) scale(1.05); } 100% { transform: rotate(20deg) scale(1); } }
@keyframes sn3-rain { 0% { transform: translateY(-100%); opacity: 0; } 30% { opacity: 1; } 100% { transform: translateY(100vh); opacity: 0; } }
@keyframes sn3-cloud { 0% { transform: translateX(-100px); } 100% { transform: translateX(120vw); } }
@keyframes sn3-flash { 0% { opacity: 0; } 5% { opacity: 1; } 10% { opacity: 0; } 100% { opacity: 0; } }

.scn-sonnet-c-part2 {
  background: 
    linear-gradient(180deg, #2e3a4a 0%, #4a5a6a 40%, #6a7a8a 100%),
    radial-gradient(ellipse at 20% 80%, rgba(200,220,240,0.2) 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-sonnet-c-part2 .sky-defiant {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1e2a3a 0%, #3a4a5a 100%);
  animation: sn4-sky 6s ease-in-out infinite alternate;
}
.scn-sonnet-c-part2 .rocks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-sonnet-c-part2 .figure-defiant {
  position: absolute; bottom: 30%; left: 30%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sn4-figure 2s ease-in-out infinite;
}
.scn-sonnet-c-part2 .scythe-broken {
  position: absolute; bottom: 36%; left: 45%; width: 40px; height: 6px;
  background: linear-gradient(90deg, #c0b090 0%, #908070 100%);
  border-radius: 2px;
  transform: rotate(-45deg);
  animation: sn4-scythe 3s ease-in-out infinite;
}
.scn-sonnet-c-part2 .hourglass {
  position: absolute; bottom: 38%; right: 20%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 30%, #d0c0a0 0%, #a08860 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: sn4-hourglass 5s ease-in-out infinite;
}
.scn-sonnet-c-part2 .fame-wings {
  position: absolute; bottom: 40%; left: 20%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(220,200,180,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: sn4-wings 2s ease-in-out infinite alternate;
}
.scn-sonnet-c-part2 .rays {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,255,220,0.15) 0%, transparent 60%);
  animation: sn4-rays 4s ease-in-out infinite alternate;
}
.scn-sonnet-c-part2 .sand-fall {
  position: absolute; bottom: 30%; right: 25%; width: 4px; height: 60px;
  background: linear-gradient(180deg, rgba(200,180,140,0.6) 0%, transparent 100%);
  border-radius: 2px;
  animation: sn4-sand 1s linear infinite;
}
@keyframes sn4-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes sn4-figure { 0% { transform: translateX(0) rotate(-2deg) scale(1) } 50% { transform: translateX(4px) rotate(2deg) scale(1.02) } 100% { transform: translateX(0) rotate(-2deg) scale(1) } }
@keyframes sn4-scythe { 0% { transform: rotate(-45deg) translateX(0) } 50% { transform: rotate(-35deg) translateX(5px) } 100% { transform: rotate(-45deg) translateX(0) } }
@keyframes sn4-hourglass { 0% { transform: rotate(15deg) scale(1) } 50% { transform: rotate(20deg) scale(0.95) } 100% { transform: rotate(15deg) scale(1) } }
@keyframes sn4-wings { 0% { transform: scaleY(1) translateX(0); opacity: 0.3 } 50% { transform: scaleY(1.3) translateX(5px); opacity: 0.7 } 100% { transform: scaleY(1) translateX(0); opacity: 0.3 } }
@keyframes sn4-rays { 0% { opacity: 0.2 } 50% { opacity: 0.5 } 100% { opacity: 0.2 } }
@keyframes sn4-sand { 0% { transform: translateY(-100%); opacity: 1 } 100% { transform: translateY(100%); opacity: 0 } }

/* buried-body-shame */
.scn-buried-body-shame {
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%), radial-gradient(ellipse at 50% 85%, #3a2a22 0%, transparent 70%);
}
.scn-buried-body-shame .bg-deep {
  position: absolute; inset: 0; background: rgba(10,6,4,.4);
  animation: bbs-pulse 12s ease-in-out infinite;
}
.scn-buried-body-shame .bg-mid {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(0deg, #1a1210 0%, #2a1e1a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: bbs-ground 24s ease-in-out infinite alternate;
}
.scn-buried-body-shame .grave-mound {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 14%;
  background: radial-gradient(ellipse at 50% 40%, #2a1a12 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 60% 60%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: bbs-heave 8s ease-in-out infinite;
}
.scn-buried-body-shame .figure-shame {
  position: absolute; bottom: 20%; left: 42%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bbs-tremble 3s ease-in-out infinite;
}
.scn-buried-body-shame .lantern {
  position: absolute; bottom: 28%; left: 50%; width: 8px; height: 10px;
  background: radial-gradient(circle, #c8643a 0%, #8c3a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #8c3a1a, 0 0 40px 12px rgba(140,58,26,.4);
  animation: bbs-flicker 2.5s ease-in-out infinite alternate;
}
.scn-buried-body-shame .shadow-mist {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 60%, rgba(0,0,0,.3) 0%, transparent 60%);
  filter: blur(10px);
  animation: bbs-drift 20s linear infinite;
}
@keyframes bbs-pulse { 0% { opacity: .7 } 50% { opacity: .95 } 100% { opacity: .75 } }
@keyframes bbs-ground { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.02) } 100% { transform: translateY(2px) scaleY(.98) } }
@keyframes bbs-heave { 0%,100% { transform: translateY(0) } 30% { transform: translateY(-3px) } 70% { transform: translateY(1px) } }
@keyframes bbs-tremble { 0%,100% { transform: rotate(0deg) } 20% { transform: rotate(-2deg) } 40% { transform: rotate(1deg) } 60% { transform: rotate(-1deg) } 80% { transform: rotate(2deg) } }
@keyframes bbs-flicker { 0% { opacity: .6; box-shadow: 0 0 15px 4px #8c3a1a,0 0 30px 8px rgba(140,58,26,.3) } 50% { opacity: 1; box-shadow: 0 0 25px 8px #c8643a,0 0 50px 16px rgba(200,100,58,.5) } 100% { opacity: .7; box-shadow: 0 0 18px 5px #8c3a1a,0 0 35px 10px rgba(140,58,26,.35) } }
@keyframes bbs-drift { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }

/* yellow-leaves-boughs */
.scn-yellow-leaves-boughs {
  background: linear-gradient(180deg, #f7a440 0%, #c44b6b 30%, #2b1a3e 100%), radial-gradient(ellipse at 50% 100%, #2b1a3e 40%, transparent 70%);
}
.scn-yellow-leaves-boughs .sky-dusk {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c44b6b 0%, #f7a440 50%, transparent 100%);
  animation: ylb-sky 15s ease-in-out infinite alternate;
}
.scn-yellow-leaves-boughs .sunset-sun {
  position: absolute; bottom: 28%; left: 25%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fae06a 0%, #f7a440 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #f7a440, 0 0 120px 40px rgba(247,164,64,.3);
  animation: ylb-sun 10s ease-in-out infinite;
}
.scn-yellow-leaves-boughs .ground-dusk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2b1a3e 0%, #1a122a 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-yellow-leaves-boughs .tree-trunk {
  position: absolute; bottom: 20%; left: 48%; width: 12px; height: 65%;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 30%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 2px 0 6px rgba(0,0,0,.3);
  transform-origin: bottom center;
  animation: ylb-trunk-sway 12s ease-in-out infinite;
}
.scn-yellow-leaves-boughs .bough-left {
  position: absolute; bottom: 50%; left: 38%; width: 40px; height: 10px;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 100%);
  border-radius: 50% 20% 20% 50% / 80% 40% 40% 80%;
  transform-origin: right center;
  animation: ylb-bough-sway 8s ease-in-out infinite alternate;
}
.scn-yellow-leaves-boughs .bough-right {
  position: absolute; bottom: 55%; left: 55%; width: 45px; height: 8px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 50% 50% 20% / 40% 80% 80% 40%;
  transform-origin: left center;
  animation: ylb-bough-sway 9s ease-in-out infinite alternate-reverse;
}
.scn-yellow-leaves-boughs .leaves-few {
  position: absolute; bottom: 65%; left: 42%; width: 12px; height: 12px;
  background: radial-gradient(circle, #e8c84a 0%, #b88828 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #e8c84a;
  animation: ylb-leaf-drift 6s ease-in-out infinite;
}
@keyframes ylb-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes ylb-sun { 0%,100% { transform: translateY(0) scale(1); opacity: .9 } 50% { transform: translateY(-8px) scale(1.1); opacity: 1 } }
@keyframes ylb-trunk-sway { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } }
@keyframes ylb-bough-sway { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes ylb-leaf-drift { 0%,100% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(5px,-8px) rotate(15deg) } 50% { transform: translate(12px,-2px) rotate(-10deg) } 75% { transform: translate(8px,4px) rotate(5deg) } }

/* fire-ashes-love */
.scn-fire-ashes-love {
  background: linear-gradient(180deg, #2b1a0e 0%, #1a0f08 100%), radial-gradient(ellipse at 50% 80%, #3a2518 0%, transparent 70%);
}
.scn-fire-ashes-love .room-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20,10,5,.6) 0%, transparent 50%);
  animation: fal-room 14s ease-in-out infinite alternate;
}
.scn-fire-ashes-love .fire-glow {
  position: absolute; bottom: 5%; left: 20%; right: 20%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, #8c5020 0%, #3a2010 40%, transparent 80%);
  filter: blur(12px);
  animation: fal-glow-pulse 4s ease-in-out infinite alternate;
}
.scn-fire-ashes-love .logs {
  position: absolute; bottom: 6%; left: 35%; width: 30%; height: 20px;
  background: linear-gradient(90deg, #2a1a0a 0%, #4a3a1a 30%, #2a1a0a 100%);
  border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 -4px 10px rgba(140,80,32,.4);
  animation: fal-logs-rest 6s ease-in-out infinite;
}
.scn-fire-ashes-love .flames {
  position: absolute; bottom: 10%; left: 40%; width: 20%; height: 35px;
  background: linear-gradient(0deg, #c87030 0%, #e8a040 30%, #f0c050 60%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  filter: blur(2px);
  animation: fal-flame-flicker 1.5s ease-in-out infinite alternate;
}
.scn-fire-ashes-love .ashes {
  position: absolute; bottom: 4%; left: 30%; width: 40%; height: 8px;
  background: radial-gradient(ellipse, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: fal-ash-settle 20s linear infinite;
}
.scn-fire-ashes-love .figure-profile {
  position: absolute; bottom: 12%; left: 18%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0f08 100%);
  border-radius: 40% 50% 30% 40% / 60% 50% 40% 50%;
  transform-origin: bottom left;
  animation: fal-figure-breathe 5s ease-in-out infinite;
}
.scn-fire-ashes-love .spark {
  position: absolute; bottom: 20%; left: 45%; width: 4px; height: 4px;
  background: radial-gradient(circle, #f0c050 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #f0c050;
  animation: fal-spark-drift 3s ease-in-out infinite;
}
@keyframes fal-room { 0% { opacity: .5 } 50% { opacity: .7 } 100% { opacity: .4 } }
@keyframes fal-glow-pulse { 0% { opacity: .6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: .7; transform: scale(.98) } }
@keyframes fal-logs-rest { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes fal-flame-flicker { 0% { transform: scaleY(1) translateY(0); opacity: .7 } 25% { transform: scaleY(1.2) translateY(-2px); opacity: .9 } 50% { transform: scaleY(.9) translateY(1px); opacity: .8 } 75% { transform: scaleY(1.1) translateY(-1px); opacity: 1 } 100% { transform: scaleY(1) translateY(0); opacity: .7 } }
@keyframes fal-ash-settle { 0% { transform: translateY(0) } 50% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes fal-figure-breathe { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } }
@keyframes fal-spark-drift { 0%,100% { transform: translate(0,0) scale(0.8); opacity: .3 } 50% { transform: translate(3px,-10px) scale(1.2); opacity: 1 } }

/* fell-arrest */
.scn-fell-arrest {
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%), radial-gradient(ellipse at 50% 0%, #5a6a7a 0%, transparent 70%);
}
.scn-fell-arrest .sky-overcast {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 50%, transparent 100%);
  animation: far-sky-roll 30s linear infinite;
}
.scn-fell-arrest .ground-arrest {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a2a2a 0%, #2a3a4a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-fell-arrest .prison-wall {
  position: absolute; bottom: 15%; left: 15%; width: 70%; height: 70%;
  background: linear-gradient(90deg, #3a3a3a 0%, #4a4a4a 50%, #3a3a3a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
}
.scn-fell-arrest .bars {
  position: absolute; bottom: 15%; left: 30%; width: 6px; height: 70%;
  background: linear-gradient(0deg, #5a5a5a 0%, #7a7a7a 50%, #5a5a5a 100%);
  border-radius: 4px;
  box-shadow: 2px 0 4px rgba(0,0,0,.4);
  animation: far-bars-rise 6s ease-in-out infinite alternate;
}
.scn-fell-arrest .figure-bound {
  position: absolute; bottom: 15%; left: 40%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: far-figure-tilt 4s ease-in-out infinite;
}
.scn-fell-arrest .chain-link {
  position: absolute; bottom: 20%; left: 35%; width: 10px; height: 20px;
  background: transparent;
  border: 2px solid #5a5a5a;
  border-radius: 30%;
  animation: far-chain-sway 3s ease-in-out infinite;
  box-shadow: 0 0 4px rgba(0,0,0,.4);
}
@keyframes far-sky-roll { 0% { background-position: 0 0 } 100% { background-position: 100vw 0 } }
@keyframes far-bars-rise { 0% { transform: translateY(0); opacity: .8 } 50% { transform: translateY(-10px); opacity: 1 } 100% { transform: translateY(5px); opacity: .9 } }
@keyframes far-figure-tilt { 0%,100% { transform: rotate(0deg) } 30% { transform: rotate(-3deg) } 60% { transform: rotate(2deg) } }
@keyframes far-chain-sway { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(10deg) } 50% { transform: rotate(-8deg) } 75% { transform: rotate(6deg) } }

.scn-leave-love-alone {
  background: linear-gradient(135deg, #2a1e14 0%, #170f0a 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 60%);
}
.scn-leave-love-alone .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a100a 0%, #2a1e14 30%, #170f0a 100%); opacity: 0.8; animation: lla-room 14s ease-in-out infinite alternate;
}
.scn-leave-love-alone .window-shape {
  position: absolute; left: 10%; top: 12%; width: 20%; height: 40%; background: radial-gradient(ellipse at 50% 30%, rgba(255,180,100,0.15) 0%, transparent 70%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 20px 4px rgba(255,180,100,0.1); animation: lla-window 20s ease-in-out infinite;
}
.scn-leave-love-alone .chair {
  position: absolute; bottom: 18%; left: 30%; width: 16%; height: 28%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e06 100%); border-radius: 10% 10% 40% 40% / 20% 20% 40% 40%; transform: rotate(2deg); box-shadow: -4px 0 8px rgba(0,0,0,0.5); animation: lla-chair 8s ease-in-out infinite;
}
.scn-leave-love-alone .figure-sit {
  position: absolute; bottom: 22%; left: 34%; width: 10%; height: 18%; background: linear-gradient(180deg, #0c0806 0%, #1a0e0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lla-figure 6s ease-in-out infinite;
}
.scn-leave-love-alone .lamp-glow {
  position: absolute; bottom: 52%; right: 28%; width: 6%; height: 8%; background: radial-gradient(circle, #d4944a 0%, #7a4a1a 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 15px rgba(212,148,74,0.4); animation: lla-lamp 4s ease-in-out infinite alternate;
}
.scn-leave-love-alone .bookshelf {
  position: absolute; right: 8%; top: 20%; width: 12%; height: 50%; background: repeating-linear-gradient(180deg, #2a1a0e 0px, #2a1a0e 6px, #1a0e06 6px, #1a0e06 12px); border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,0.6); animation: lla-shelf 12s linear infinite;
}
.scn-leave-love-alone .dust {
  position: absolute; top: 30%; left: 20%; width: 2px; height: 2px; background: rgba(200,180,140,0.3); border-radius: 50%; box-shadow: 10px 20px 0 0 rgba(200,180,140,0.2), 30px -10px 0 0 rgba(200,180,140,0.25), -20px 15px 0 0 rgba(200,180,140,0.15); animation: lla-dust 18s linear infinite;
}
.scn-leave-love-alone .shadow-strip {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.8) 100%); animation: lla-shadow 10s ease-in-out infinite alternate;
}
@keyframes lla-room { 0%,100% { opacity: 0.8; } 50% { opacity: 0.6; } }
@keyframes lla-window { 0%,100% { opacity: 0.3; transform: scaleY(0.98); } 50% { opacity: 0.5; transform: scaleY(1.02); } }
@keyframes lla-chair { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(1.5deg) translateY(-3px); } }
@keyframes lla-figure { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 75% { transform: rotate(-1deg) translateY(-1px); } }
@keyframes lla-lamp { 0% { box-shadow: 0 0 20px 8px rgba(212,148,74,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 40px 20px rgba(212,148,74,0.6); opacity: 1; } 100% { box-shadow: 0 0 25px 10px rgba(212,148,74,0.4); opacity: 0.9; } }
@keyframes lla-shelf { 0% { background-position: 0 0; } 100% { background-position: 0 12px; } }
@keyframes lla-dust { 0% { transform: translate(0,0); opacity: 0.2; } 50% { transform: translate(10px,-20px); opacity: 0.5; } 100% { transform: translate(20px,-40px); opacity: 0; } }
@keyframes lla-shadow { 0% { opacity: 0.7; } 100% { opacity: 0.9; } }

.scn-infection-grace {
  background: linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 40%, #3a4a5a 100%), radial-gradient(ellipse at 50% 0%, #6a7a8a 0%, transparent 70%);
}
.scn-infection-grace .sky-overcast {
  position: absolute; inset: 0; background: linear-gradient(180deg, #5a6a7a 0%, #6a7a8a 40%, #4a5a6a 100%); animation: ig-sky 20s ease-in-out infinite alternate;
}
.scn-infection-grace .ground-mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, transparent 0%, #2a3a3a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; animation: ig-mist 15s ease-in-out infinite;
}
.scn-infection-grace .figure-stand {
  position: absolute; bottom: 22%; left: 40%; width: 8%; height: 20%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ig-figure 7s ease-in-out infinite;
}
.scn-infection-grace .halo-grace {
  position: absolute; bottom: 35%; left: 38%; width: 12%; height: 12%; background: radial-gradient(circle, rgba(255,220,150,0.3) 0%, transparent 70%); border-radius: 50%; animation: ig-halo 9s ease-in-out infinite;
}
.scn-infection-grace .dark-influence {
  position: absolute; bottom: 18%; right: 25%; width: 10%; height: 14%; background: radial-gradient(ellipse 60% 80% at 50% 50%, #1a1a1a 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: ig-dark 12s ease-in-out infinite alternate;
}
.scn-infection-grace .tree-trunk {
  position: absolute; bottom: 20%; left: 60%; width: 3%; height: 25%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 20%; transform-origin: bottom center; animation: ig-trunk 6s ease-in-out infinite;
}
.scn-infection-grace .tree-canopy {
  position: absolute; bottom: 40%; left: 57%; width: 8%; height: 10%; background: radial-gradient(ellipse at 50% 50%, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50%; box-shadow: inset 0 0 10px #0a1a0a; animation: ig-canopy 8s ease-in-out infinite;
}
.scn-infection-grace .cloud-c {
  position: absolute; top: 10%; left: 5%; width: 18%; height: 8%; background: rgba(180,190,200,0.4); border-radius: 50%; filter: blur(8px); animation: ig-cloud-c 35s linear infinite;
}
.scn-infection-grace .cloud-d {
  position: absolute; top: 18%; right: 10%; width: 14%; height: 6%; background: rgba(200,210,220,0.3); border-radius: 50%; filter: blur(6px); animation: ig-cloud-d 45s linear infinite reverse;
}
@keyframes ig-sky { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }
@keyframes ig-mist { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes ig-figure { 0%,100% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(2deg) translateY(-2px); } 70% { transform: rotate(-1deg) translateY(-1px); } }
@keyframes ig-halo { 0%,100% { opacity: 0.3; } 50% { opacity: 0.6; } }
@keyframes ig-dark { 0% { transform: scale(1) translateX(0); opacity: 0.5; } 50% { transform: scale(1.1) translateX(-4px); opacity: 0.7; } 100% { transform: scale(0.95) translateX(2px); opacity: 0.4; } }
@keyframes ig-trunk { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } }
@keyframes ig-canopy { 0%,100% { transform: scale(1); } 50% { transform: scale(1.03); } }
@keyframes ig-cloud-c { 0% { transform: translateX(-20px); } 100% { transform: translateX(110vw); } }
@keyframes ig-cloud-d { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-nature-bankrupt {
  background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 50%, #3a4a3a 100%), radial-gradient(ellipse at 50% 100%, #5a6a5a 0%, transparent 60%);
}
.scn-nature-bankrupt .field-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #6a7a6a 0%, #5a6a5a 30%, #4a5a4a 100%); animation: nb-field 20s ease-in-out infinite alternate;
}
.scn-nature-bankrupt .barren-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.3); animation: nb-ground 14s ease-in-out infinite;
}
.scn-nature-bankrupt .figure-stoic {
  position: absolute; bottom: 28%; left: 45%; width: 8%; height: 20%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: nb-figure 6s ease-in-out infinite;
}
.scn-nature-bankrupt .rose {
  position: absolute; bottom: 22%; left: 38%; width: 4%; height: 8%; background: radial-gradient(ellipse at 50% 80%, #a0461a 0%, #5e1a1d 60%, transparent 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; transform-origin: bottom center; animation: nb-rose 5s ease-in-out infinite;
}
.scn-nature-bankrupt .tree-dead {
  position: absolute; bottom: 18%; right: 25%; width: 6%; height: 30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%); border-radius: 20% 80% 20% 80% / 80% 20% 80% 20%; box-shadow: 0 0 8px rgba(0,0,0,0.5); animation: nb-tree 10s ease-in-out infinite;
}
.scn-nature-bankrupt .cloud-e {
  position: absolute; top: 12%; left: 10%; width: 20%; height: 10%; background: rgba(200,210,200,0.3); border-radius: 50%; filter: blur(10px); animation: nb-cloud-e 40s linear infinite;
}
.scn-nature-bankrupt .cloud-f {
  position: absolute; top: 20%; right: 5%; width: 15%; height: 8%; background: rgba(180,190,180,0.2); border-radius: 50%; filter: blur(8px); animation: nb-cloud-f 50s linear infinite reverse;
}
@keyframes nb-field { 0%,100% { opacity: 0.6; } 50% { opacity: 0.8; } }
@keyframes nb-ground { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.01); } }
@keyframes nb-figure { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(1.5deg) translateY(-2px); } 75% { transform: rotate(-1deg) translateY(-1px); } }
@keyframes nb-rose { 0%,100% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.05); } }
@keyframes nb-tree { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes nb-cloud-e { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }
@keyframes nb-cloud-f { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-map-days-outworn {
  background: linear-gradient(180deg, #7a6a5a 0%, #6a5a4a 40%, #5a4a3a 100%), radial-gradient(ellipse at 50% 0%, #8a7a6a 0%, transparent 60%);
}
.scn-map-days-outworn .sky-sepia {
  position: absolute; inset: 0; background: linear-gradient(180deg, #8a7a6a 0%, #7a6a5a 40%, #6a5a4a 100%); animation: mdo-sky 18s ease-in-out infinite alternate;
}
.scn-map-days-outworn .horizon-fade {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, transparent 0%, #5a4a3a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; animation: mdo-horizon 16s ease-in-out infinite;
}
.scn-map-days-outworn .face-profile {
  position: absolute; bottom: 30%; left: 30%; width: 10%; height: 22%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 50% 30% 20% 40% / 60% 40% 30% 50%; transform-origin: bottom center; animation: mdo-face 8s ease-in-out infinite;
}
.scn-map-days-outworn .hand-touch {
  position: absolute; bottom: 35%; left: 41%; width: 6%; height: 8%; background: radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: left center; animation: mdo-hand 10s ease-in-out infinite;
}
.scn-map-days-outworn .flower-wilted {
  position: absolute; bottom: 20%; right: 25%; width: 5%; height: 10%; background: radial-gradient(ellipse at 50% 80%, #b87878 0%, #5e1a1d 60%, transparent 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; transform: rotate(-20deg); transform-origin: bottom center; animation: mdo-flower 6s ease-in-out infinite;
}
.scn-map-days-outworn .map-lines {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 20%; background: repeating-linear-gradient(45deg, transparent 0px, transparent 4px, rgba(80,60,40,0.2) 4px, rgba(80,60,40,0.2) 5px); border-radius: 10%; animation: mdo-map 20s linear infinite;
}
.scn-map-days-outworn .cloud-g {
  position: absolute; top: 12%; left: 15%; width: 16%; height: 6%; background: rgba(180,170,160,0.3); border-radius: 50%; filter: blur(8px); animation: mdo-cloud 35s linear infinite;
}
@keyframes mdo-sky { 0%,100% { opacity: 0.7; } 50% { opacity: 0.9; } }
@keyframes mdo-horizon { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes mdo-face { 0%,100% { transform: rotate(0deg) scaleY(1); } 30% { transform: rotate(2deg) scaleY(1.01); } 70% { transform: rotate(-1deg) scaleY(0.99); } }
@keyframes mdo-hand { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } }
@keyframes mdo-flower { 0%,100% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg) scaleY(1.05); } }
@keyframes mdo-map { 0% { background-position: 0 0; } 100% { background-position: 0 20px; } }
@keyframes mdo-cloud { 0% { transform: translateX(-20px); } 100% { transform: translateX(110vw); } }

/* Scene 1: sonnet-cxlii-first – tense dim interior */
.scn-sonnet-cxlii-first {
  background: linear-gradient(180deg, #2c1e1a 0%, #1a1210 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a22 0%, transparent 60%);
}
.scn-sonnet-cxlii-first .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1f1c 0%, #1a1210 100%);
  animation: c1-bg 6s ease-in-out infinite alternate;
}
.scn-sonnet-cxlii-first .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #3c2a22 0%, #2a1a12 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-sonnet-cxlii-first .desk {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 12%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-sonnet-cxlii-first .candle {
  position: absolute; bottom: 32%; left: 30%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #e8c8a0 0%, #c8a070 100%);
  border-radius: 2px;
  transform: rotate(2deg);
}
.scn-sonnet-cxlii-first .flame {
  position: absolute; bottom: 35%; left: 30%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 6px rgba(255,160,64,0.5), 0 0 24px 12px rgba(255,160,64,0.2);
  animation: c1-flame 0.3s ease-in-out infinite alternate;
}
.scn-sonnet-cxlii-first .figure-a {
  position: absolute; bottom: 18%; left: 22%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: c1-fig 2s ease-in-out infinite;
}
.scn-sonnet-cxlii-first .figure-b {
  position: absolute; bottom: 18%; right: 20%; width: 28px; height: 76px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: c1-fig 2.3s ease-in-out infinite reverse;
}
@keyframes c1-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes c1-flame {
  0% { transform: scale(1, 1) rotate(-3deg); opacity: 0.9; }
  50% { transform: scale(1.15, 1.25) rotate(2deg); opacity: 1; }
  100% { transform: scale(0.95, 1.05) rotate(-1deg); opacity: 0.85; }
}
@keyframes c1-fig {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  30% { transform: translateX(-4px) translateY(-2px) rotate(3deg); }
  60% { transform: translateX(3px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(1deg); }
}

/* Scene 2: sonnet-cxlii-second – tense dim interior doorway */
.scn-sonnet-cxlii-second {
  background: linear-gradient(180deg, #2e221e 0%, #1c1412 100%),
              radial-gradient(ellipse at 40% 60%, #3e2e26 0%, transparent 70%);
}
.scn-sonnet-cxlii-second .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1f1c 0%, #1c1412 100%);
}
.scn-sonnet-cxlii-second .door {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 70%;
  background: linear-gradient(180deg, #4a342a 0%, #2a1e16 100%);
  border-radius: 50% 50% 10% 10% / 30% 30% 10% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  transform: scale(0.95);
}
.scn-sonnet-cxlii-second .figure {
  position: absolute; bottom: 20%; left: 35%; width: 36px; height: 90px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: c2-fig 3s ease-in-out infinite;
}
.scn-sonnet-cxlii-second .hand {
  position: absolute; bottom: 28%; left: 38%; width: 20px; height: 16px;
  background: linear-gradient(180deg, #2a1e16 0%, #1a1210 100%);
  border-radius: 0% 60% 40% 40% / 0% 50% 50% 50%;
  transform-origin: bottom right;
  animation: c2-hand 2s ease-in-out infinite;
}
.scn-sonnet-cxlii-second .heart {
  position: absolute; bottom: 32%; left: 42%; width: 18px; height: 16px;
  background: radial-gradient(circle, #702243 0%, #5e1a1d 70%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 16px 4px rgba(112,34,67,0.6);
  animation: c2-heart 1.5s ease-in-out infinite;
}
.scn-sonnet-cxlii-second .light {
  position: absolute; bottom: 40%; left: 30%; width: 30px; height: 40px;
  background: radial-gradient(circle, rgba(200,180,160,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: c2-light 4s ease-in-out infinite alternate;
}
@keyframes c2-fig {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(-2px) rotate(2deg); }
  70% { transform: translateX(1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes c2-hand {
  0% { transform: translate(0, 0) rotate(-5deg); }
  50% { transform: translate(2px, -1px) rotate(8deg); }
  100% { transform: translate(0, 0) rotate(-3deg); }
}
@keyframes c2-heart {
  0% { transform: scale(1); opacity: 0.9; }
  25% { transform: scale(1.1); opacity: 1; }
  50% { transform: scale(0.95); opacity: 0.85; }
  75% { transform: scale(1.05); opacity: 0.95; }
  100% { transform: scale(1); opacity: 0.9; }
}
@keyframes c2-light {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0.5; transform: scale(0.9); }
}

/* Scene 3: item-feathered-creature – funny dim interior chase */
.scn-item-feathered-creature {
  background: linear-gradient(180deg, #4a3828 0%, #2c2018 100%),
              radial-gradient(ellipse at 50% 90%, #5a4430 0%, transparent 60%);
}
.scn-item-feathered-creature .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3d2d1f 0%, #2c2018 100%);
}
.scn-item-feathered-creature .table {
  position: absolute; bottom: 22%; left: 5%; width: 90%; height: 14%;
  background: linear-gradient(180deg, #6a5238 0%, #4a3422 100%);
  border-radius: 6px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-item-feathered-creature .housewife {
  position: absolute; bottom: 18%; left: 10%; width: 45px; height: 100px;
  background: linear-gradient(180deg, #2a1e16 0%, #1a1210 100%);
  border-radius: 40% 30% 50% 50% / 60% 50% 40% 50%;
  transform-origin: bottom center;
  animation: fc-wife 1s ease-in-out infinite;
}
.scn-item-feathered-creature .bird {
  position: absolute; bottom: 45%; left: 55%; width: 30px; height: 22px;
  background: radial-gradient(ellipse at 60% 40%, #d4a060 0%, #a07030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: fc-bird 0.8s ease-in-out infinite alternate;
}
.scn-item-feathered-creature .baby {
  position: absolute; bottom: 8%; left: 35%; width: 24px; height: 20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: fc-baby 2s ease-in-out infinite;
}
.scn-item-feathered-creature .basket {
  position: absolute; bottom: 18%; right: 10%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #7a6238 0%, #5a4222 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  transform: rotate(5deg);
  animation: fc-basket 3s ease-in-out infinite;
}
.scn-item-feathered-creature .feather-a {
  position: absolute; bottom: 50%; left: 40%; width: 6px; height: 12px;
  background: linear-gradient(180deg, #e6c8a0 0%, #c8a070 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  filter: blur(0.5px);
  animation: fc-feather 4s ease-in-out infinite;
}
.scn-item-feathered-creature .feather-b {
  position: absolute; bottom: 45%; right: 35%; width: 5px; height: 10px;
  background: linear-gradient(180deg, #e6c8a0 0%, #c8a070 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  filter: blur(0.5px);
  animation: fc-feather 5s ease-in-out infinite 2s;
}
@keyframes fc-wife {
  0% { transform: translateX(0) rotate(-5deg); }
  25% { transform: translateX(12px) rotate(5deg); }
  50% { transform: translateX(6px) rotate(-8deg); }
  75% { transform: translateX(18px) rotate(3deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes fc-bird {
  0% { transform: translateY(0) rotate(-10deg); }
  50% { transform: translateY(-8px) rotate(15deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes fc-baby {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes fc-basket {
  0% { transform: rotate(5deg) scale(1); }
  50% { transform: rotate(8deg) scale(1.03); }
  100% { transform: rotate(5deg) scale(1); }
}
@keyframes fc-feather {
  0% { transform: translate(0, 0) rotate(0); opacity: 0.7; }
  50% { transform: translate(-10px, -15px) rotate(90deg); opacity: 0.3; }
  100% { transform: translate(-20px, -5px) rotate(180deg); opacity: 0.9; }
}

/* Scene 4: sonnet-cxliii-second – calm dim interior mother & child */
.scn-sonnet-cxliii-second {
  background: linear-gradient(180deg, #3a2a22 0%, #241a16 100%),
              radial-gradient(ellipse at 50% 80%, #4a342a 0%, transparent 60%);
}
.scn-sonnet-cxliii-second .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1f1c 0%, #241a16 100%);
}
.scn-sonnet-cxliii-second .window {
  position: absolute; top: 5%; left: 10%; width: 35%; height: 30%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e16 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 10px rgba(100,80,60,0.4);
  animation: c3-window 8s ease-in-out infinite alternate;
}
.scn-sonnet-cxliii-second .mother {
  position: absolute; bottom: 20%; left: 25%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: c3-mother 4s ease-in-out infinite;
}
.scn-sonnet-cxliii-second .child {
  position: absolute; bottom: 22%; left: 28%; width: 20px; height: 20px;
  background: linear-gradient(180deg, #2a1e16 0%, #1a1210 100%);
  border-radius: 50%;
  animation: c3-child 4s ease-in-out infinite reverse;
}
.scn-sonnet-cxliii-second .candle {
  position: absolute; bottom: 35%; left: 45%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #e8c8a0 0%, #c8a070 100%);
  border-radius: 2px;
  box-shadow: 0 0 6px 2px rgba(200,160,112,0.4);
  animation: c3-candle 6s ease-in-out infinite;
}
.scn-sonnet-cxliii-second .curtain {
  position: absolute; top: 5%; right: 10%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e16 100%);
  border-radius: 0 0 30% 30% / 0 0 60% 60%;
  filter: blur(1px);
  animation: c3-curtain 12s ease-in-out infinite alternate;
}
@keyframes c3-window {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.02); }
  100% { opacity: 0.85; transform: scale(0.98); }
}
@keyframes c3-mother {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes c3-child {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(2px, -2px) scale(1.05); }
  100% { transform: translate(0, 0) scale(1); }
}
@keyframes c3-candle {
  0% { opacity: 0.9; transform: scale(1); }
  30% { opacity: 1; transform: scale(1.05); }
  70% { opacity: 0.85; transform: scale(0.95); }
  100% { opacity: 0.9; transform: scale(1); }
}
@keyframes c3-curtain {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-2px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}

.scn-sonnet-cxl-first {
  background:
    linear-gradient(180deg, #1c1626 0%, #2a1f33 40%, #3a2a3a 100%),
    radial-gradient(ellipse at 60% 80%, #4a3a4a 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-sonnet-cxl-first .wall-left {
  position: absolute; inset: 0 50% 0 0;
  background: linear-gradient(90deg, #2a1f33 0%, #1c1626 100%);
  animation: s1-wall-l 10s ease-in-out infinite alternate;
}
.scn-sonnet-cxl-first .wall-right {
  position: absolute; inset: 0 0 0 50%;
  background: linear-gradient(90deg, #1c1626 0%, #2a1f33 100%);
  animation: s1-wall-r 10s ease-in-out infinite alternate;
}
.scn-sonnet-cxl-first .floor {
  position: absolute; inset: 70% 0 0 0;
  background: linear-gradient(180deg, #3a2a3a 0%, #1c1626 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
}
.scn-sonnet-cxl-first .table {
  position: absolute; bottom: 20%; left: 40%; width: 40%; height: 8%;
  background: linear-gradient(0deg, #5a3a2a 0%, #4a2a1a 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: s1-table 8s ease-in-out infinite;
}
.scn-sonnet-cxl-first .figure {
  position: absolute; bottom: 28%; left: 52%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #1a141e 0%, #0e0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s1-figure 6s ease-in-out infinite;
}
.scn-sonnet-cxl-first .arm {
  position: absolute; bottom: 38%; left: 54%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #1a141e 0%, #0e0a12 100%);
  border-radius: 40% 60% 30% 70% / 50% 50% 30% 50%;
  transform: rotate(20deg); transform-origin: bottom left;
  animation: s1-arm 4s ease-in-out infinite alternate;
}
.scn-sonnet-cxl-first .candle {
  position: absolute; bottom: 28%; left: 45%; width: 3%; height: 20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 2px 2px 10% 10%;
}
.scn-sonnet-cxl-first .glow {
  position: absolute; bottom: 35%; left: 46%; width: 10%; height: 10%;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,160,64,0.4), 0 0 80px 40px rgba(255,160,64,0.2);
  animation: s1-glow 2s ease-in-out infinite alternate;
}
@keyframes s1-wall-l {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes s1-wall-r {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes s1-table {
  0% { transform: translateY(0); }
  25% { transform: translateY(-2px); }
  50% { transform: translateY(1px); }
  75% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes s1-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes s1-arm {
  0% { transform: rotate(15deg); }
  50% { transform: rotate(25deg); }
  100% { transform: rotate(18deg); }
}
@keyframes s1-glow {
  0% { transform: scale(0.95); opacity: 0.7; box-shadow: 0 0 30px 15px rgba(255,160,64,0.3); }
  50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 60px 30px rgba(255,160,64,0.6); }
  100% { transform: scale(1); opacity: 0.85; box-shadow: 0 0 40px 20px rgba(255,160,64,0.4); }
}

.scn-sonnet-cxl-second {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2030 50%, #2e2630 100%),
    radial-gradient(ellipse at 50% 40%, #3a2a3a 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-sonnet-cxl-second .head {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #1e1a22 0%, #12100e 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 40% 40%;
  animation: s2-head 5s ease-in-out infinite;
}
.scn-sonnet-cxl-second .torso {
  position: absolute; top: 45%; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #1e1a22 0%, #0e0c0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
}
.scn-sonnet-cxl-second .arm-left {
  position: absolute; top: 20%; left: 30%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #1e1a22 0%, #0e0c0e 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  transform: rotate(40deg); transform-origin: top left;
  animation: s2-arm-l 4s ease-in-out infinite alternate;
}
.scn-sonnet-cxl-second .arm-right {
  position: absolute; top: 20%; left: 60%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #1e1a22 0%, #0e0c0e 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  transform: rotate(-40deg); transform-origin: top left;
  animation: s2-arm-r 4s ease-in-out infinite alternate;
}
.scn-sonnet-cxl-second .mouth-open {
  position: absolute; top: 30%; left: 44%; width: 12%; height: 6%;
  background: #0a080a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s2-mouth 3s ease-in-out infinite;
}
.scn-sonnet-cxl-second .chaos-line {
  position: absolute; top: 12%; left: 10%; width: 80%; height: 2%;
  background: linear-gradient(90deg, #5e4a5e 0%, #8a6a8a 50%, #5e4a5e 100%);
  border-radius: 50%; filter: blur(2px);
  animation: s2-chaos1 12s linear infinite;
}
.scn-sonnet-cxl-second .chaos-line-2 {
  position: absolute; top: 18%; left: 20%; width: 60%; height: 1.5%;
  background: linear-gradient(90deg, #4a3a4a 0%, #6a5a6a 70%, #4a3a4a 100%);
  border-radius: 50%; filter: blur(2px);
  animation: s2-chaos2 15s linear infinite reverse;
}
@keyframes s2-head {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-2px) rotate(2deg); }
  40% { transform: translateY(1px) rotate(-1deg); }
  60% { transform: translateY(0) rotate(0deg); }
  80% { transform: translateY(2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes s2-arm-l {
  0% { transform: rotate(35deg); }
  50% { transform: rotate(50deg); }
  100% { transform: rotate(40deg); }
}
@keyframes s2-arm-r {
  0% { transform: rotate(-35deg); }
  50% { transform: rotate(-50deg); }
  100% { transform: rotate(-40deg); }
}
@keyframes s2-mouth {
  0% { transform: scaleY(1); }
  30% { transform: scaleY(0.5); }
  60% { transform: scaleY(1.5); }
  100% { transform: scaleY(1); }
}
@keyframes s2-chaos1 {
  0% { transform: translateX(-20px); opacity: 0.3; }
  25% { opacity: 0.7; }
  50% { transform: translateX(20px); opacity: 0.5; }
  75% { opacity: 0.8; }
  100% { transform: translateX(-20px); opacity: 0.3; }
}
@keyframes s2-chaos2 {
  0% { transform: translateX(10px); opacity: 0.2; }
  50% { transform: translateX(-10px); opacity: 0.6; }
  100% { transform: translateX(10px); opacity: 0.2; }
}

.scn-sonnet-cxli-first {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2030 40%, #2e2630 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a3a 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-sonnet-cxli-first .face-profile {
  position: absolute; left: 5%; bottom: 10%; width: 35%; height: 60%;
  background: linear-gradient(180deg, #1e1a22 0%, #0e0c0e 100%);
  border-radius: 50% 40% 30% 50% / 60% 50% 40% 50%;
  animation: s3-face 8s ease-in-out infinite alternate;
}
.scn-sonnet-cxli-first .eye {
  position: absolute; left: 15%; top: 28%; width: 10%; height: 10%;
  background: radial-gradient(circle, #f0e0c0 0%, #c8b080 40%, #1e1a22 60%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(200,176,128,0.4);
  animation: s3-eye 6s ease-in-out infinite;
}
.scn-sonnet-cxli-first .ear {
  position: absolute; left: 32%; top: 25%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #2a2030 0%, #1a1422 100%);
  border-radius: 40% 60% 50% 50% / 50% 60% 40% 50%;
  transform: rotate(-10deg);
  animation: s3-ear 10s ease-in-out infinite alternate;
}
.scn-sonnet-cxli-first .heart {
  position: absolute; left: 50%; top: 30%; width: 12%; height: 14%;
  background: #a0461a;
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(45deg);
  box-shadow: 0 0 20px 6px rgba(160,70,26,0.5);
  animation: s3-heart 4s ease-in-out infinite;
}
.scn-sonnet-cxli-first .hand {
  position: absolute; left: 40%; top: 50%; width: 8%; height: 12%;
  background: #1e1a22;
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(15deg);
  animation: s3-hand 5s ease-in-out infinite alternate;
}
.scn-sonnet-cxli-first .shadow-hint {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, #2a2030 100%);
  opacity: 0.6;
}
@keyframes s3-face {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes s3-eye {
  0% { transform: scaleY(1); opacity: 0.9; }
  25% { transform: scaleY(0.8); opacity: 1; }
  50% { transform: scaleY(1.1); opacity: 0.8; }
  75% { transform: scaleY(0.9); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.9; }
}
@keyframes s3-ear {
  0% { transform: rotate(-10deg) scale(1); }
  50% { transform: rotate(-8deg) scale(1.1); }
  100% { transform: rotate(-10deg) scale(1); }
}
@keyframes s3-heart {
  0% { transform: rotate(45deg) scale(1); opacity: 1; }
  25% { transform: rotate(50deg) scale(1.05); opacity: 0.9; }
  50% { transform: rotate(40deg) scale(1.1); opacity: 1; }
  75% { transform: rotate(48deg) scale(0.95); opacity: 0.95; }
  100% { transform: rotate(45deg) scale(1); opacity: 1; }
}
@keyframes s3-hand {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(20deg) translateY(-3px); }
  100% { transform: rotate(15deg) translateY(0); }
}

.scn-sonnet-cxli-second {
  background:
    linear-gradient(180deg, #1a1626 0%, #2a2030 50%, #1c1626 100%),
    radial-gradient(ellipse at 50% 70%, #2a2030 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-sonnet-cxli-second .ground {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 15%;
  background: linear-gradient(180deg, #2a2030 0%, #1a1626 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
.scn-sonnet-cxli-second .figure-kneel {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 55%;
  background: linear-gradient(180deg, #1e1a22 0%, #0e0c0e 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform: rotate(-5deg);
  animation: s4-figure 7s ease-in-out infinite;
}
.scn-sonnet-cxli-second .head-bowed {
  position: absolute; bottom: 55%; left: 35%; width: 20%; height: 22%;
  background: #1e1a22;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: s4-head 5s ease-in-out infinite alternate;
}
.scn-sonnet-cxli-second .heart-lock {
  position: absolute; bottom: 30%; left: 45%; width: 12%; height: 14%;
  background: #c8553d;
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(45deg);
  box-shadow: 0 0 12px 4px rgba(200,85,61,0.5);
  animation: s4-heart 4s ease-in-out infinite;
}
.scn-sonnet-cxli-second .chain {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 2%;
  background: linear-gradient(90deg, #7a6a5a 0%, #9a8a7a 30%, #7a6a5a 70%, #9a8a7a 100%);
  border-radius: 50%;
  animation: s4-chain 10s linear infinite;
}
.scn-sonnet-cxli-second .manacle-l {
  position: absolute; bottom: 22%; left: 28%; width: 8%; height: 6%;
  background: #9a8a7a;
  border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%;
  box-shadow: inset 0 0 4px #5a4a3a;
}
.scn-sonnet-cxli-second .manacle-r {
  position: absolute; bottom: 22%; left: 64%; width: 8%; height: 6%;
  background: #9a8a7a;
  border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%;
  box-shadow: inset 0 0 4px #5a4a3a;
}
@keyframes s4-figure {
  0% { transform: rotate(-5deg) translateY(0); }
  25% { transform: rotate(-3deg) translateY(-2px); }
  50% { transform: rotate(-6deg) translateY(1px); }
  75% { transform: rotate(-4deg) translateY(-1px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes s4-head {
  0% { transform: rotate(8deg); }
  50% { transform: rotate(12deg); }
  100% { transform: rotate(10deg); }
}
@keyframes s4-heart {
  0% { transform: rotate(45deg) scale(1); opacity: 1; }
  20% { transform: rotate(50deg) scale(1.05); opacity: 0.95; }
  40% { transform: rotate(40deg) scale(0.95); opacity: 1; }
  60% { transform: rotate(48deg) scale(1.1); opacity: 0.9; }
  80% { transform: rotate(42deg) scale(1); opacity: 1; }
  100% { transform: rotate(45deg) scale(1); opacity: 1; }
}
@keyframes s4-chain {
  0% { transform: translateX(-10px); opacity: 0.6; }
  25% { transform: translateX(10px); opacity: 0.8; }
  50% { transform: translateX(-5px); opacity: 0.7; }
  75% { transform: translateX(5px); opacity: 0.9; }
  100% { transform: translateX(-10px); opacity: 0.6; }
}

.scn-sonnet-cxlvi-first {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 50%, #2a2a3e 100%),
              radial-gradient(ellipse at 30% 70%, #2a2a3e 0%, transparent 60%);
}
.sc1-bg { position:absolute; inset:0; }
.sc1-wall { position:absolute; right:0; top:0; bottom:30%; width:40%; background:linear-gradient(90deg,#1e1e2e 0%,#2e2e3e 100%); box-shadow:inset -5px 0 15px rgba(0,0,0,.5); }
.sc1-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg,#0e0e1e 0%,#050510 100%); }
.sc1-window { position:absolute; top:20%; right:10%; width:50px; height:60px; background:radial-gradient(circle,#2a2a3e 0%,#1a1a2e 70%); border:2px solid #3a3a4e; border-radius:4px; box-shadow:0 0 10px 2px rgba(100,100,150,.2); animation:sc1-window 8s ease-in-out infinite alternate; }
.sc1-figure { position:absolute; bottom:28%; right:22%; width:18px; height:40px; background:linear-gradient(180deg,#0a0a1a 0%,#1a1a2e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:sc1-figure 4s ease-in-out infinite; }
.sc1-worm1, .sc1-worm2 { position:absolute; bottom:10%; left:20%; width:30px; height:6px; background:linear-gradient(90deg,#4a3a2a 0%,#3a2a1a 100%); border-radius:50%; filter:blur(1px); animation:sc1-worm 6s ease-in-out infinite; }
.sc1-worm2 { left:60%; animation-delay:-2.5s; width:20px; height:5px; }
@keyframes sc1-window { 0%{opacity:.6;box-shadow:0 0 5px 1px rgba(100,100,150,.1)} 50%{opacity:.9;box-shadow:0 0 15px 4px rgba(100,100,150,.4)} 100%{opacity:.7;box-shadow:0 0 8px 2px rgba(100,100,150,.2)} }
@keyframes sc1-figure { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes sc1-worm { 0%{transform:translateX(0) scaleX(1)} 50%{transform:translateX(10px) scaleX(.8)} 100%{transform:translateX(0) scaleX(1)} }

.scn-sonnet-cxlvi-second {
  background: linear-gradient(180deg, #050510 0%, #0a0a1a 50%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 60%, #1a1a2a 0%, transparent 70%);
}
.sc2-bg { position:absolute; inset:0; }
.sc2-frame { position:absolute; top:15%; left:35%; width:30%; height:70%; border:2px solid #3a3a4e; border-radius:50% 50% / 30%; background:transparent; box-shadow:0 0 10px rgba(100,100,150,.2); animation:sc2-frame 15s ease-in-out infinite alternate; }
.sc2-top { position:absolute; top:20%; left:40%; width:20%; height:25%; background:radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.1) 0%, transparent 70%); border-radius:50% 50% 0 0; border:1px solid #4a4a5a; }
.sc2-bottom { position:absolute; bottom:20%; left:40%; width:20%; height:25%; background:radial-gradient(ellipse at 50% 0%, rgba(255,255,255,0.05) 0%, transparent 70%); border-radius:0 0 50% 50%; border:1px solid #4a4a5a; }
.sc2-sand { position:absolute; top:25%; left:48.5%; width:3%; height:0%; background:linear-gradient(180deg,#6a5a3a 0%,#4a3a1a 100%); border-radius:20%; animation:sc2-sand 10s linear infinite; }
.sc2-death { position:absolute; bottom:30%; left:10%; width:30px; height:60px; background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(10deg); animation:sc2-death 8s ease-in-out infinite; }
.sc2-skull { position:absolute; bottom:35%; left:12%; width:20px; height:20px; background: radial-gradient(circle at 30% 40%, #050510 4px, #2a2a3a 4px), radial-gradient(circle at 70% 40%, #050510 4px, #2a2a3a 4px), linear-gradient(#2a2a3a 0%, #3a3a4a 100%); border-radius:50%; box-shadow:inset 0 -2px 0 #4a4a5a; animation:sc2-skull 6s ease-in-out infinite; }
@keyframes sc2-frame { 0%{transform:rotate(-2deg)} 50%{transform:rotate(2deg)} 100%{transform:rotate(-2deg)} }
@keyframes sc2-sand { 0%{opacity:0;top:25%;height:3%} 25%{opacity:1;top:30%;height:8%} 50%{top:40%;height:12%} 75%{top:55%;height:15%} 100%{opacity:0;top:75%;height:5%} }
@keyframes sc2-death { 0%{transform:translateY(0) rotate(10deg)} 50%{transform:translateY(-5px) rotate(5deg)} 100%{transform:translateY(0) rotate(10deg)} }
@keyframes sc2-skull { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.7} }

.scn-sonnet-cxlvii-first {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #0e0e20 100%),
              radial-gradient(ellipse at 20% 50%, #1a1a2e 0%, transparent 70%);
}
.sc3-bg { position:absolute; inset:0; }
.sc3-wall { position:absolute; left:0; top:0; bottom:30%; width:30%; background:linear-gradient(90deg,#1e1e2e 0%,#0e0e1e 100%); }
.sc3-bed { position:absolute; bottom:15%; left:10%; width:50%; height:20%; background:linear-gradient(180deg,#2a2a3a 0%,#1a1a2a 100%); border-radius:10% 10% 0 0; box-shadow:0 -5px 10px rgba(0,0,0,.5); }
.sc3-figure { position:absolute; bottom:18%; left:20%; width:20px; height:35px; background:linear-gradient(180deg,#0a0a1a 0%,#1a1a2e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:sc3-figure 4s ease-in-out infinite; }
.sc3-physician { position:absolute; bottom:28%; right:10%; width:18px; height:40px; background:linear-gradient(180deg,#1a1a2e 0%,#0a0a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform:rotate(-15deg); animation:sc3-phys 7s ease-in-out infinite; }
.sc3-candle { position:absolute; bottom:25%; left:40%; width:6px; height:20px; background:linear-gradient(180deg,#8a7a5a 0%,#4a3a1a 100%); border-radius:30% 30% 0 0; }
.sc3-glow { position:absolute; bottom:20%; left:38%; width:40px; height:40px; background:radial-gradient(circle, rgba(200,180,120,0.3) 0%, transparent 70%); border-radius:50%; animation:sc3-glow 3s ease-in-out infinite alternate; }
@keyframes sc3-figure { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(2px) rotate(1deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes sc3-phys { 0%{transform:translateX(0) rotate(-15deg)} 50%{transform:translateX(10px) rotate(-10deg)} 100%{transform:translateX(0) rotate(-15deg)} }
@keyframes sc3-glow { 0%{opacity:.5;transform:scale(.9)} 100%{opacity:1;transform:scale(1.1)} }

.scn-sonnet-cxlvii-second {
  background: linear-gradient(180deg, #05050f 0%, #0a0a1a 40%, #1a1a2a 100%),
              radial-gradient(ellipse at 80% 20%, #1a1a2a 0%, transparent 60%);
}
.sc4-bg { position:absolute; inset:0; }
.sc4-bars { position:absolute; top:0; bottom:0; left:0; right:0; background:repeating-linear-gradient(90deg, transparent 0%, transparent 20%, #2a2a3a 20%, #2a2a3a 22%, transparent 22%); }
.sc4-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg,#0e0e1e 0%,#050510 100%); }
.sc4-figure { position:absolute; bottom:20%; left:50%; width:24px; height:50px; background:linear-gradient(180deg,#1a1a2e 0%,#0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%); animation:sc4-figure 4s ease-in-out infinite; }
.sc4-swirl1, .sc4-swirl2 { position:absolute; top:30%; left:20%; width:60px; height:60px; border:1px solid rgba(100,100,150,0.2); border-radius:50%; animation:sc4-swirl 12s linear infinite; }
.sc4-swirl2 { left:60%; animation-delay:-6s; width:40px; height:40px; border-color:rgba(100,100,150,0.1); }
.sc4-light { position:absolute; top:10%; left:10%; width:20px; height:20px; background:radial-gradient(circle, rgba(200,180,120,0.1) 0%, transparent 70%); animation:sc4-light 5s ease-in-out infinite alternate; }
@keyframes sc4-figure { 0%{transform:translateX(-50%) translateY(0) rotate(-2deg)} 50%{transform:translateX(-50%) translateY(-5px) rotate(2deg)} 100%{transform:translateX(-50%) translateY(0) rotate(0deg)} }
@keyframes sc4-swirl { 0%{transform:rotate(0deg) scale(1)} 50%{transform:rotate(180deg) scale(1.2)} 100%{transform:rotate(360deg) scale(1)} }
@keyframes sc4-light { 0%{opacity:.2;transform:scale(.8)} 100%{opacity:.6;transform:scale(1.2)} }

.scn-sonnet-xcv {
  background:
    linear-gradient(180deg, #525261 0%, #3a3a4a 50%, #2a2a3a 100%),
    radial-gradient(ellipse at 30% 20%, #6a6a7a 0%, transparent 60%);
}
.scn-sonnet-xcv .rose-bloom {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 40% 30%, #6a3030 0%, #3a1a1a 70%, #1a0a0a 100%);
  border-radius: 50% 50% 60% 40% / 50% 50% 40% 60%;
  box-shadow: 0 8px 24px rgba(0,0,0,0.6);
  animation: snxcv-bloom 5s ease-in-out infinite;
}
.scn-sonnet-xcv .rose-canker {
  position: absolute; bottom: 48%; left: 50%; width: 24px; height: 24px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 8px #000;
  animation: snxcv-canker 1.2s ease-in-out infinite;
}
.scn-sonnet-xcv .rose-stem {
  position: absolute; bottom: 15%; left: 50%; width: 8px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a6a3a 0%, #2a3a1a 100%);
  border-radius: 40%;
  animation: snxcv-stem 3s ease-in-out infinite;
}
.scn-sonnet-xcv .thorn {
  position: absolute; bottom: 38%; left: 46%; width: 6px; height: 14px;
  transform: rotate(30deg);
  background: #3a2a1a;
  border-radius: 0 0 40% 40%;
  animation: snxcv-thorn 4s ease-in-out infinite;
}
.scn-sonnet-xcv .petal-fall1 {
  position: absolute; top: 20%; left: 20%; width: 20px; height: 24px;
  background: radial-gradient(ellipse, #8a4040 0%, #4a2020 100%);
  border-radius: 60% 40% 50% 50%;
  animation: snxcv-petal1 3s ease-in infinite;
}
.scn-sonnet-xcv .petal-fall2 {
  position: absolute; top: 25%; left: 70%; width: 16px; height: 20px;
  background: radial-gradient(ellipse, #7a3535 0%, #3a1515 100%);
  border-radius: 40% 60% 50% 50%;
  animation: snxcv-petal2 3.8s ease-in infinite;
}
.scn-sonnet-xcv .shadow-figure {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, rgba(10,10,20,0.6) 0%, rgba(0,0,0,0.9) 100%);
  border-radius: 0 0 30% 30%;
  animation: snxcv-shadow 2s ease-in-out infinite alternate;
}
@keyframes snxcv-bloom {
  0%,100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
}
@keyframes snxcv-canker {
  0% { transform: translateX(-50%) scale(1); opacity: 0.7; }
  50% { transform: translateX(-50%) scale(1.3); opacity: 1; }
  100% { transform: translateX(-50%) scale(1); opacity: 0.8; }
}
@keyframes snxcv-stem {
  0%,100% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
}
@keyframes snxcv-thorn {
  0%,100% { transform: rotate(30deg); }
  50% { transform: rotate(35deg); }
}
@keyframes snxcv-petal1 {
  0% { top: 20%; left: 20%; transform: rotate(0deg); opacity: 1; }
  100% { top: 90%; left: 30%; transform: rotate(180deg); opacity: 0; }
}
@keyframes snxcv-petal2 {
  0% { top: 25%; left: 70%; transform: rotate(0deg); opacity: 1; }
  100% { top: 85%; left: 50%; transform: rotate(-200deg); opacity: 0; }
}
@keyframes snxcv-shadow {
  0% { transform: translateY(0); opacity: 0.8; }
  100% { transform: translateY(5px); opacity: 1; }
}

.scn-sonnet-xcv-part2 {
  background:
    linear-gradient(180deg, #b8a090 0%, #9a8a7a 50%, #7a6a5a 100%),
    radial-gradient(ellipse at 70% 30%, #d0b8a0 0%, transparent 70%);
}
.scn-sonnet-xcv-part2 .veil-back {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(90deg, rgba(180,160,140,0.7) 0%, rgba(140,120,100,0.3) 50%, rgba(180,160,140,0.7) 100%);
  animation: snxcv2-veil-a 10s ease-in-out infinite alternate;
}
.scn-sonnet-xcv-part2 .veil-front {
  position: absolute; top: 5%; left: 10%; right: 10%; bottom: 10%;
  background: linear-gradient(135deg, rgba(200,180,160,0.5) 0%, rgba(160,140,120,0.2) 100%);
  border-radius: 40% 60% 30% 70% / 50% 40% 60% 50%;
  animation: snxcv2-veil-b 8s ease-in-out infinite alternate;
}
.scn-sonnet-xcv-part2 .warm-glow {
  position: absolute; top: 15%; left: 45%; width: 100px; height: 100px;
  background: radial-gradient(circle, #f0d8b0 0%, #d0a870 50%, transparent 100%);
  border-radius: 50%;
  animation: snxcv2-glow 3s ease-in-out infinite;
}
.scn-sonnet-xcv-part2 .knife {
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #9a8a7a 0%, #5a4a3a 100%);
  clip-path: polygon(10% 10%, 90% 10%, 70% 100%, 30% 100%);
  transform: rotate(-15deg);
  animation: snxcv2-knife 4s ease-in-out infinite;
}
.scn-sonnet-xcv-part2 .hand {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 40px;
  background: radial-gradient(ellipse, #c8b0a0 0%, #8a7060 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 50% 40%;
  transform: rotate(20deg);
  animation: snxcv2-hand 3.5s ease-in-out infinite;
}
.scn-sonnet-xcv-part2 .blot-1 {
  position: absolute; top: 30%; left: 20%; width: 14px; height: 16px;
  background: #6a5a4a;
  border-radius: 50% 40% 60% 40%;
  animation: snxcv2-blot1 2.5s ease-in-out infinite;
}
.scn-sonnet-xcv-part2 .blot-2 {
  position: absolute; top: 60%; left: 60%; width: 18px; height: 12px;
  background: #7a6a5a;
  border-radius: 40% 50% 30% 60%;
  animation: snxcv2-blot2 3s ease-in-out infinite alternate;
}
@keyframes snxcv2-veil-a {
  0% { transform: translateX(0); }
  100% { transform: translateX(-3px); }
}
@keyframes snxcv2-veil-b {
  0% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(2px) rotate(1deg); }
}
@keyframes snxcv2-glow {
  0%,100% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.15); opacity: 1; }
}
@keyframes snxcv2-knife {
  0%,100% { transform: rotate(-15deg); }
  50% { transform: rotate(-12deg); }
}
@keyframes snxcv2-hand {
  0%,100% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(22deg) translateY(-2px); }
}
@keyframes snxcv2-blot1 {
  0%,100% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.3); opacity: 1; }
}
@keyframes snxcv2-blot2 {
  0% { transform: translateX(0) scale(1); }
  100% { transform: translateX(5px) scale(1.2); }
}

.scn-sonnet-xcvi {
  background:
    linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 50%, #4a5a6a 100%),
    radial-gradient(ellipse at 50% 60%, #8a9aaa 0%, transparent 70%);
}
.scn-sonnet-xcvi .queen-head {
  position: absolute; bottom: 35%; left: 45%; width: 50px; height: 60px;
  background: radial-gradient(ellipse at 50% 40%, #b0a898 0%, #7a6e5e 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  animation: snxcvi-head 6s ease-in-out infinite;
}
.scn-sonnet-xcvi .queen-neck {
  position: absolute; bottom: 18%; left: 47%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #a09484 0%, #7a6e5e 100%);
  border-radius: 30%;
  animation: snxcvi-neck 6s ease-in-out infinite;
}
.scn-sonnet-xcvi .crown {
  position: absolute; bottom: 63%; left: 43%; width: 70px; height: 40px;
  background: linear-gradient(180deg, #d4b060 0%, #b09040 100%);
  clip-path: polygon(50% 0%, 80% 25%, 100% 25%, 100% 100%, 0% 100%, 0% 25%, 20% 25%);
  animation: snxcvi-crown 7s ease-in-out infinite;
}
.scn-sonnet-xcvi .jewel {
  position: absolute; bottom: 10%; left: 30%; width: 16px; height: 16px;
  background: radial-gradient(circle, #a0d0e0 0%, #5090a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(80,144,160,0.5);
  animation: snxcvi-jewel 4s ease-in-out infinite;
}
.scn-sonnet-xcvi .finger {
  position: absolute; bottom: 8%; left: 25%; width: 40px; height: 16px;
  background: linear-gradient(90deg, #b0a898 0%, #8a7a6a 100%);
  border-radius: 40% 50% 30% 40% / 50% 50% 50% 50%;
  transform: rotate(-20deg);
  animation: snxcvi-finger 5s ease-in-out infinite;
}
.scn-sonnet-xcvi .eye-1 {
  position: absolute; top: 30%; left: 20%; width: 18px; height: 12px;
  background: radial-gradient(ellipse at 40% 40%, #f0e8d0 0%, #4a4a3a 80%);
  border-radius: 50%;
  animation: snxcvi-eye 3s ease-in-out infinite;
}
.scn-sonnet-xcvi .eye-2 {
  position: absolute; top: 25%; left: 60%; width: 20px; height: 14px;
  background: radial-gradient(ellipse at 50% 50%, #e8e0c8 0%, #3a3a2a 70%);
  border-radius: 50%;
  animation: snxcvi-eye 3.5s ease-in-out infinite alternate;
}
.scn-sonnet-xcvi .eye-3 {
  position: absolute; top: 45%; left: 75%; width: 16px; height: 10px;
  background: radial-gradient(ellipse at 30% 30%, #d8d0b8 0%, #2a2a1a 80%);
  border-radius: 50%;
  animation: snxcvi-eye 4s ease-in-out infinite alternate;
}
.scn-sonnet-xcvi .bg-glow {
  position: absolute; top: 20%; left: 40%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(180,180,200,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: snxcvi-glow 8s ease-in-out infinite;
}
@keyframes snxcvi-head {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes snxcvi-neck {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes snxcvi-crown {
  0%,100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes snxcvi-jewel {
  0%,100% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.15); opacity: 1; }
}
@keyframes snxcvi-finger {
  0%,100% { transform: rotate(-20deg); }
  50% { transform: rotate(-18deg); }
}
@keyframes snxcvi-eye {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(0.6); }
}
@keyframes snxcvi-glow {
  0%,100% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.1); opacity: 1; }
}

.scn-sonnet-xcvi-part2 {
  background:
    linear-gradient(180deg, #7a8a7a 0%, #5a6a5a 50%, #3a4a3a 100%),
    radial-gradient(ellipse at 30% 50%, #9aaa9a 0%, transparent 60%);
}
.scn-sonnet-xcvi-part2 .lamb-body {
  position: absolute; bottom: 30%; left: 40%; width: 60px; height: 50px;
  background: radial-gradient(ellipse at 50% 60%, #d8d8c8 0%, #a0a090 100%);
  border-radius: 50% 50% 60% 40% / 40% 40% 60% 60%;
  animation: sncvi2-body 7s ease-in-out infinite;
}
.scn-sonnet-xcvi-part2 .lamb-head {
  position: absolute; bottom: 50%; left: 35%; width: 30px; height: 28px;
  background: radial-gradient(ellipse, #d0c8b8 0%, #a09880 100%);
  border-radius: 50% 50% 40% 60% / 50% 50% 50% 50%;
  animation: sncvi2-head 6s ease-in-out infinite;
}
.scn-sonnet-xcvi-part2 .lamb-leg1 {
  position: absolute; bottom: 10%; left: 40%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #b0a898 0%, #8a7a6a 100%);
  border-radius: 20%;
  animation: sncvi2-leg1 4s ease-in-out infinite alternate;
}
.scn-sonnet-xcvi-part2 .lamb-leg2 {
  position: absolute; bottom: 10%; left: 55%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #b0a898 0%, #8a7a6a 100%);
  border-radius: 20%;
  animation: sncvi2-leg2 4.5s ease-in-out infinite alternate;
}
.scn-sonnet-xcvi-part2 .crook {
  position: absolute; bottom: 20%; left: 60%; width: 8px; height: 70px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 30%;
  transform: rotate(10deg);
  animation: sncvi2-crook 6s ease-in-out infinite;
}
.scn-sonnet-xcvi-part2 .hook {
  position: absolute; bottom: 65%; left: 58%; width: 30px; height: 20px;
  background: #6a5a3a;
  border-radius: 0 50% 50% 0 / 0 50% 50% 0;
  transform: rotate(-10deg);
  animation: sncvi2-hook 5s ease-in-out infinite;
}
.scn-sonnet-xcvi-part2 .gazer-eye-1 {
  position: absolute; top: 25%; left: 25%; width: 14px; height: 10px;
  background: radial-gradient(ellipse at 40% 40%, #f0e8d0 0%, #3a3a2a 80%);
  border-radius: 50%;
  animation: sncvi2-eye 3s ease-in-out infinite;
}
.scn-sonnet-xcvi-part2 .gazer-eye-2 {
  position: absolute; top: 20%; left: 65%; width: 16px; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, #e8e0c8 0%, #2a2a1a 70%);
  border-radius: 50%;
  animation: sncvi2-eye 3.5s ease-in-out infinite alternate;
}
.scn-sonnet-xcvi-part2 .trust-glow {
  position: absolute; top: 10%; left: 30%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(180,200,180,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: sncvi2-glow 10s ease-in-out infinite;
}
@keyframes sncvi2-body {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes sncvi2-head {
  0%,100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
}
@keyframes sncvi2-leg1 {
  0% { transform: translateY(0); }
  100% { transform: translateY(4px); }
}
@keyframes sncvi2-leg2 {
  0% { transform: translateY(0); }
  100% { transform: translateY(4px); }
}
@keyframes sncvi2-crook {
  0%,100% { transform: rotate(10deg); }
  50% { transform: rotate(13deg); }
}
@keyframes sncvi2-hook {
  0%,100% { transform: rotate(-10deg); }
  50% { transform: rotate(-7deg); }
}
@keyframes sncvi2-eye {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(0.5); }
}
@keyframes sncvi2-glow {
  0%,100% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.15); opacity: 0.9; }
}

/* scene: item-jewel-shadow-night */
.scn-item-jewel-shadow-night { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 50%, #0e0e1e 100%), radial-gradient(ellipse at 50% 0%, #2a2a5e 0%, transparent 70%); }
.scn-item-jewel-shadow-night .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #151535 0%, transparent 100%); animation: j-sky 20s ease-in-out infinite alternate; }
.scn-item-jewel-shadow-night .moon { position: absolute; top: 10%; left: 70%; width: 40px; height: 40px; background: radial-gradient(circle, #d0d0f0 0%, #8888b0 60%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px #a0a0d0; animation: j-moon 30s linear infinite; }
.scn-item-jewel-shadow-night .cloud-a { position: absolute; top: 8%; left: 20%; width: 100px; height: 15px; background: linear-gradient(180deg, rgba(200,200,240,0.4) 0%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: j-drift-a 40s linear infinite; }
.scn-item-jewel-shadow-night .cloud-b { position: absolute; top: 15%; left: 60%; width: 70px; height: 12px; background: linear-gradient(180deg, rgba(200,200,240,0.3) 0%, transparent 100%); border-radius: 50%; filter: blur(5px); animation: j-drift-b 50s linear infinite reverse; }
.scn-item-jewel-shadow-night .jewel { position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%); width: 24px; height: 30px; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b08040 50%, #402010 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,0.4); animation: j-jewel 3s ease-in-out infinite alternate; }
.scn-item-jewel-shadow-night .shadow { position: absolute; bottom: 30%; left: 50%; width: 80px; height: 10px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 100%); animation: j-shadow 4s ease-in-out infinite alternate; }
.scn-item-jewel-shadow-night .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; }
@keyframes j-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes j-moon { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) translateY(5px) } 100% { transform: translateX(0) } }
@keyframes j-drift-a { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }
@keyframes j-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }
@keyframes j-jewel { 0% { transform: translateX(-50%) scale(1); opacity: 0.8; box-shadow: 0 0 20px 5px #c08040; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; box-shadow: 0 0 40px 15px #ffd080; } 100% { transform: translateX(-50%) scale(1); opacity: 0.85; box-shadow: 0 0 25px 8px #c08040; } }
@keyframes j-shadow { 0% { transform: translateX(-50%) scaleX(1); opacity: 0.6; } 50% { transform: translateX(-50%) scaleX(1.3); opacity: 0.3; } 100% { transform: translateX(-50%) scaleX(1); opacity: 0.6; } }

/* scene: toil-complain-flattery */
.scn-toil-complain-flattery { background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 100%, #4a4a5a 0%, transparent 70%); }
.scn-toil-complain-flattery .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 60% 0 0 / 60% 40% 0 0; }
.scn-toil-complain-flattery .hand-left { position: absolute; bottom: 40%; left: 30%; width: 30px; height: 50px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40%; transform: rotate(15deg); animation: tc-hand-l 4s ease-in-out infinite; }
.scn-toil-complain-flattery .hand-right { position: absolute; bottom: 40%; right: 30%; width: 30px; height: 50px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40%; transform: rotate(-15deg); animation: tc-hand-r 4s ease-in-out infinite; }
.scn-toil-complain-flattery .chain { position: absolute; bottom: 40%; left: 50%; width: 40px; height: 10px; transform: translate(-50%, -50%); background: linear-gradient(90deg, #8a7a6a 0%, #b0a090 50%, #8a7a6a 100%); border-radius: 4px; animation: tc-chain 2s ease-in-out infinite; }
.scn-toil-complain-flattery .center-grip { position: absolute; bottom: 40%; left: 50%; transform: translate(-50%, -50%); width: 10px; height: 10px; background: radial-gradient(circle, #b0a090 0%, #6a5a4a 100%); border-radius: 50%; animation: tc-grip 4s ease-in-out infinite; }
.scn-toil-complain-flattery .shadow { position: absolute; bottom: 30%; left: 20%; right: 20%; height: 20px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 100%); animation: tc-shadow 6s ease-in-out infinite alternate; }
@keyframes tc-hand-l { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-5px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes tc-hand-r { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-5px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes tc-chain { 0% { transform: translate(-50%, -50%) scaleX(1); } 50% { transform: translate(-50%, -50%) scaleX(1.2); } 100% { transform: translate(-50%, -50%) scaleX(1); } }
@keyframes tc-grip { 0% { transform: translate(-50%, -50%) scale(1); } 50% { transform: translate(-50%, -50%) scale(1.3); } 100% { transform: translate(-50%, -50%) scale(1); } }
@keyframes tc-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* scene: disgrace-lark-wealth */
.scn-disgrace-lark-wealth { background: linear-gradient(180deg, #ffcc80 0%, #ffa060 30%, #804020 100%), radial-gradient(ellipse at 50% 0%, #fff4d0 0%, transparent 50%); }
.scn-disgrace-lark-wealth .sun { position: absolute; top: 10%; left: 50%; transform: translateX(-50%); width: 60px; height: 60px; background: radial-gradient(circle at 50% 50%, #fff4d0 0%, #ffd080 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px #ffd080; animation: dl-sun 15s ease-in-out infinite alternate; }
.scn-disgrace-lark-wealth .hills { position: absolute; bottom: 40%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; animation: dl-hills 20s ease-in-out infinite alternate; }
.scn-disgrace-lark-wealth .figure { position: absolute; bottom: 35%; left: 40%; width: 20px; height: 40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40%; animation: dl-figure 5s ease-in-out infinite; }
.scn-disgrace-lark-wealth .lark { position: absolute; top: 20%; left: 20%; width: 12px; height: 8px; background: radial-gradient(circle, #5a4a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 50% 50%; animation: dl-lark 8s ease-in-out infinite; }
.scn-disgrace-lark-wealth .gold { position: absolute; bottom: 30%; left: 60%; width: 20px; height: 20px; background: radial-gradient(circle, #ffd080 0%, #c08040 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 15px #ffd080; animation: dl-gold 2s ease-in-out infinite; }
.scn-disgrace-lark-wealth .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 0 0 / 70% 70% 0 0; }
@keyframes dl-sun { 0% { transform: translateX(-50%) translateY(0); opacity: 0.9; } 50% { transform: translateX(-50%) translateY(-10px); opacity: 1; } 100% { transform: translateX(-50%) translateY(0); opacity: 0.9; } }
@keyframes dl-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes dl-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dl-lark { 0% { transform: translate(0,0) scale(1); } 25% { transform: translate(30px,-10px) scale(1.2); } 50% { transform: translate(60px,0) scale(1); } 75% { transform: translate(30px,10px) scale(0.8); } 100% { transform: translate(0,0) scale(1); } }
@keyframes dl-gold { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.5); opacity: 1; } 100% { transform: scale(1); opacity: 0.6; } }

/* scene: sessions-thought-losses */
.scn-sessions-thought-losses { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #1a1a1e 100%), radial-gradient(ellipse at 50% 50%, #3a3a4e 0%, transparent 70%); }
.scn-sessions-thought-losses .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); animation: st-wall 20s ease-in-out infinite alternate; }
.scn-sessions-thought-losses .window { position: absolute; top: 20%; left: 30%; width: 40%; height: 30%; background: radial-gradient(circle at 50% 50%, #4a4a6e 0%, #2a2a4e 80%, transparent 100%); border-radius: 4px; box-shadow: inset 0 0 20px #0a0a1a; animation: st-window 8s ease-in-out infinite alternate; }
.scn-sessions-thought-losses .chair { position: absolute; bottom: 30%; left: 30%; width: 60px; height: 40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 8% 8% 4% 4%; animation: st-chair 6s ease-in-out infinite; }
.scn-sessions-thought-losses .figure { position: absolute; bottom: 30%; left: 45%; width: 20px; height: 50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40%; animation: st-figure 5s ease-in-out infinite; }
.scn-sessions-thought-losses .candle { position: absolute; bottom: 35%; left: 50%; width: 8px; height: 30px; background: linear-gradient(180deg, #d0a060 0%, #8a6030 100%); border-radius: 4px; box-shadow: 0 0 20px 5px #ffd080; animation: st-candle 3s ease-in-out infinite; }
.scn-sessions-thought-losses .memory-1 { position: absolute; top: 15%; left: 20%; width: 30px; height: 30px; background: radial-gradient(circle, rgba(200,200,240,0.4) 0%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: st-memory1 12s ease-in-out infinite; }
.scn-sessions-thought-losses .memory-2 { position: absolute; top: 25%; left: 60%; width: 20px; height: 20px; background: radial-gradient(circle, rgba(200,200,240,0.3) 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: st-memory2 15s ease-in-out infinite reverse; }
.scn-sessions-thought-losses .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #1a1a1e 0%, #0a0a0e 100%); border-radius: 20% 80% 0 0 / 40% 60% 0 0; }
@keyframes st-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes st-window { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes st-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes st-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes st-candle { 0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.1); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.8; } }
@keyframes st-memory1 { 0% { transform: translate(0,0) scale(1); opacity: 0.3; } 50% { transform: translate(10px,-5px) scale(1.2); opacity: 0.6; } 100% { transform: translate(0,0) scale(1); opacity: 0.3; } }
@keyframes st-memory2 { 0% { transform: translate(0,0) scale(1); opacity: 0.2; } 50% { transform: translate(-8px,8px) scale(1.1); opacity: 0.5; } 100% { transform: translate(0,0) scale(1); opacity: 0.2; } }

/* sonnet-cx: repentant, overcast */
.scn-sonnet-cx { background: linear-gradient(180deg, #7a7a8a 0%, #5a5a6a 50%, #3a3a4a 100%), radial-gradient(ellipse at 50% 100%, #5a5a6a 0%, transparent 70%); }
.scn-sonnet-cx .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #8a8a9a 0%, transparent 100%); animation: sncx-sky 10s ease-in-out infinite alternate; }
.scn-sonnet-cx .ground { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 20% 20% 0 0; }
.scn-sonnet-cx .figure { position:absolute; bottom:35%; left:50%; width:40px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sncx-figure 4s ease-in-out infinite; }
.scn-sonnet-cx .cap { position:absolute; bottom:70%; left:50%; width:30px; height:0; margin-left:-15px; border-bottom: 20px solid #c8553d; border-left: 10px solid transparent; border-right: 10px solid transparent; animation: sncx-cap 3s ease-in-out infinite; }
.scn-sonnet-cx .tear { position:absolute; bottom:50%; left:48%; width:4px; height:6px; background: radial-gradient(circle, #a0b0c0 0%, transparent 100%); border-radius: 50%; animation: sncx-tear 5s ease-in-out infinite; }
.scn-sonnet-cx .shadow { position:absolute; bottom:35%; left:40%; width:60px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%); transform: translateX(-50%); animation: sncx-shadow 4s ease-in-out infinite; }
.scn-sonnet-cx .mote { position:absolute; top:20%; left:30%; width:3px; height:3px; background: rgba(255,255,255,.3); border-radius: 50%; animation: sncx-mote 15s linear infinite; }
@keyframes sncx-sky { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes sncx-figure { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(-2deg) } 75% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes sncx-cap { 0% { transform: rotate(0deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(5deg) } }
@keyframes sncx-tear { 0% { opacity:0; transform: translateY(0) } 20% { opacity:1 } 80% { opacity:1 } 100% { opacity:0; transform: translateY(20px) } }
@keyframes sncx-shadow { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.1) } }
@keyframes sncx-mote { 0% { transform: translate(0,0); opacity:0 } 10% { opacity:1 } 90% { opacity:1 } 100% { transform: translate(100px, -50px); opacity:0 } }

/* sonnet-cxi: pleading, overcast */
.scn-sonnet-cxi { background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 50%, #2a2a3a 100%), radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%); }
.scn-sonnet-cxi .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6a6a7a 0%, transparent 100%); animation: snci-sky 12s ease-in-out infinite alternate; }
.scn-sonnet-cxi .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 30% 30% 0 0; }
.scn-sonnet-cxi .body { position:absolute; bottom:40%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: snci-body 3s ease-in-out infinite; }
.scn-sonnet-cxi .leftarm { position:absolute; bottom:55%; left:41%; width:8px; height:40px; background: #1a1a2a; border-radius: 4px; transform-origin: bottom center; transform: rotate(30deg); animation: snci-arm-l 2.5s ease-in-out infinite alternate; }
.scn-sonnet-cxi .rightarm { position:absolute; bottom:55%; right:41%; width:8px; height:40px; background: #1a1a2a; border-radius: 4px; transform-origin: bottom center; transform: rotate(-30deg); animation: snci-arm-r 2.5s ease-in-out infinite alternate; }
.scn-sonnet-cxi .shadow { position:absolute; bottom:40%; left:50%; width:70px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); transform: translateX(-50%); animation: snci-shadow 3s ease-in-out infinite; }
.scn-sonnet-cxi .teardrop { position:absolute; bottom:50%; left:48%; width:4px; height:6px; background: radial-gradient(circle, #a0b0c0 0%, transparent 100%); border-radius: 50%; animation: snci-tear 4s ease-in-out infinite; }
@keyframes snci-sky { 0%,100% { opacity:.7 } 50% { opacity:1 } }
@keyframes snci-body { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes snci-arm-l { 0% { transform: rotate(20deg) } 100% { transform: rotate(40deg) } }
@keyframes snci-arm-r { 0% { transform: rotate(-20deg) } 100% { transform: rotate(-40deg) } }
@keyframes snci-shadow { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.2) } }
@keyframes snci-tear { 0% { opacity:0; transform: translateY(0) } 20% { opacity:1 } 80% { opacity:1 } 100% { opacity:0; transform: translateY(15px) } }

/* sonnet-cxi-part2: hopeful, overcast */
.scn-sonnet-cxi-part2 { background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 50%, #3a3a4a 100%), radial-gradient(ellipse at 50% 0%, #6a6a7a 0%, transparent 70%); }
.scn-sonnet-cxi-part2 .sky { position:absolute; inset:0; background: linear-gradient(180deg, #7a7a8a 0%, #4a4a5a 100%); animation: snp2-sky 15s ease-in-out infinite alternate; }
.scn-sonnet-cxi-part2 .clouds { position:absolute; top:10%; left:0; right:0; height:40%; background: linear-gradient(180deg, rgba(200,200,210,.3) 0%, transparent 100%); filter: blur(8px); animation: snp2-clouds 30s linear infinite; }
.scn-sonnet-cxi-part2 .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 40% 40% 0 0; }
.scn-sonnet-cxi-part2 .figure { position:absolute; bottom:35%; left:50%; width:40px; height:70px; transform:translateX(-50%); background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: snp2-figure 4s ease-in-out infinite; }
.scn-sonnet-cxi-part2 .beam { position:absolute; top:5%; left:46%; width:80px; height:300px; background: linear-gradient(180deg, rgba(255,255,220,.6) 0%, rgba(255,255,220,0) 100%); transform: rotate(10deg); transform-origin: top center; animation: snp2-beam 3s ease-in-out infinite alternate; }
.scn-sonnet-cxi-part2 .sprout { position:absolute; bottom:45%; left:48%; width:6px; height:20px; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 50% 50% 20% 20%; animation: snp2-sprout 6s ease-in-out infinite; }
.scn-sonnet-cxi-part2 .shadow { position:absolute; bottom:35%; left:40%; width:60px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%); transform: translateX(-50%); animation: snp2-shadow 4s ease-in-out infinite; }
@keyframes snp2-sky { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes snp2-clouds { 0% { transform: translateX(0) } 100% { transform: translateX(-100px) } }
@keyframes snp2-figure { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes snp2-beam { 0% { opacity:.5; transform: rotate(5deg) } 100% { opacity:1; transform: rotate(15deg) } }
@keyframes snp2-sprout { 0% { height:15px; opacity:.6 } 50% { height:25px; opacity:1 } 100% { height:15px; opacity:.6 } }
@keyframes snp2-shadow { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.1) } }

/* sonnet-cxii: secure, overcast */
.scn-sonnet-cxii { background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 50%, #3a3a4a 100%), radial-gradient(ellipse at 50% 100%, #4a4a5a 0%, transparent 70%); }
.scn-sonnet-cxii .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #7a7a8a 0%, transparent 100%); animation: sn12-sky 10s ease-in-out infinite alternate; }
.scn-sonnet-cxii .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 20% 20% 0 0; }
.scn-sonnet-cxii .figure { position:absolute; bottom:38%; left:50%; width:45px; height:90px; transform:translateX(-50%); background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sn12-figure 6s ease-in-out infinite; }
.scn-sonnet-cxii .cloak { position:absolute; bottom:38%; left:45%; width:70px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 0% 80% 80% 0%; transform: rotate(5deg); transform-origin: top left; animation: sn12-cloak 4s ease-in-out infinite alternate; }
.scn-sonnet-cxii .staff { position:absolute; bottom:38%; left:55%; width:4px; height:100px; background: #4a3a2a; border-radius: 2px; transform-origin: bottom center; animation: sn12-staff 3s ease-in-out infinite; }
.scn-sonnet-cxii .shadow { position:absolute; bottom:38%; left:50%; width:80px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); transform: translateX(-50%); animation: sn12-shadow 6s ease-in-out infinite; }
.scn-sonnet-cxii .crest { position:absolute; bottom:55%; left:47%; width:12px; height:12px; background: radial-gradient(circle, #c8553d 0%, #a0461a 100%); border-radius: 50%; box-shadow: 0 0 4px rgba(200,85,61,.5); animation: sn12-crest 3s ease-in-out infinite; }
@keyframes sn12-sky { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes sn12-figure { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes sn12-cloak { 0% { transform: rotate(3deg) } 100% { transform: rotate(8deg) } }
@keyframes sn12-staff { 0% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes sn12-shadow { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) } }
@keyframes sn12-crest { 0%,100% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } }

/* Scene 1: sonnet-cxliv-first – tense, dim interior */
.scn-sonnet-cxliv-first {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 30%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 60%, rgba(255, 180, 60, 0.08) 0%, transparent 60%);
}
.scn-sonnet-cxliv-first .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1e1e32 0%, #0f0f1a 100%);
  animation: sc1-wall 30s ease-in-out infinite alternating;
}
.scn-sonnet-cxliv-first .floor {
  position: absolute; height: 30%; bottom: 0; left: 0; right: 0;
  background: linear-gradient(0deg, #0a0a0f 0%, #1a121a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-sonnet-cxliv-first .window-moon {
  position: absolute; top: 12%; left: 8%; width: 28%; height: 40%;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%);
  border-radius: 4%; box-shadow: inset 0 0 20px rgba(70, 130, 180, 0.3);
  animation: sc1-moon 20s ease-in-out infinite alternating;
}
.scn-sonnet-cxliv-first .angel-figure {
  position: absolute; bottom: 28%; left: 28%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b5a0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-angel 6s ease-in-out infinite;
}
.scn-sonnet-cxliv-first .evil-figure {
  position: absolute; bottom: 28%; right: 22%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-evil 8s ease-in-out infinite;
}
.scn-sonnet-cxliv-first .candle-flame {
  position: absolute; bottom: 38%; left: 48%; width: 6px; height: 14px;
  background: radial-gradient(ellipse, #ffb860 0%, #ff9030 60%, #cc6010 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  filter: blur(1px);
  animation: sc1-flame 1.2s ease-in-out infinite;
}
.scn-sonnet-cxliv-first .candle-glow {
  position: absolute; bottom: 34%; left: 44%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255, 180, 60, 0.35) 0%, transparent 70%);
  border-radius: 50%;
  animation: sc1-glow 2s ease-in-out infinite;
}
.scn-sonnet-cxliv-first .tempter-arm {
  position: absolute; bottom: 40%; right: 38%; width: 50px; height: 6px;
  background: linear-gradient(90deg, #4a2a3a 0%, #5a3a4a 100%);
  border-radius: 4px; transform-origin: right center;
  animation: sc1-arm 4s ease-in-out infinite;
}
.scn-sonnet-cxliv-first .tempter-palm {
  position: absolute; bottom: 38%; right: 32%; width: 12px; height: 14px;
  background: #5a3a4a; border-radius: 40% 60% 50% 50% / 50% 50% 60% 40%;
  transform-origin: center; filter: blur(0.5px);
  animation: sc1-palm 3s ease-in-out infinite;
}
@keyframes sc1-wall { 0%,100% { opacity: 0.9; } 50% { opacity: 1; } }
@keyframes sc1-moon { 0%,100% { filter: brightness(0.8); } 50% { filter: brightness(1.1) blur(2px); } }
@keyframes sc1-angel { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } }
@keyframes sc1-evil { 0%,100% { transform: translateX(0) rotate(0deg) scaleY(1); } 33% { transform: translateX(-3px) rotate(-3deg) scaleY(1.02); } 67% { transform: translateX(3px) rotate(2deg) scaleY(0.98); } }
@keyframes sc1-flame { 0%,100% { transform: scaleY(1) translateY(0); } 25% { transform: scaleY(1.15) translateY(-2px); } 50% { transform: scaleY(0.9) translateY(1px); } 75% { transform: scaleY(1.1) translateY(-1px); } }
@keyframes sc1-glow { 0%,100% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.25); } }
@keyframes sc1-arm { 0%,100% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(0.9) rotate(-8deg); } }
@keyframes sc1-palm { 0%,100% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-10deg) scale(0.9); } }

/* Scene 2: sonnet-cxliv-second – tense, dim interior, fire */
.scn-sonnet-cxliv-second {
  background:
    linear-gradient(180deg, #1a0f0a 0%, #2a1a0f 40%, #0e0a06 100%),
    radial-gradient(ellipse at 50% 75%, rgba(200, 90, 20, 0.15) 0%, transparent 60%);
}
.scn-sonnet-cxliv-second .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1f1410 0%, #0c0805 100%);
  animation: sc2-wall 25s linear infinite alternate;
}
.scn-sonnet-cxliv-second .floor {
  position: absolute; height: 25%; bottom: 0; left: 0; right: 0;
  background: linear-gradient(0deg, #050303 0%, #1a0e08 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
}
.scn-sonnet-cxliv-second .firebase {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(0deg, #3a1a0a 0%, #5a2a0f 100%);
  border-radius: 40% 40% 0 0;
}
.scn-sonnet-cxliv-second .flame-core {
  position: absolute; bottom: 38%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #ffa040 0%, #cc6010 60%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  filter: blur(1px); animation: sc2-core 0.8s ease-in-out infinite;
}
.scn-sonnet-cxliv-second .flame-tip {
  position: absolute; bottom: 55%; left: 50%; width: 18px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #ffd060 0%, #ff8020 70%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 90% 90% 10% 10%;
  filter: blur(1px); animation: sc2-tip 0.6s ease-in-out infinite alternate;
}
.scn-sonnet-cxliv-second .angel-figure {
  position: absolute; bottom: 26%; left: 28%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #c8b8a0 0%, #a09078 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: sc2-angel 7s ease-in-out infinite;
}
.scn-sonnet-cxliv-second .fiend-figure {
  position: absolute; bottom: 26%; right: 24%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: sc2-fiend 5s ease-in-out infinite;
}
.scn-sonnet-cxliv-second .sparks {
  position: absolute; bottom: 45%; left: 45%; width: 4px; height: 4px;
  background: #ffa040; border-radius: 50%; box-shadow: 0 0 6px rgba(255,160,64,0.6);
  animation: sc2-sparks 0.9s ease-in-out infinite;
}
.scn-sonnet-cxliv-second .heat-haze {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(ellipse, rgba(200,80,20,0.08) 0%, transparent 80%);
  border-radius: 50%; filter: blur(10px);
  animation: sc2-haze 3s ease-in-out infinite;
}
@keyframes sc2-wall { 0% { opacity: 0.85; } 100% { opacity: 1; } }
@keyframes sc2-core { 0%,100% { transform: translateX(-50%) scaleY(1) rotate(0deg); } 25% { transform: translateX(-50%) scaleY(1.1) rotate(2deg); } 50% { transform: translateX(-50%) scaleY(0.9) rotate(-1deg); } 75% { transform: translateX(-50%) scaleY(1.05) rotate(1deg); } }
@keyframes sc2-tip { 0%,100% { transform: translateX(-50%) scaleY(1) translateY(0); } 50% { transform: translateX(-50%) scaleY(1.3) translateY(-5px); } }
@keyframes sc2-angel { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3px) rotate(2deg); } 60% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes sc2-fiend { 0%,100% { transform: translateX(0) rotate(0deg) scale(1); } 40% { transform: translateX(-4px) rotate(-4deg) scale(1.02); } 80% { transform: translateX(4px) rotate(3deg) scale(0.98); } }
@keyframes sc2-sparks { 0%,100% { transform: translate(0,0) scale(1); opacity: 0; } 50% { transform: translate(4px, -12px) scale(1.5); opacity: 1; } }
@keyframes sc2-haze { 0%,100% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } }

/* Scene 3: sonnet-cxlv-first – warm, dawn */
.scn-sonnet-cxlv-first {
  background:
    linear-gradient(180deg, #ffa070 0%, #ffc8a0 30%, #d4a373 60%, #8c6a4a 100%),
    linear-gradient(135deg, rgba(255,200,150,0.3) 0%, transparent 50%), radial-gradient(ellipse at 30% 80%, rgba(255,180,100,0.1) 0%, transparent 60%);
}
.scn-sonnet-cxlv-first .sky-dawn {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #ffb07a 0%, #ffcca0 40%, transparent 100%);
  animation: sc3-sky 30s ease-in-out infinite;
}
.scn-sonnet-cxlv-first .sun-dawn {
  position: absolute; top: 25%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe0a0 0%, #ffaa60 50%, transparent 80%);
  border-radius: 50%;
  animation: sc3-sun 10s ease-in-out infinite;
}
.scn-sonnet-cxlv-first .window-frame {
  position: absolute; bottom: 20%; left: 10%; width: 30%; height: 60%;
  background: transparent; border: 4px solid #4a3020; border-radius: 6%;
  box-shadow: inset 0 0 30px rgba(200,100,50,0.2);
  animation: sc3-frame 8s ease-in-out infinite;
}
.scn-sonnet-cxlv-first .lady-profile {
  position: absolute; bottom: 22%; left: 18%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%;
  transform-origin: bottom left;
  animation: sc3-lady 12s ease-in-out infinite;
}
.scn-sonnet-cxlv-first .lips {
  position: absolute; bottom: 55%; left: 24%; width: 8px; height: 6px;
  background: #b87878; border-radius: 40% 60% 40% 60% / 50% 50% 50% 50%;
  transform: rotate(-15deg);
  animation: sc3-lips 4s ease-in-out infinite;
}
.scn-sonnet-cxlv-first .mercy-arm {
  position: absolute; bottom: 40%; right: 30%; width: 60px; height: 8px;
  background: linear-gradient(90deg, #c8a880 0%, #e0c0a0 100%);
  border-radius: 4px; transform-origin: right center;
  animation: sc3-arm 7s ease-in-out infinite;
}
.scn-sonnet-cxlv-first .mercy-hand {
  position: absolute; bottom: 38%; right: 24%; width: 14px; height: 16px;
  background: #c8a880; border-radius: 40% 50% 30% 40% / 50% 60% 40% 50%;
  transform-origin: center; animation: sc3-hand 7s ease-in-out infinite;
}
.scn-sonnet-cxlv-first .woeful-figure {
  position: absolute; bottom: 18%; right: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: sc3-woe 9s ease-in-out infinite;
}
@keyframes sc3-sky { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes sc3-sun { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(3px,-2px) scale(1.05); } }
@keyframes sc3-frame { 0%,100% { filter: brightness(1); } 50% { filter: brightness(1.1); } }
@keyframes sc3-lady { 0%,100% { transform: rotate(0deg) translateX(0); } 33% { transform: rotate(2deg) translateX(2px); } 67% { transform: rotate(-1deg) translateX(-1px); } }
@keyframes sc3-lips { 0%,100% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-15deg) scaleY(1.2) scaleX(0.9); } }
@keyframes sc3-arm { 0%,100% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(0.9) rotate(-5deg); } }
@keyframes sc3-hand { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-12deg); } }
@keyframes sc3-woe { 0%,100% { transform: translateY(0) scale(1); } 30% { transform: translateY(2px) scale(0.98); } 60% { transform: translateY(-1px) scale(1.01); } }

/* Scene 4: sonnet-cxlv-second – warm, dawn */
.scn-sonnet-cxlv-second {
  background:
    linear-gradient(90deg, #0f0a1a 0%, #2a1a3a 30%, #d4a373 70%, #ffc8a0 100%),
    radial-gradient(ellipse at 75% 50%, rgba(255,200,150,0.2) 0%, transparent 50%);
}
.scn-sonnet-cxlv-second .night-sky {
  position: absolute; inset: 0 55% 0 0;
  background: linear-gradient(180deg, #0a0a1f 0%, #1a1a2e 50%, #2a2a4a 100%);
  animation: sc4-night 40s ease-in-out infinite alternate;
}
.scn-sonnet-cxlv-second .dawn-sky {
  position: absolute; inset: 0 0 0 45%;
  background: linear-gradient(180deg, #ffa070 0%, #ffc8a0 60%, #d4a373 100%);
  animation: sc4-dawn 30s ease-in-out infinite alternate;
}
.scn-sonnet-cxlv-second .horizon {
  position: absolute; bottom: 30%; left: 45%; right: 55%; height: 20%;
  background: linear-gradient(90deg, #1a1a0a 0%, #4a3a1a 40%, #8c6a4a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
.scn-sonnet-cxlv-second .sun {
  position: absolute; bottom: 40%; left: 65%; width: 36px; height: 36px;
  background: radial-gradient(circle, #ffe0a0 0%, #ffaa60 50%, transparent 80%);
  border-radius: 50%;
  animation: sc4-sun 15s ease-in-out infinite;
}
.scn-sonnet-cxlv-second .cloud-1 {
  position: absolute; top: 20%; left: 40%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(255,200,150,0.6) 0%, transparent 100%);
  border-radius: 50%; filter: blur(8px);
  animation: sc4-cloud1 25s linear infinite;
}
.scn-sonnet-cxlv-second .cloud-2 {
  position: absolute; top: 30%; right: 20%; width: 50px; height: 12px;
  background: linear-gradient(180deg, rgba(160,120,80,0.5) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: sc4-cloud2 35s linear infinite reverse;
}
.scn-sonnet-cxlv-second .figure-profile {
  position: absolute; bottom: 22%; left: 40%; width: 22px; height: 56px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: sc4-fig 12s ease-in-out infinite;
}
.scn-sonnet-cxlv-second .hand-throwing {
  position: absolute; bottom: 38%; left: 30%; width: 16px; height: 18px;
  background: #4a3a2a; border-radius: 40% 50% 30% 40% / 50% 60% 40% 50%;
  transform-origin: bottom left;
  animation: sc4-hand 6s ease-in-out infinite;
}
@keyframes sc4-night { 0% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes sc4-dawn { 0% { opacity: 0.6; } 100% { opacity: 1; } }
@keyframes sc4-sun { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(5px,-3px) scale(1.08); } }
@keyframes sc4-cloud1 { 0% { transform: translateX(-40px); } 100% { transform: translateX(100vw); } }
@keyframes sc4-cloud2 { 0% { transform: translateX(0); } 100% { transform: translateX(-80vw); } }
@keyframes sc4-fig { 0%,100% { transform: rotate(0deg); } 30% { transform: rotate(3deg); } 60% { transform: rotate(-2deg); } }
@keyframes sc4-hand { 0%,100% { transform: rotate(0deg) translate(0,0); } 40% { transform: rotate(-20deg) translate(-4px,2px); } 80% { transform: rotate(10deg) translate(2px,-1px); } }

.scn-bosom-hearts-trophies { background: linear-gradient(180deg, #2a1e14 0%, #1a120a 50%, #0d0805 100%), radial-gradient(ellipse at 50% 50%, #4a3020 0%, transparent 70%); }
.scn-bosom-hearts-trophies .room { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a1a 0%, #1a120a 100%); animation: bht-room 20s ease-in-out infinite alternate; }
.scn-bosom-hearts-trophies .pedestal { position:absolute; bottom:20%; left:50%; width:80px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-bosom-hearts-trophies .heart { position:absolute; bottom:38%; left:50%; width:40px; height:36px; transform:translateX(-50%); background: radial-gradient(ellipse at 40% 40%, #c8553d 0%, #8b3220 70%, #4a1a10 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 20px 5px rgba(200,85,61,0.5); animation: bht-heartbeat 2s ease-in-out infinite; }
.scn-bosom-hearts-trophies .glow { position:absolute; bottom:35%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(circle, #ffaa80 0%, #c8553d 40%, transparent 70%); border-radius:50%; filter:blur(8px); animation: bht-glow 3s ease-in-out infinite alternate; }
.scn-bosom-hearts-trophies .trophy-left { position:absolute; bottom:22%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #b8860b 0%, #8b6914 50%, #5a4510 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: bht-trophy 6s ease-in-out infinite alternate; }
.scn-bosom-hearts-trophies .trophy-right { position:absolute; bottom:22%; right:30%; width:30px; height:50px; background: linear-gradient(180deg, #b8860b 0%, #8b6914 50%, #5a4510 100%); border-radius: 20% 20% 10% 10%; transform: rotate(10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: bht-trophy 7s ease-in-out infinite alternate-reverse; }
.scn-bosom-hearts-trophies .sparkle { position:absolute; bottom:40%; left:45%; width:4px; height:4px; background: #ffd700; border-radius:50%; box-shadow: 0 0 8px 2px #ffd700; animation: bht-sparkle 1.5s ease-in-out infinite; }
@keyframes bht-room { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes bht-heartbeat { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05); } }
@keyframes bht-glow { 0% { opacity:0.6; transform: translateX(-50%) scale(0.95); } 50% { opacity:0.8; transform: translateX(-50%) scale(1); } 100% { opacity:1; transform: translateX(-50%) scale(1.05); } }
@keyframes bht-trophy { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes bht-sparkle { 0%,100% { opacity:0; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.5); } }

.scn-survive-lines-lover { background: linear-gradient(180deg, #ffe8c8 0%, #f5d6a0 30%, #e0b87a 100%), radial-gradient(ellipse at 50% 20%, #fff5e0 0%, transparent 80%); }
.scn-survive-lines-lover .window { position:absolute; top:10%; left:10%; width:60%; height:50%; background: linear-gradient(180deg, #fff5e0 0%, #f0d8a8 100%); border-radius: 10% 10% 5% 5%; border: 4px solid #6a4a2a; box-shadow: inset 0 0 20px rgba(255,255,200,0.3); animation: sll-window 30s ease-in-out infinite alternate; }
.scn-survive-lines-lover .desk { position:absolute; bottom:15%; left:5%; right:5%; height:25%; background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%); border-radius: 8% 8% 3% 3%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-survive-lines-lover .paper { position:absolute; bottom:20%; left:25%; width:40%; height:15%; background: #fcf3df; border-radius: 2%; box-shadow: 0 2px 4px rgba(0,0,0,0.2); transform: rotate(-2deg); animation: sll-paper 8s ease-in-out infinite alternate; }
.scn-survive-lines-lover .quill { position:absolute; bottom:30%; left:40%; width:4px; height:30px; background: linear-gradient(180deg, #f5f5f5 0%, #c0c0c0 100%); border-radius: 50% 50% 20% 20%; transform: rotate(15deg); transform-origin: bottom center; animation: sll-quill 4s ease-in-out infinite; }
.scn-survive-lines-lover .inkwell { position:absolute; bottom:22%; left:60%; width:20px; height:20px; background: linear-gradient(180deg, #2d2d2d 0%, #1a1a1a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.scn-survive-lines-lover .sunbeam { position:absolute; top:10%; left:20%; width:10px; height:60%; background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, transparent 100%); transform: rotate(10deg); animation: sll-beam 12s ease-in-out infinite alternate; }
.scn-survive-lines-lover .dust { position:absolute; top:30%; left:30%; width:4px; height:4px; background: rgba(255,255,200,0.6); border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,255,200,0.4); animation: sll-dust 3s ease-in-out infinite; }
@keyframes sll-window { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes sll-paper { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes sll-quill { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-3px); } }
@keyframes sll-beam { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes sll-dust { 0%,100% { opacity:0; transform: translate(0,0) scale(0.5); } 50% { opacity:1; transform: translate(10px,-10px) scale(1); } }

.scn-morning-cloud-sun-stain { background: linear-gradient(180deg, #ffddaa 0%, #ffb87a 20%, #8b6f8a 50%, #4a3f5e 100%), radial-gradient(ellipse at 70% 30%, #ffdd88 0%, transparent 60%); }
.scn-morning-cloud-sun-stain .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffcc88 0%, #b07a9a 50%, #5a4a6a 100%); animation: mcs-sky 25s ease-in-out infinite alternate; }
.scn-morning-cloud-sun-stain .sun { position:absolute; top:8%; left:55%; width:40px; height:40px; background: radial-gradient(circle, #fff5d0 0%, #ffaa55 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px #ffaa55; animation: mcs-sun 15s ease-in-out infinite alternate; }
.scn-morning-cloud-sun-stain .mountains { position:absolute; bottom:40%; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: mcs-mountain 20s ease-in-out infinite alternate; }
.scn-morning-cloud-sun-stain .meadow { position:absolute; bottom:10%; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.2); animation: mcs-meadow 30s ease-in-out infinite alternate; }
.scn-morning-cloud-sun-stain .stream { position:absolute; bottom:12%; left:30%; right:30%; height:8%; background: linear-gradient(90deg, #88bbdd 0%, #aaddff 50%, #88bbdd 100%); border-radius: 0 50% 0 50%; filter:blur(2px); animation: mcs-stream 6s ease-in-out infinite alternate; }
.scn-morning-cloud-sun-stain .cloud-a { position:absolute; top:15%; left:10%; width:80px; height:20px; background: linear-gradient(180deg, rgba(255,200,150,0.7) 0%, rgba(200,150,200,0.2) 100%); border-radius:50%; filter:blur(8px); animation: mcs-cloud-a 40s linear infinite; }
.scn-morning-cloud-sun-stain .cloud-b { position:absolute; top:25%; right:15%; width:60px; height:15px; background: linear-gradient(180deg, rgba(200,150,200,0.5) 0%, rgba(150,100,150,0.1) 100%); border-radius:50%; filter:blur(6px); animation: mcs-cloud-b 50s linear infinite reverse; }
@keyframes mcs-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes mcs-sun { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.02); } 100% { transform: translateX(-3px) scale(0.98); } }
@keyframes mcs-mountain { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mcs-meadow { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes mcs-stream { 0% { transform: translateX(-10px); } 50% { transform: translateX(10px); } 100% { transform: translateX(-10px); } }
@keyframes mcs-cloud-a { 0% { transform: translateX(-100px); } 50% { transform: translateX(50vw); } 100% { transform: translateX(120vw); } }
@keyframes mcs-cloud-b { 0% { transform: translateX(0); } 50% { transform: translateX(-30vw); } 100% { transform: translateX(-100vw); } }

.scn-beauteous-day-cloud-tears { background: linear-gradient(180deg, #4a5568 0%, #2d3748 30%, #1a202c 100%), radial-gradient(ellipse at 40% 30%, #718096 0%, transparent 70%); }
.scn-beauteous-day-cloud-tears .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #718096 0%, #4a5568 100%); animation: bdc-sky 20s ease-in-out infinite alternate; }
.scn-beauteous-day-cloud-tears .clouds { position:absolute; top:5%; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a5568 0%, #2d3748 100%); border-radius: 0 0 40% 40%; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); animation: bdc-clouds 30s ease-in-out infinite alternate; }
.scn-beauteous-day-cloud-tears .rain-left { position:absolute; top:40%; left:20%; width:2px; height:20%; background: linear-gradient(180deg, #a0b4c8 0%, transparent 100%); opacity:0.5; animation: bdc-rain 0.8s linear infinite; }
.scn-beauteous-day-cloud-tears .rain-right { position:absolute; top:40%; left:60%; width:2px; height:15%; background: linear-gradient(180deg, #a0b4c8 0%, transparent 100%); opacity:0.3; animation: bdc-rain 0.6s linear infinite 0.4s; }
.scn-beauteous-day-cloud-tears .figure { position:absolute; bottom:25%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bdc-figure 2s ease-in-out infinite; }
.scn-beauteous-day-cloud-tears .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2d3748 0%, #1a202c 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 -5px 10px rgba(0,0,0,0.5); }
.scn-beauteous-day-cloud-tears .light-break { position:absolute; top:20%; left:30%; width:40px; height:60%; background: linear-gradient(180deg, rgba(200,180,255,0.3) 0%, transparent 100%); filter:blur(10px); transform: rotate(20deg); animation: bdc-light 8s ease-in-out infinite alternate; }
@keyframes bdc-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes bdc-clouds { 0% { transform: translateY(0); } 50% { transform: translateY(5px); } 100% { transform: translateY(-3px); } }
@keyframes bdc-rain { 0% { transform: translateY(-10px); opacity:0.5; } 50% { transform: translateY(50vh); opacity:0.3; } 100% { transform: translateY(100vh); opacity:0; } }
@keyframes bdc-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(5deg); } 50% { transform: translateX(10px) rotate(-3deg); } 75% { transform: translateX(5px) rotate(2deg); } }
@keyframes bdc-light { 0% { opacity:0.1; transform: rotate(20deg) scale(0.9); } 50% { opacity:0.4; transform: rotate(25deg) scale(1.1); } 100% { opacity:0.2; transform: rotate(15deg) scale(0.95); } }

.scn-stars-judgment-eye-knowledge { background: linear-gradient(180deg, #0d0d2b 0%, #1a1a4e 50%, #2a2a5e 100%), radial-gradient(ellipse at 50% 20%, #4a4a8e 0%, transparent 70%); }
.scn-stars-judgment-eye-knowledge .bg-sky { position:absolute; top:0; left:0; right:0; height:65%; background: linear-gradient(180deg, #0d0d2b 0%, #1a1a4e 100%); animation: sje-sky 20s ease-in-out infinite alternate; }
.scn-stars-judgment-eye-knowledge .star-cluster { position:absolute; top:5%; left:15%; width:70%; height:50%; background: radial-gradient(circle at 30% 40%, rgba(255,255,255,0.8) 0%, transparent 40%), radial-gradient(circle at 70% 60%, rgba(255,255,200,0.6) 0%, transparent 30%); animation: sje-stars 8s ease-in-out infinite; }
.scn-stars-judgment-eye-knowledge .figure { position:absolute; bottom:30%; left:45%; width:20px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sje-figure 5s ease-in-out infinite; }
.scn-stars-judgment-eye-knowledge .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 30% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); animation: sje-ground 15s ease-in-out infinite alternate; }
.scn-stars-judgment-eye-knowledge .telescope { position:absolute; bottom:34%; left:38%; width:40px; height:6px; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 100%); border-radius: 4px; transform-origin: left center; transform: rotate(30deg); animation: sje-telescope 10s ease-in-out infinite; }
.scn-stars-judgment-eye-knowledge .eye-glow { position:absolute; top:25%; left:55%; width:20px; height:20px; background: radial-gradient(circle, #ffddaa 0%, #ffaa55 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,170,85,0.6); animation: sje-eye 4s ease-in-out infinite; }
@keyframes sje-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes sje-stars { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(0.95); opacity:0.7; } }
@keyframes sje-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sje-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sje-telescope { 0% { transform: rotate(30deg); } 50% { transform: rotate(32deg); } 100% { transform: rotate(28deg); } }
@keyframes sje-eye { 0% { transform: scale(0.9); opacity:0.7; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(1); opacity:0.8; } }

.scn-truth-beauty-thrive { background: linear-gradient(180deg, #f5e6c8 0%, #e8d5a8 50%, #d4b87a 100%), radial-gradient(ellipse at 80% 50%, #fff8e0 0%, transparent 60%); }
.scn-truth-beauty-thrive .room-back { position:absolute; inset:0; background: linear-gradient(180deg, #f0e0c0 0%, #dcc8a0 100%); animation: tbt-room 15s ease-in-out infinite alternate; }
.scn-truth-beauty-thrive .window { position:absolute; top:10%; left:15%; width:35%; height:50%; background: linear-gradient(180deg, #fffde6 0%, #f0e0c0 100%); border: 4px solid #8a6a4a; box-shadow: inset 0 0 30px #fffbe0; animation: tbt-window 8s ease-in-out infinite; }
.scn-truth-beauty-thrive .lamp { position:absolute; top:20%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #ffe680 0%, #ffcc44 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(255,204,68,0.8); animation: tbt-lamp 3s ease-in-out infinite; }
.scn-truth-beauty-thrive .table { position:absolute; bottom:25%; left:25%; width:50%; height:10%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: tbt-table 12s ease-in-out infinite; }
.scn-truth-beauty-thrive .book { position:absolute; bottom:32%; left:30%; width:60px; height:15px; background: linear-gradient(180deg, #a05040 0%, #804030 100%); border-radius: 4px; transform-origin: left center; animation: tbt-book 6s ease-in-out infinite; }
.scn-truth-beauty-thrive .vase { position:absolute; bottom:28%; left:50%; width:18px; height:30px; background: linear-gradient(180deg, #5080b0 0%, #306090 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tbt-vase 5s ease-in-out infinite; }
.scn-truth-beauty-thrive .figure-sitting { position:absolute; bottom:22%; left:12%; width:25px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tbt-figure 7s ease-in-out infinite; }
@keyframes tbt-room { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes tbt-window { 0% { opacity:0.8; box-shadow: inset 0 0 30px #fffbe0; } 50% { opacity:1; box-shadow: inset 0 0 50px #fffbe0; } 100% { opacity:0.7; box-shadow: inset 0 0 20px #fffbe0; } }
@keyframes tbt-lamp { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.8; } }
@keyframes tbt-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes tbt-book { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.6); } 100% { transform: scaleX(1); } }
@keyframes tbt-vase { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes tbt-figure { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }

.scn-plants-wasteful-time { background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 50%, #2a3a3a 100%), radial-gradient(ellipse at 50% 0%, #5a6a6a 0%, transparent 70%); }
.scn-plants-wasteful-time .sky-overcast { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #5a6a6a 0%, #3a4a4a 100%); animation: pwt-sky 15s ease-in-out infinite alternate; }
.scn-plants-wasteful-time .cloud-1 { position:absolute; top:10%; left:60%; width:80px; height:20px; background: rgba(80,90,90,0.6); border-radius: 50%; filter: blur(8px); animation: pwt-cloud1 25s linear infinite; }
.scn-plants-wasteful-time .cloud-2 { position:absolute; top:20%; left:10%; width:60px; height:15px; background: rgba(90,100,100,0.5); border-radius: 50%; filter: blur(6px); animation: pwt-cloud2 30s linear infinite reverse; }
.scn-plants-wasteful-time .ground-cracked { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); animation: pwt-ground 1s ease-in-out infinite; }
.scn-plants-wasteful-time .plant { position:absolute; bottom:35%; left:40%; width:10px; height:40px; background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%); border-radius: 4px; transform-origin: bottom center; animation: pwt-plant 4s ease-in-out infinite; }
.scn-plants-wasteful-time .hourglass { position:absolute; bottom:30%; left:55%; width:20px; height:30px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%; animation: pwt-hourglass 6s ease-in-out infinite; }
.scn-plants-wasteful-time .figure-standing { position:absolute; bottom:20%; left:20%; width:18px; height:45px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pwt-figure 3s ease-in-out infinite; }
@keyframes pwt-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes pwt-cloud1 { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }
@keyframes pwt-cloud2 { 0% { transform: translateX(50px); } 100% { transform: translateX(-100vw); } }
@keyframes pwt-ground { 0% { transform: translateX(0); } 25% { transform: translateX(-2px); } 50% { transform: translateX(2px); } 75% { transform: translateX(-1px); } 100% { transform: translateX(0); } }
@keyframes pwt-plant { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(-5deg) scaleY(0.9); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes pwt-hourglass { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.6); } 100% { transform: scaleY(1); } }
@keyframes pwt-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-war-tyrant-time { background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%), radial-gradient(ellipse at 30% 20%, #3a3a5a 0%, transparent 60%); }
.scn-war-tyrant-time .stormy-sky { position:absolute; top:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 60%, #0a0a1a 100%); animation: wtt-sky 10s ease-in-out infinite; }
.scn-war-tyrant-time .fortress { position:absolute; bottom:25%; left:10%; width:40%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.6); animation: wtt-fortress 20s ease-in-out infinite alternate; }
.scn-war-tyrant-time .knight { position:absolute; bottom:30%; left:35%; width:24px; height:50px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wtt-knight 4s ease-in-out infinite; }
.scn-war-tyrant-time .hourglass-war { position:absolute; bottom:40%; left:60%; width:20px; height:30px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%; animation: wtt-hourglass 3s ease-in-out infinite; }
.scn-war-tyrant-time .sword { position:absolute; bottom:38%; left:50%; width:30px; height:4px; background: linear-gradient(90deg, #b0a090 0%, #807060 100%); border-radius: 2px; transform-origin: right center; transform: rotate(-40deg); animation: wtt-sword 2s ease-in-out infinite; }
.scn-war-tyrant-time .banner { position:absolute; top:10%; left:70%; width:40px; height:60px; background: linear-gradient(180deg, #6a4a3a 0%, #5a3a2a 100%); border-radius: 4px; transform-origin: top left; animation: wtt-banner 5s ease-in-out infinite; }
.scn-war-tyrant-time .ground-war { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 20% 20% 0 0; animation: wtt-ground 3s ease-in-out infinite; }
@keyframes wtt-sky { 0% { opacity:0.7; } 25% { opacity:0.9; } 50% { opacity:0.6; } 75% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes wtt-fortress { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes wtt-knight { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes wtt-hourglass { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.5); } 100% { transform: scaleY(1); } }
@keyframes wtt-sword { 0% { transform: rotate(-40deg); } 50% { transform: rotate(-20deg) translateX(5px); } 100% { transform: rotate(-40deg); } }
@keyframes wtt-banner { 0% { transform: scaleX(1) skewY(0deg); } 50% { transform: scaleX(1.2) skewY(5deg); } 100% { transform: scaleX(1) skewY(0deg); } }
@keyframes wtt-ground { 0% { transform: translateX(0); } 25% { transform: translateX(-3px); } 50% { transform: translateX(3px); } 75% { transform: translateX(-2px); } 100% { transform: translateX(0); } }

.scn-sonnet-cxlvi-first {
  background:
    linear-gradient(180deg, #1a0f13 0%, #2d1a20 40%, #3a252c 100%),
    radial-gradient(ellipse at 50% 100%, #4a2e32 0%, transparent 60%);
  overflow: hidden;
}
.scn-sonnet-cxlvi-first .sc1-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0e0a0b 0%, #1f1518 50%, #060303 100%); animation: sc1-fade 20s ease-in-out infinite alternate;
}
.scn-sonnet-cxlvi-first .sc1-wall {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 60%; background: linear-gradient(170deg, #5a3f34 0%, #8a6a50 20%, #6f4f3a 50%, #3f2b21 80%, #2b1b15 100%); border-radius: 5% 5% 20% 20% / 8% 8% 15% 15%; box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 10px 20px rgba(0,0,0,0.5); transform: perspective(600px) rotateX(3deg);
}
.scn-sonnet-cxlvi-first .sc1-window {
  position: absolute; left: 50%; top: 25%; width: 70px; height: 90px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #6a4a2a 0%, #1a0e0a 90%); border: 6px solid #4a3322; border-radius: 12px 12px 8px 8px; box-shadow: 0 0 40px 10px rgba(90,60,30,0.4), inset 0 0 20px rgba(0,0,0,0.8); animation: sc1-glow 6s ease-in-out infinite alternate;
}
.scn-sonnet-cxlvi-first .sc1-figure {
  position: absolute; left: 50%; top: 30%; width: 20px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1012 0%, #0d0809 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.8); animation: sc1-sway 4s ease-in-out infinite;
}
.scn-sonnet-cxlvi-first .sc1-vine {
  position: absolute; left: 5%; right: 5%; top: 30%; height: 70%; background: repeating-linear-gradient(90deg, transparent 0px, transparent 12px, #3a2a1a 12px, #2a1a0e 13px, transparent 13px); opacity: 0.4; filter: blur(1px); animation: sc1-climb 12s linear infinite;
}
.scn-sonnet-cxlvi-first .sc1-worm {
  position: absolute; bottom: 10%; left: 35%; width: 30px; height: 4px; background: #5a4a3a; border-radius: 50%; box-shadow: 0 0 4px #3a2a1a; animation: sc1-worm 3s ease-in-out infinite, sc1-worm-move 8s linear infinite;
}
.scn-sonnet-cxlvi-first .sc1-shadow {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 70%); animation: sc1-shadow-pulse 9s ease-in-out infinite alternate;
}
@keyframes sc1-fade {
  0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; }
}
@keyframes sc1-glow {
  0% { box-shadow: 0 0 20px 5px rgba(90,60,30,0.3); }
  50% { box-shadow: 0 0 60px 15px rgba(140,90,40,0.5); }
  100% { box-shadow: 0 0 30px 8px rgba(90,60,30,0.2); }
}
@keyframes sc1-sway {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes sc1-climb {
  0% { background-position: 0 0; }
  100% { background-position: -200px 0; }
}
@keyframes sc1-worm {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.6); }
  100% { transform: scaleY(1); }
}
@keyframes sc1-worm-move {
  0% { left: 35%; }
  25% { left: 45%; }
  50% { left: 30%; }
  75% { left: 50%; }
  100% { left: 35%; }
}
@keyframes sc1-shadow-pulse {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.7; transform: scaleY(0.8); }
  100% { opacity: 0.4; transform: scaleY(1); }
}

/* Scene 2 */
.scn-sonnet-cxlvi-second {
  background:
    linear-gradient(135deg, #0e0a0c 0%, #1c1318 50%, #0a0708 100%),
    radial-gradient(ellipse at 30% 40%, #2a1a20 0%, transparent 70%);
  overflow: hidden;
}
.scn-sonnet-cxlvi-second .sc2-bg {
  position: absolute; inset: 0; background: linear-gradient(50deg, #120c0e 0%, #2d1f24 60%, #1d1417 100%); animation: sc2-pulse 15s ease-in-out infinite alternate;
}
.scn-sonnet-cxlvi-second .sc2-hourglass {
  position: absolute; left: 50%; top: 15%; width: 80px; height: 160px; transform: translateX(-50%); background: linear-gradient(90deg, #4a3025 0%, #6a4a3a 50%, #4a3025 100%); border-radius: 30% 30% 30% 30%; box-shadow: 0 8px 16px rgba(0,0,0,0.6), inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-sonnet-cxlvi-second .sc2-upper-glass {
  position: absolute; left: 50%; top: 15%; width: 60px; height: 70px; transform: translateX(-50%); background: linear-gradient(180deg, rgba(60,50,40,0.9) 0%, rgba(80,60,50,0.2) 100%); border: 2px solid #5a4035; border-radius: 50% 50% 10% 10%; clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: sc2-swing 8s ease-in-out infinite;
}
.scn-sonnet-cxlvi-second .sc2-lower-glass {
  position: absolute; left: 50%; top: 55%; width: 60px; height: 70px; transform: translateX(-50%); background: linear-gradient(0deg, rgba(60,50,40,0.9) 0%, rgba(80,60,50,0.2) 100%); border: 2px solid #5a4035; border-radius: 10% 10% 50% 50%; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); animation: sc2-swing 8s ease-in-out infinite reverse;
}
.scn-sonnet-cxlvi-second .sc2-sand-top {
  position: absolute; left: 50%; top: 22%; width: 40px; height: 20px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #8a6a40 0%, #4a3020 80%); border-radius: 50%; opacity: 0.7; animation: sc2-pour 4s ease-in-out infinite;
}
.scn-sonnet-cxlvi-second .sc2-sand-bot {
  position: absolute; left: 50%; bottom: 18%; width: 50px; height: 30px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #8a6a40 0%, #3a2010 80%); border-radius: 50%; opacity: 0.9; animation: sc2-pour 4s ease-in-out infinite reverse;
}
.scn-sonnet-cxlvi-second .sc2-death {
  position: absolute; right: 20%; top: 40%; width: 30px; height: 60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30%; clip-path: polygon(0% 0%, 70% 0%, 100% 20%, 80% 50%, 100% 80%, 70% 100%, 0% 100%, 20% 50%, 0% 20%); animation: sc2-loaf 12s linear infinite;
}
.scn-sonnet-cxlvi-second .sc2-soul {
  position: absolute; left: 15%; top: 30%; width: 25px; height: 45px; background: radial-gradient(ellipse at 50% 40%, #b09070 0%, #4a3020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 12px #b09070; animation: sc2-float 7s ease-in-out infinite, sc2-glide 14s linear infinite;
}
@keyframes sc2-pulse {
  0% { opacity: 0.7; } 100% { opacity: 1; }
}
@keyframes sc2-swing {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(2deg); }
  75% { transform: translateX(-50%) rotate(-2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes sc2-pour {
  0% { opacity: 0.6; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleY(1.3); }
  100% { opacity: 0.6; transform: translateX(-50%) scaleY(1); }
}
@keyframes sc2-loaf {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(5px) rotate(3deg); }
  40% { transform: translateX(-5px) rotate(-2deg); }
  60% { transform: translateX(8px) rotate(4deg); }
  80% { transform: translateX(-8px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sc2-float {
  0% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
  100% { transform: translateY(0); }
}
@keyframes sc2-glide {
  0% { left: 15%; }
  50% { left: 25%; }
  100% { left: 15%; }
}

.scn-sonnet-cxlvii-first {
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a2e 40%, #2a1a2e 70%, #1a0a14 100%), radial-gradient(ellipse at 50% 80%, #3a1a2e 0%, transparent 70%);
}
.scn-sonnet-cxlvii-first .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, transparent 60%);
}
.scn-sonnet-cxlvii-first .bed-frame {
  position: absolute; bottom: 8%; left: 5%; right: 5%; height: 28%;
  background: linear-gradient(170deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 6% 6% 3% 3% / 20% 20% 5% 5%;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.6), inset 0 4px 12px rgba(60,30,20,0.3);
}
.scn-sonnet-cxlvii-first .mattress {
  position: absolute; bottom: 12%; left: 8%; right: 8%; height: 18%;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1a12 100%);
  border-radius: 10% 10% 4% 4% / 30% 30% 10% 10%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
}
.scn-sonnet-cxlvii-first .figure {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 16%;
  background: linear-gradient(170deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: sc1-breathe 4s ease-in-out infinite;
}
.scn-sonnet-cxlvii-first .candle {
  position: absolute; bottom: 36%; left: 15%; width: 5px; height: 14px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c08050 60%, #8a6040 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: inset 0 2px 4px rgba(255,220,180,0.4);
  animation: sc1-flicker 0.8s ease-in-out infinite;
}
.scn-sonnet-cxlvii-first .candle-glow {
  position: absolute; bottom: 34%; left: 12%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffc880 0%, #d09050 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 24px 6px rgba(255,180,100,0.6), 0 0 48px 14px rgba(255,180,100,0.3);
  animation: sc1-glow 3s ease-in-out infinite;
}
.scn-sonnet-cxlvii-first .fever-haze {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 40%, rgba(60,20,30,0.25) 0%, transparent 70%);
  filter: blur(8px);
  animation: sc1-haze 12s ease-in-out infinite;
}
@keyframes sc1-flicker {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  40% { transform: scaleY(0.85) translateY(-1px); opacity: 1; }
  70% { transform: scaleY(1.05) translateY(1px); opacity: 0.85; }
  100% { transform: scaleY(1) translateY(0); opacity: 0.9; }
}
@keyframes sc1-breathe {
  0% { transform: translateY(0) scale(1); }
  40% { transform: translateY(-2px) scale(1.02); }
  70% { transform: translateY(1px) scale(0.98); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes sc1-glow {
  0% { box-shadow: 0 0 20px 6px rgba(255,180,100,0.6), 0 0 40px 12px rgba(255,180,100,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 32px 10px rgba(255,200,130,0.8), 0 0 64px 20px rgba(255,200,130,0.4); opacity: 1; }
  100% { box-shadow: 0 0 20px 6px rgba(255,180,100,0.6), 0 0 40px 12px rgba(255,180,100,0.3); opacity: 0.8; }
}
@keyframes sc1-haze {
  0% { opacity: 0.2; transform: scale(1); }
  40% { opacity: 0.4; transform: scale(1.04); }
  80% { opacity: 0.25; transform: scale(0.97); }
  100% { opacity: 0.2; transform: scale(1); }
}

.scn-sonnet-cxlvii-second {
  background: linear-gradient(135deg, #0a0a0f 0%, #1a0a0f 30%, #0f0f1a 60%, #0a0a0f 100%), radial-gradient(ellipse at 30% 70%, #1a0a0f 0%, transparent 60%);
}
.scn-sonnet-cxlvii-second .cell-walls {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, rgba(10,5,10,0.9) 0%, rgba(20,10,15,0.7) 50%, transparent 80%);
}
.scn-sonnet-cxlvii-second .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #0f0a0a 0%, #1a1210 100%);
  border-radius: 0 0 4% 4% / 0 0 10% 10%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
}
.scn-sonnet-cxlvii-second .figure {
  position: absolute; bottom: 16%; left: 30%; width: 22%; height: 40%;
  background: linear-gradient(170deg, #0f0505 0%, #050303 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: sc2-shudder 2.5s ease-in-out infinite;
}
.scn-sonnet-cxlvii-second .desk {
  position: absolute; bottom: 14%; left: 50%; width: 30%; height: 10%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 4% 4% 2% 2% / 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6), inset 0 2px 6px rgba(60,30,20,0.2);
}
.scn-sonnet-cxlvii-second .papers.p1 {
  position: absolute; bottom: 18%; left: 52%; width: 8%; height: 5%;
  background: linear-gradient(180deg, #3a3028 0%, #2a2018 100%);
  border-radius: 2%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-8deg);
  animation: sc2-paper1 6s ease-in-out infinite;
}
.scn-sonnet-cxlvii-second .papers.p2 {
  position: absolute; bottom: 16%; left: 60%; width: 7%; height: 4%;
  background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%);
  border-radius: 2%;
  box-shadow: 3px 1px 5px rgba(0,0,0,0.5);
  transform: rotate(12deg);
  animation: sc2-paper2 7s ease-in-out infinite 1s;
}
.scn-sonnet-cxlvii-second .lantern {
  position: absolute; bottom: 30%; left: 8%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #c0a080 0%, #8a6a50 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  transform-origin: top center;
  box-shadow: inset 0 2px 4px rgba(200,160,120,0.3);
  animation: sc2-swing 3s ease-in-out infinite;
}
.scn-sonnet-cxlvii-second .lantern-glow {
  position: absolute; bottom: 28%; left: 4%; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffb070 0%, #d08040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(255,160,60,0.5), 0 0 60px 16px rgba(255,160,60,0.2);
  animation: sc2-glow 3s ease-in-out infinite;
}
@keyframes sc2-shudder {
  0% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-3px) rotate(-2deg); }
  60% { transform: translateY(2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes sc2-swing {
  0% { transform: rotate(-12deg) translateX(0); }
  50% { transform: rotate(12deg) translateX(6px); }
  100% { transform: rotate(-12deg) translateX(0); }
}
@keyframes sc2-paper1 {
  0% { transform: translateX(0) rotate(-8deg); opacity: 0.6; }
  50% { transform: translateX(10px) rotate(5deg); opacity: 1; }
  100% { transform: translateX(0) rotate(-8deg); opacity: 0.6; }
}
@keyframes sc2-paper2 {
  0% { transform: translateX(0) rotate(12deg) scale(1); opacity: 0.5; }
  50% { transform: translateX(-6px) rotate(-5deg) scale(0.95); opacity: 0.9; }
  100% { transform: translateX(0) rotate(12deg) scale(1); opacity: 0.5; }
}
@keyframes sc2-glow {
  0% { box-shadow: 0 0 30px 8px rgba(255,160,60,0.5), 0 0 60px 16px rgba(255,160,60,0.2); transform: translateX(0); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 12px rgba(255,180,80,0.7), 0 0 80px 24px rgba(255,180,80,0.3); transform: translateX(12px); opacity: 1; }
  100% { box-shadow: 0 0 30px 8px rgba(255,160,60,0.5), 0 0 60px 16px rgba(255,160,60,0.2); transform: translateX(0); opacity: 0.8; }
}

.scn-sonnet-cxlvii-first {
  background: 
    linear-gradient(180deg, #0d0a1a 0%, #1a102a 30%, #2a1a3a 60%, #0d0a1a 100%),
    radial-gradient(ellipse at 30% 60%, #3a1a2a 0%, transparent 70%);
}
.scn-sonnet-cxlvii-first .sx1-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a0a1a 0%, #2a1525 50%, #0d0a0d 100%);
  opacity: 0.6;
  animation: sx1-bg-pulse 12s ease-in-out infinite alternate;
}
.scn-sonnet-cxlvii-first .sx1-bed {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 20px 20px 10px 10px;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.8) inset;
}
.scn-sonnet-cxlvii-first .sx1-figure {
  position: absolute; bottom: 22%; left: 30%; width: 40%; height: 18%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(1.2);
  animation: sx1-breathe 4s ease-in-out infinite;
}
.scn-sonnet-cxlvii-first .sx1-window {
  position: absolute; top: 12%; left: 35%; width: 30%; height: 25%;
  background: linear-gradient(135deg, #2a2a3a 0%, #0d0d1a 100%);
  border: 2px solid #3a2a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(100,80,120,0.3);
}
.scn-sonnet-cxlvii-first .sx1-physician {
  position: absolute; bottom: 15%; right: 10%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 50%, #0a0a0a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 60% 60%;
  transform: rotate(5deg);
  animation: sx1-approach 15s ease-in-out infinite;
}
.scn-sonnet-cxlvii-first .sx1-glow {
  position: absolute; top: 20%; left: 20%; width: 60%; height: 50%;
  background: radial-gradient(ellipse, rgba(100,20,30,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: sx1-fever 6s ease-in-out infinite alternate;
}
.scn-sonnet-cxlvii-first .sx1-candle {
  position: absolute; bottom: 38%; left: 22%; width: 8px; height: 12px;
  background: radial-gradient(circle at 50% 20%, #ffd080 0%, #b05820 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,100,30,0.6);
  animation: sx1-flicker 2s ease-in-out infinite;
}
.scn-sonnet-cxlvii-first .sx1-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #0a0a0a 0%, transparent 100%);
  opacity: 0.5;
  animation: sx1-shadow-move 20s linear infinite alternate;
}

@keyframes sx1-bg-pulse {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}
@keyframes sx1-breathe {
  0% { transform: scaleX(1.2) scaleY(1); }
  50% { transform: scaleX(1.22) scaleY(1.03); }
  100% { transform: scaleX(1.2) scaleY(1); }
}
@keyframes sx1-approach {
  0% { transform: rotate(5deg) translateX(0); opacity: 0.3; }
  30% { transform: rotate(0deg) translateX(-10px); opacity: 0.8; }
  70% { transform: rotate(3deg) translateX(-5px); opacity: 0.9; }
  100% { transform: rotate(5deg) translateX(0); opacity: 0.3; }
}
@keyframes sx1-fever {
  0% { opacity: 0.2; transform: scale(0.95); }
  50% { opacity: 0.5; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(1); }
}
@keyframes sx1-flicker {
  0% { opacity: 0.7; box-shadow: 0 0 15px 4px rgba(200,100,30,0.4); }
  30% { opacity: 1; box-shadow: 0 0 25px 8px rgba(200,100,30,0.8); }
  70% { opacity: 0.8; box-shadow: 0 0 20px 6px rgba(200,100,30,0.6); }
  100% { opacity: 0.7; box-shadow: 0 0 15px 4px rgba(200,100,30,0.4); }
}
@keyframes sx1-shadow-move {
  0% { opacity: 0.3; transform: translateY(0); }
  50% { opacity: 0.6; transform: translateY(-5px); }
  100% { opacity: 0.4; transform: translateY(2px); }
}

.scn-sonnet-cxlvii-second {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #151530 40%, #0d0d1a 100%),
    radial-gradient(ellipse at 50% 100%, #0a0a1a 0%, #000005 80%);
}
.scn-sonnet-cxlvii-second .sky {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #12122a 0%, transparent 100%);
  animation: sn2-sky 18s ease-in-out infinite alternate;
}
.scn-sonnet-cxlvii-second .moon-light {
  position: absolute;
  top: 12%;
  left: 70%;
  width: 50px;
  height: 50px;
  background: radial-gradient(circle, rgba(180,180,200,0.06) 0%, transparent 80%);
  border-radius: 50%;
  animation: sn2-moon 25s ease-in-out infinite alternate;
}
.scn-sonnet-cxlvii-second .hills {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 28%;
  background: linear-gradient(180deg, #0a0a1a 0%, #030310 100%);
  border-radius: 50% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.9);
  animation: sn2-hills 14s ease-in-out infinite;
}
.scn-sonnet-cxlvii-second .figure {
  position: absolute;
  bottom: 28%;
  left: 50%;
  transform: translateX(-50%);
  width: 24px;
  height: 64px;
  background: linear-gradient(180deg, #1a1a30 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: sn2-figure 7s ease-in-out infinite;
}
.scn-sonnet-cxlvii-second .shadow {
  position: absolute;
  bottom: 25%;
  left: 48%;
  width: 48px;
  height: 6px;
  background: rgba(0,0,0,0.7);
  border-radius: 50%;
  filter: blur(3px);
  animation: sn2-shadow 7s ease-in-out infinite;
}
.scn-sonnet-cxlvii-second .dust-a,
.scn-sonnet-cxlvii-second .dust-b {
  position: absolute;
  width: 4px;
  height: 4px;
  background: rgba(200,200,220,0.2);
  border-radius: 50%;
}
.scn-sonnet-cxlvii-second .dust-a {
  top: 25%;
  left: 30%;
  animation: sn2-dust 9s linear infinite;
}
.scn-sonnet-cxlvii-second .dust-b {
  top: 35%;
  left: 65%;
  width: 3px;
  height: 3px;
  animation: sn2-dust 12s linear infinite 3s;
}
@keyframes sn2-sky {
  0% { opacity: 0.85; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes sn2-moon {
  0% { opacity: 0.2; transform: scale(0.9); }
  50% { opacity: 0.5; transform: scale(1.1); }
  100% { opacity: 0.2; transform: scale(0.9); }
}
@keyframes sn2-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes sn2-figure {
  0% { transform: translateX(-50%) rotate(-3deg); }
  25% { transform: translateX(-45%) rotate(1deg); }
  50% { transform: translateX(-50%) rotate(-1deg); }
  75% { transform: translateX(-55%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-3deg); }
}
@keyframes sn2-shadow {
  0% { transform: scaleX(0.7); opacity: 0.5; }
  50% { transform: scaleX(1.3); opacity: 0.9; }
  100% { transform: scaleX(0.7); opacity: 0.5; }
}
@keyframes sn2-dust {
  0% { transform: translate(0, 0); opacity: 0; }
  25% { opacity: 0.7; }
  50% { transform: translate(12px, -28px); opacity: 0; }
  75% { opacity: 0.2; }
  100% { transform: translate(0, 0); opacity: 0; }
}

.scn-sonnet-cxlvi-second {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #14143a 50%, #1a1a3e 100%),
    radial-gradient(ellipse at 50% 80%, #1a1a3e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-sonnet-cxlvi-second .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 100%);
  animation: s146-bg 30s ease-in-out infinite alternate;
  z-index: 0;
}
.scn-sonnet-cxlvi-second .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a100a 0%, #0a0500 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  z-index: 1;
}
.scn-sonnet-cxlvi-second .table {
  position: absolute; bottom: 30%; left: 25%; width: 50%; height: 6%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: s146-table 12s ease-in-out infinite;
  z-index: 2;
}
.scn-sonnet-cxlvi-second .figure {
  position: absolute; bottom: 31%; left: 42%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #0a0a1a 0%, #14142a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s146-figure 6s ease-in-out infinite;
  z-index: 3;
}
.scn-sonnet-cxlvi-second .candle {
  position: absolute; bottom: 32%; left: 48%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #d4a56a 0%, #8b6b40 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,.5);
  z-index: 4;
}
.scn-sonnet-cxlvi-second .flame {
  position: absolute; bottom: 59%; left: 48.2%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ffd070 0%, #ff8c00 40%, #ff4a00 70%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 10px rgba(255,140,0,.6), 0 0 40px 20px rgba(255,140,0,.3);
  animation: s146-flame 1.5s ease-in-out infinite;
  z-index: 5;
}
.scn-sonnet-cxlvi-second .hourglass {
  position: absolute; bottom: 27%; left: 53%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #b0a080 0%, #807060 100%);
  clip-path: polygon(50% 0%, 100% 30%, 100% 70%, 50% 100%, 0% 70%, 0% 30%);
  animation: s146-hourglass 20s ease-in-out infinite;
  z-index: 6;
}
.scn-sonnet-cxlvi-second .book {
  position: absolute; bottom: 32%; left: 35%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #5a4020 0%, #3a2a10 100%);
  border-radius: 1px 6px 6px 1px;
  transform: rotate(-5deg);
  animation: s146-book 15s ease-in-out infinite;
  z-index: 7;
}
@keyframes s146-bg {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.03); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes s146-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes s146-figure {
  0% { transform: translate(0,0) rotate(-1deg); }
  33% { transform: translate(0,-2px) rotate(1deg); }
  66% { transform: translate(0,1px) rotate(0); }
  100% { transform: translate(0,0) rotate(-0.5deg); }
}
@keyframes s146-flame {
  0% { transform: scale(1) translate(0,0); opacity: 0.9; box-shadow: 0 0 10px 5px rgba(255,140,0,.7); }
  30% { transform: scale(1.1,1.05) translate(1px,-1px); opacity: 1; box-shadow: 0 0 15px 8px rgba(255,140,0,.8); }
  60% { transform: scale(0.95,1.1) translate(-1px,0); opacity: 0.8; box-shadow: 0 0 8px 3px rgba(255,140,0,.5); }
  100% { transform: scale(1) translate(0,0); opacity: 0.9; box-shadow: 0 0 10px 5px rgba(255,140,0,.7); }
}
@keyframes s146-hourglass {
  0% { transform: rotate(0deg) scale(1); }
  33% { transform: rotate(2deg) scale(1.02); }
  66% { transform: rotate(-2deg) scale(0.98); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes s146-book {
  0% { transform: rotate(-5deg) translate(0,0); }
  50% { transform: rotate(-3deg) translate(1px,-1px); }
  100% { transform: rotate(-5deg) translate(0,0); }
}

.scn-sonnet-cxlvi-first {
  background: linear-gradient(180deg, #1a1a1a 0%, #0f0f0f 50%, #050505 100%), radial-gradient(ellipse at 50% 100%, #1a1a1a 0%, transparent 70%);
}
.scn-sonnet-cxlvi-first .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2520 0%, #1a1a1a 100%);
}
.scn-sonnet-cxlvi-first .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0f0f0f 0%, #080808 100%);
}
.scn-sonnet-cxlvi-first .window {
  position: absolute; left: 50%; top: 22%; transform: translateX(-50%);
  width: 40px; height: 50px;
  background: rgba(200,200,200,0.05);
  border: 1px solid rgba(200,200,200,0.1);
  box-shadow: 0 0 6px 2px rgba(180,180,180,0.05);
  border-radius: 2px;
  animation: son-window 5s ease-in-out infinite;
}
.scn-sonnet-cxlvi-first .figure {
  position: absolute; bottom: 34%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 60px;
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  background: #0a0a0a;
  animation: son-figure 4s ease-in-out infinite;
}
.scn-sonnet-cxlvi-first .shadow {
  position: absolute; bottom: 29%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 8px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  animation: son-shadow 4s ease-in-out infinite;
}
.scn-sonnet-cxlvi-first .crack-a {
  position: absolute; left: 30%; top: 15%; width: 2px; height: 40px;
  background: #333; border-radius: 1px;
  transform: rotate(15deg);
  animation: son-crack-a 8s ease-in-out infinite;
}
.scn-sonnet-cxlvi-first .crack-b {
  position: absolute; left: 65%; top: 25%; width: 3px; height: 30px;
  background: #2a2a2a; border-radius: 1px;
  transform: rotate(-10deg);
  animation: son-crack-b 8s ease-in-out infinite reverse;
}
.scn-sonnet-cxlvi-first .dust-a {
  position: absolute; left: 40%; top: 50%; width: 3px; height: 3px;
  background: rgba(200,200,200,0.1); border-radius: 50%;
  animation: son-dust-a 12s linear infinite;
}
.scn-sonnet-cxlvi-first .dust-b {
  position: absolute; left: 60%; top: 60%; width: 2px; height: 2px;
  background: rgba(200,200,200,0.08); border-radius: 50%;
  animation: son-dust-b 15s linear infinite 3s;
}

@keyframes son-window {
  0% { opacity: 0.3; box-shadow: 0 0 4px 1px rgba(180,180,180,0.03); }
  50% { opacity: 0.6; box-shadow: 0 0 8px 3px rgba(180,180,180,0.07); }
  100% { opacity: 0.4; box-shadow: 0 0 5px 2px rgba(180,180,180,0.05); }
}
@keyframes son-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes son-shadow {
  0% { transform: translateX(-50%) scaleX(1); opacity: 0.5; }
  50% { transform: translateX(-50%) scaleX(0.9); opacity: 0.6; }
  100% { transform: translateX(-50%) scaleX(1); opacity: 0.5; }
}
@keyframes son-crack-a {
  0% { transform: rotate(15deg) scaleY(1); }
  50% { transform: rotate(15deg) scaleY(1.02); }
  100% { transform: rotate(15deg) scaleY(1); }
}
@keyframes son-crack-b {
  0% { transform: rotate(-10deg) scaleY(1); }
  50% { transform: rotate(-10deg) scaleY(1.01); }
  100% { transform: rotate(-10deg) scaleY(1); }
}
@keyframes son-dust-a {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  25% { opacity: 0.2; }
  50% { transform: translateY(-120px) translateX(8px); opacity: 0.15; }
  100% { transform: translateY(-300px) translateX(15px); opacity: 0; }
}
@keyframes son-dust-b {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  30% { opacity: 0.15; }
  60% { transform: translateY(-100px) translateX(-5px); opacity: 0.1; }
  100% { transform: translateY(-250px) translateX(-10px); opacity: 0; }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.drop { position: absolute; pointer-events: none; }
.gull { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.steam { position: absolute; pointer-events: none; }
.will { position: absolute; pointer-events: none; }
.word { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-tongue-tied-muse { background: linear-gradient(45deg, #2d1e16 0%, #4a3022 50%, #5c3f2e 100%), radial-gradient(ellipse at 60% 20%, #7a5a42 0%, transparent 70%); }
.scn-tongue-tied-muse .ttm-room { position:absolute; inset:0; background: linear-gradient(180deg, #2d1e16 0%, #1f1410 100%); }
.scn-tongue-tied-muse .ttm-wall { position:absolute; bottom:30%; left:10%; right:10%; height:70%; background: linear-gradient(135deg, #6a4d3a 0%, #4a3224 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,.5); animation: ttm-wall 12s ease-in-out infinite alternate; }
.scn-tongue-tied-muse .ttm-window { position:absolute; top:10%; right:15%; width:50px; height:70px; background: linear-gradient(180deg, #4a6a7a 0%, #2a3a4a 100%); border:2px solid #3a2a1a; border-radius:4% 4% 8% 8%; box-shadow: inset 0 0 20px rgba(90,130,150,.3); animation: ttm-window 8s ease-in-out infinite alternate; }
.scn-tongue-tied-muse .ttm-curtain { position:absolute; top:9%; right:15%; width:60px; height:72px; background: linear-gradient(90deg, #6e4e3e 0%, #8a6a5a 50%, #6e4e3e 100%); border-radius:8% 8% 0 0; opacity:.7; transform: scaleX(1.2); animation: ttm-curtain 20s ease-in-out infinite; }
.scn-tongue-tied-muse .ttm-lamp { position:absolute; bottom:35%; left:20%; width:12px; height:16px; background: radial-gradient(circle at 50% 30%, #d4a060 0%, #b08040 60%, #704020 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 30px 10px #b08040, 0 0 60px 20px rgba(176,128,64,.3); animation: ttm-lamp 4s ease-in-out infinite alternate; }
.scn-tongue-tied-muse .ttm-desk { position:absolute; bottom:25%; left:15%; right:25%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius:4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-tongue-tied-muse .ttm-figure { position:absolute; bottom:28%; left:20%; width:20px; height:36px; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ttm-figure 6s ease-in-out infinite; }
.scn-tongue-tied-muse .ttm-shadow { position:absolute; bottom:25%; left:19%; width:24px; height:8px; background: rgba(0,0,0,.3); border-radius:50%; filter:blur(3px); animation: ttm-shadow 6s ease-in-out infinite; }
@keyframes ttm-wall { 0%,100% { opacity:.85 } 50% { opacity:.95 } }
@keyframes ttm-window { 0% { transform: scaleY(1) translateY(0); opacity:.7 } 50% { transform: scaleY(1.02) translateY(-2px); opacity:.9 } 100% { transform: scaleY(1) translateY(0); opacity:.75 } }
@keyframes ttm-curtain { 0%,100% { transform: scaleX(1.2) translateX(0) } 50% { transform: scaleX(1.15) translateX(-3px) } }
@keyframes ttm-lamp { 0% { transform: translateY(0); box-shadow: 0 0 25px 8px #b08040 } 50% { transform: translateY(-2px); box-shadow: 0 0 35px 12px #d4a060 } 100% { transform: translateY(0); box-shadow: 0 0 25px 8px #b08040 } }
@keyframes ttm-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(1deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes ttm-shadow { 0%,100% { transform: translateX(0) scale(1) } 50% { transform: translateX(8px) scale(1.1) } }

.scn-cupid-brand-asleep {
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 40%, #334155 70%, #475569 100%),
              radial-gradient(ellipse at 50% 20%, #5b7c8a 0%, transparent 60%);
}
.scn-cupid-brand-asleep .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 80%);
  animation: cba-sky 20s ease-in-out infinite alternate;
}
.scn-cupid-brand-asleep .moon {
  position: absolute; top: 10%; left: 70%;
  width: 60px; height: 60px;
  background: radial-gradient(circle at 35% 35%, #f8fafc 0%, #cbd5e1 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(203,213,225,0.4);
  animation: cba-moon 8s ease-in-out infinite alternate;
}
.scn-cupid-brand-asleep .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-cupid-brand-asleep .fountain {
  position: absolute; bottom: 30%; left: 50%;
  width: 100px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #334155 0%, #1e293b 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-cupid-brand-asleep .glow-water {
  position: absolute; bottom: 32%; left: 50%;
  width: 70px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #f59e0b 0%, #d97706 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: cba-water-glow 4s ease-in-out infinite alternate;
}
.scn-cupid-brand-asleep .cupid-sleep {
  position: absolute; bottom: 20%; left: 25%;
  width: 50px; height: 40px;
  background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cba-sleep 6s ease-in-out infinite;
}
.scn-cupid-brand-asleep .torch {
  position: absolute; bottom: 22%; left: 32%;
  width: 12px; height: 30px;
  background: linear-gradient(180deg, #451a03 0%, #78350f 100%);
  border-radius: 4px;
  transform: rotate(-30deg);
  animation: cba-torch 5s ease-in-out infinite;
}
.scn-cupid-brand-asleep .torch::after {
  content: '';
  position: absolute; top: -10px; left: 50%;
  width: 14px; height: 14px;
  background: radial-gradient(circle, #f59e0b 0%, #d97706 60%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 10px rgba(245,158,11,0.5);
  animation: cba-flame 1.5s ease-in-out infinite alternate;
}
.scn-cupid-brand-asleep .maid {
  position: absolute; bottom: 22%; left: 55%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #334155 0%, #1e293b 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: cba-walk 8s ease-in-out infinite;
}
@keyframes cba-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes cba-moon {
  0% { box-shadow: 0 0 40px 15px rgba(203,213,225,0.4); }
  50% { box-shadow: 0 0 60px 25px rgba(203,213,225,0.6); }
  100% { box-shadow: 0 0 45px 18px rgba(203,213,225,0.5); }
}
@keyframes cba-water-glow {
  0% { opacity: 0.3; filter: blur(8px); }
  50% { opacity: 0.9; filter: blur(5px); }
  100% { opacity: 0.5; filter: blur(6px); }
}
@keyframes cba-sleep {
  0% { transform: scaleY(1) translateY(0); }
  25% { transform: scaleY(1.02) translateY(-1px); }
  50% { transform: scaleY(0.98) translateY(0); }
  75% { transform: scaleY(1.01) translateY(-0.5px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes cba-torch {
  0% { transform: rotate(-30deg); }
  50% { transform: rotate(-28deg) translateY(2px); }
  100% { transform: rotate(-30deg); }
}
@keyframes cba-flame {
  0% { transform: translateX(-50%) scale(1); opacity: 0.8; }
  50% { transform: translateX(-50%) scale(1.2); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.9); opacity: 0.7; }
}
@keyframes cba-walk {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-8px) rotate(-2deg); }
  50% { transform: translateX(-16px) rotate(0deg); }
  75% { transform: translateX(-24px) rotate(2deg); }
  100% { transform: translateX(-32px) rotate(0deg); }
}

.scn-lord-of-love { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 30%, #8a5a2a 0%, transparent 70%); }
.scn-lord-of-love .wall { position:absolute; inset:0; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); }
.scn-lord-of-love .table { position:absolute; bottom:20%; left:25%; right:25%; height:10%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,.6); }
.scn-lord-of-love .candle-glow { position:absolute; bottom:35%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%); animation: lol-glow 4s ease-in-out infinite alternate; }
.scn-lord-of-love .candle-wax { position:absolute; bottom:35%; left:50%; width:8px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #f0e0b0 0%, #c0a070 100%); border-radius: 2px 2px 4px 4px; }
.scn-lord-of-love .parchment { position:absolute; bottom:22%; left:30%; width:100px; height:70px; background: linear-gradient(180deg, #f5e8c0 0%, #e0d0a0 100%); border-radius: 4px; transform: rotate(-2deg); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: lol-parchment 12s ease-in-out infinite; }
.scn-lord-of-love .quill { position:absolute; bottom:30%; left:55%; width:4px; height:50px; background: linear-gradient(180deg, #e0c090 0%, #a08060 100%); transform: rotate(15deg); border-radius: 50% 50% 2px 2px; animation: lol-quill 3s ease-in-out infinite alternate; }
.scn-lord-of-love .hand { position:absolute; bottom:22%; left:45%; width:20px; height:30px; background: radial-gradient(ellipse at 50% 80%, #d4b89a 0%, #b09070 60%, #7a5a3a 100%); border-radius: 40% 40% 30% 30%; transform: rotate(-10deg); animation: lol-hand 6s ease-in-out infinite; }
.scn-lord-of-love .inkwell { position:absolute; bottom:22%; left:65%; width:20px; height:25px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20%; box-shadow: inset 0 2px 4px rgba(255,255,255,.1); }
@keyframes lol-glow { 0% { opacity:.7; transform: translateX(-50%) scale(.95); } 50% { opacity:1; transform: translateX(-50%) scale(1.05); } 100% { opacity:.8; transform: translateX(-50%) scale(.98); } }
@keyframes lol-parchment { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } }
@keyframes lol-quill { 0% { transform: rotate(10deg); } 100% { transform: rotate(20deg); } }
@keyframes lol-hand { 0%,100% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(4px); } }

.scn-weary-toil-bed { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 80%, #1a1a2a 0%, transparent 70%); }
.scn-weary-toil-bed .wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-weary-toil-bed .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-weary-toil-bed .bed-frame { position:absolute; bottom:15%; left:15%; right:15%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 6px; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-weary-toil-bed .bedding { position:absolute; bottom:17%; left:18%; right:18%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; }
.scn-weary-toil-bed .pillow { position:absolute; bottom:35%; left:25%; width:70px; height:20px; background: radial-gradient(ellipse, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50%; }
.scn-weary-toil-bed .figure { position:absolute; bottom:18%; left:35%; width:50px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30%; transform: rotate(5deg); animation: wtb-figure 6s ease-in-out infinite; }
.scn-weary-toil-bed .window-light { position:absolute; top:10%; right:15%; width:30px; height:50px; background: radial-gradient(ellipse, #4a6a8a 0%, transparent 70%); animation: wtb-light 8s ease-in-out infinite alternate; }
.scn-weary-toil-bed .shadow-bars { position:absolute; top:10%; right:15%; width:30px; height:50px; background: repeating-linear-gradient(90deg, transparent 0px 3px, #0a0a1a 3px 6px); animation: wtb-bars 12s linear infinite; }
@keyframes wtb-figure { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } }
@keyframes wtb-light { 0% { opacity:.3; } 50% { opacity:.7; } 100% { opacity:.4; } }
@keyframes wtb-bars { 0% { opacity:.5; } 50% { opacity:.3; } 100% { opacity:.5; } }

.scn-day-night-torture { background: linear-gradient(180deg, #0a0a0a 0%, #1a1a2a 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 50%, #2a2a3a 0%, transparent 80%); }
.scn-day-night-torture .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); }
.scn-day-night-torture .window { position:absolute; top:5%; left:10%; width:40px; height:60px; background: #2a3a4a; border: 4px solid #1a1a2a; border-radius: 4px; overflow:hidden; animation: dnt-window 20s ease-in-out infinite alternate; }
.scn-day-night-torture .sun-moon { position:absolute; top:10%; left:15%; width:20px; height:20px; background: radial-gradient(circle, #ffd080 0%, #ffa040 100%); border-radius:50%; animation: dnt-sunmoon 20s ease-in-out infinite alternate; }
.scn-day-night-torture .figure-tortured { position:absolute; bottom:20%; left:40%; width:40px; height:90px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20%; transform: rotate(10deg); animation: dnt-figure 4s ease-in-out infinite; }
.scn-day-night-torture .chains { position:absolute; bottom:30%; left:45%; width:4px; height:60px; background: #5a5a5a; border-radius: 2px; animation: dnt-chains 3s ease-in-out infinite; }
.scn-day-night-torture .hourglass { position:absolute; bottom:15%; right:15%; width:30px; height:50px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 30% 30% 20% 20%; }
.scn-day-night-torture .sand-fall { position:absolute; bottom:25%; right:20%; width:2px; height:30px; background: #c0a060; animation: dnt-sand 8s linear infinite; }
@keyframes dnt-window { 0% { background:#2a3a4a; } 50% { background:#4a6a8a; } 100% { background:#2a3a4a; } }
@keyframes dnt-sunmoon { 0% { transform: translate(-10px,10px); opacity:.8; } 50% { transform: translate(0,0); opacity:1; } 100% { transform: translate(10px,-10px); opacity:.7; } }
@keyframes dnt-figure { 0%,100% { transform: rotate(10deg) translateX(0); } 25% { transform: rotate(15deg) translateX(5px); } 75% { transform: rotate(5deg) translateX(-5px); } }
@keyframes dnt-chains { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }
@keyframes dnt-sand { 0% { height:30px; opacity:.8; } 100% { height:10px; opacity:.2; } }

.scn-disgrace-fortune { background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 30%, #5a5a6a 0%, transparent 70%); }
.scn-disgrace-fortune .sky-overcast { position:absolute; inset:0; background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 40%, #3a3a4a 100%); animation: df-sky 15s ease-in-out infinite alternate; }
.scn-disgrace-fortune .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 40% 40% 0 0; }
.scn-disgrace-fortune .figure-alone { position:absolute; bottom:25%; left:45%; width:40px; height:80px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30%; transform: translateX(-50%); animation: df-figure 6s ease-in-out infinite; }
.scn-disgrace-fortune .rock { position:absolute; bottom:30%; left:30%; width:60px; height:30px; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); border-radius: 40% 40% 20% 20%; }
.scn-disgrace-fortune .tear-drop { position:absolute; bottom:35%; left:48%; width:4px; height:6px; background: #6a8aaa; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; animation: df-tear 4s ease-in-out infinite; }
.scn-disgrace-fortune .cloud-1 { position:absolute; top:15%; left:10%; width:80px; height:20px; background: linear-gradient(180deg, #7a7a8a 0%, #5a5a6a 100%); border-radius: 50%; filter: blur(4px); animation: df-cloud1 30s linear infinite; }
.scn-disgrace-fortune .cloud-2 { position:absolute; top:25%; right:5%; width:60px; height:15px; background: linear-gradient(180deg, #7a7a8a 0%, #5a5a6a 100%); border-radius: 50%; filter: blur(3px); animation: df-cloud2 40s linear infinite reverse; }
.scn-disgrace-fortune .shadow-pool { position:absolute; bottom:22%; left:40%; width:60px; height:10px; background: radial-gradient(ellipse, #1a1a2a 0%, transparent 70%); opacity:.5; }
@keyframes df-sky { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.8; } }
@keyframes df-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0); } 25% { transform: translateX(-50%) translateY(-3px) rotate(-3deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(2deg); } }
@keyframes df-tear { 0% { opacity:0; transform: translateY(0); } 30% { opacity:.8; } 70% { opacity:.8; transform: translateY(10px); } 100% { opacity:0; transform: translateY(15px); } }
@keyframes df-cloud1 { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes df-cloud2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* that-you-have-her - dim interior, two figures, candle */
.scn-that-you-have-her { background: linear-gradient(180deg, #1a1510 0%, #2c2418 40%, #1a1510 100%), radial-gradient(ellipse at 45% 60%, #4a3a28 0%, transparent 70%); }
.scn-that-you-have-her .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2c2418 0%, #1e1812 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.6); animation: tyh-wall 15s ease-in-out infinite alternate; }
.scn-that-you-have-her .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2e20 0%, #1a1410 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: tyh-floor 12s ease-in-out infinite alternate; }
.scn-that-you-have-her .figure-left { position:absolute; bottom:32%; left:28%; width:28px; height:48px; background: linear-gradient(180deg, #2a2028 0%, #121012 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -4px 0 8px rgba(0,0,0,.3); animation: tyh-reach 6s ease-in-out infinite; }
.scn-that-you-have-her .figure-right { position:absolute; bottom:32%; right:30%; width:26px; height:50px; background: linear-gradient(180deg, #1e1a24 0%, #0e0c12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 4px 0 8px rgba(0,0,0,.3); animation: tyh-turn 7s ease-in-out infinite; }
.scn-that-you-have-her .candle-glow { position:absolute; bottom:36%; left:50%; width:20px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #ffc880 0%, #e08040 40%, transparent 70%); opacity:.85; box-shadow: 0 0 40px 20px rgba(224,128,64,.4), 0 0 80px 40px rgba(224,128,64,.2); animation: tyh-candle 4s ease-in-out infinite alternate; }
.scn-that-you-have-her .shadow-bar { position:absolute; bottom:34%; left:0; right:0; height:8px; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.4) 30%, rgba(0,0,0,.5) 50%, rgba(0,0,0,.4) 70%, transparent 100%); filter: blur(3px); animation: tyh-shadow 6s ease-in-out infinite; }
.scn-that-you-have-her .dust { position:absolute; inset:0; background: repeating-radial-gradient(circle at 20% 40%, rgba(200,180,160,.08) 0%, transparent 2%), repeating-radial-gradient(circle at 70% 60%, rgba(200,180,160,.06) 0%, transparent 2%); filter: blur(1px); animation: tyh-dust 20s ease-in-out infinite alternate; }
@keyframes tyh-wall { 0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes tyh-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tyh-reach { 0% { transform: translateX(0) rotate(3deg) } 25% { transform: translateX(4px) rotate(5deg) } 50% { transform: translateX(8px) rotate(2deg) } 75% { transform: translateX(4px) rotate(4deg) } 100% { transform: translateX(0) rotate(3deg) } }
@keyframes tyh-turn { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(-2px) rotate(0deg) } 60% { transform: translateX(-5px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes tyh-candle { 0% { opacity:.7; transform:translateX(-50%) scale(1) } 50% { opacity:1; transform:translateX(-50%) scale(1.05) } 100% { opacity:.75; transform:translateX(-50%) scale(.95) } }
@keyframes tyh-shadow { 0%,100% { opacity:.5; transform: scaleY(1) } 50% { opacity:.8; transform: scaleY(1.3) } }
@keyframes tyh-dust { 0% { opacity:.4; background-position: 0 0 } 100% { opacity:.6; background-position: 20px 10px } }

/* most-wink-see - dream scene, sleeping figure, cool dark */
.scn-most-wink-see { background: linear-gradient(180deg, #0a0820 0%, #181438 50%, #0e0c28 100%), radial-gradient(ellipse at 50% 30%, #282050 0%, transparent 70%); }
.scn-most-wink-see .bed-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #141028 0%, #0e0c20 100%); animation: mws-sky 20s ease-in-out infinite alternate; }
.scn-most-wink-see .bed-form { position:absolute; bottom:12%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #282040 0%, #1a1430 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 -10px 30px rgba(30,20,60,.5); animation: mws-breathe 6s ease-in-out infinite; }
.scn-most-wink-see .pillow { position:absolute; bottom:40%; left:25%; width:28%; height:14%; background: linear-gradient(180deg, #3a2e58 0%, #282050 100%); border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%; box-shadow: inset 0 4px 12px rgba(0,0,0,.3); }
.scn-most-wink-see .dream-shape { position:absolute; border-radius: 50%; background: radial-gradient(circle, rgba(180,160,255,.2) 0%, transparent 100%); filter: blur(6px); animation: mws-dream 12s ease-in-out infinite alternate; }
.scn-most-wink-see .dream-a { bottom:55%; left:30%; width:60px; height:60px; animation-delay: 0s; }
.scn-most-wink-see .dream-b { bottom:60%; right:25%; width:80px; height:50px; animation-delay: -4s; }
.scn-most-wink-see .dream-c { bottom:50%; left:55%; width:40px; height:70px; animation-delay: -8s; }
.scn-most-wink-see .moon-glow { position:absolute; top:8%; right:20%; width:50px; height:50px; background: radial-gradient(circle, rgba(200,200,255,.15) 0%, transparent 60%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(180,180,255,.1); animation: mws-moon 30s ease-in-out infinite alternate; }
@keyframes mws-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes mws-breathe { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.01) } }
@keyframes mws-dream { 0% { opacity:.2; transform: scale(.8) translateY(0) } 50% { opacity:.5; transform: scale(1.1) translateY(-10px) } 100% { opacity:.3; transform: scale(.9) translateY(5px) } }
@keyframes mws-moon { 0% { opacity:.5; transform: translate(0, 0) } 50% { opacity:.8; transform: translate(-5px, -3px) } 100% { opacity:.4; transform: translate(3px, 2px) } }

/* dull-substance-thought - tense overcast, solitary figure, landscape */
.scn-dull-substance-thought { background: linear-gradient(180deg, #3a3a38 0%, #4a4a42 30%, #2a2a28 100%), radial-gradient(ellipse at 50% 20%, #585850 0%, transparent 60%); }
.scn-dull-substance-thought .storm-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a4a42 0%, #3a3a32 40%, #2a2a24 100%); box-shadow: inset 0 8px 40px rgba(0,0,0,.4); animation: dst-sky 18s ease-in-out infinite alternate; }
.scn-dull-substance-thought .far-horizon { position:absolute; bottom:50%; left:0; right:0; height:8%; background: linear-gradient(180deg, #3a3a34 0%, #4a4638 100%); border-radius: 0 0 60% 60% / 0 0 80% 80%; filter: blur(4px); animation: dst-horizon 25s ease-in-out infinite alternate; }
.scn-dull-substance-thought .moor-ground { position:absolute; bottom:0; left:0; right:0; height:52%; background: linear-gradient(180deg, #4a4638 0%, #3a362a 30%, #2a2a1e 100%); border-radius: 20% 30% 0 0 / 10% 15% 0 0; box-shadow: inset 0 8px 24px rgba(0,0,0,.5); }
.scn-dull-substance-thought .figure { position:absolute; bottom:42%; left:50%; width:22px; height:44px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a18 0%, #0e0e0c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: dst-figure 8s ease-in-out infinite; }
.scn-dull-substance-thought .rain-sheet { position:absolute; inset:0; background: repeating-linear-gradient(45deg, rgba(160,160,160,.05) 0%, transparent 3%, rgba(160,160,160,.05) 6%); animation: dst-rain 4s linear infinite; }
.scn-dull-substance-thought .rain-a { opacity:.6; }
.scn-dull-substance-thought .rain-b { opacity:.4; background: repeating-linear-gradient(-45deg, rgba(160,160,160,.04) 0%, transparent 4%, rgba(160,160,160,.04) 8%); animation: dst-rain 5s linear infinite reverse; }
.scn-dull-substance-thought .distance-haze { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, rgba(80,80,70,.3) 0%, transparent 100%); filter: blur(8px); animation: dst-haze 20s ease-in-out infinite alternate; }
@keyframes dst-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes dst-horizon { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(2px) scale(.98) } }
@keyframes dst-figure { 0% { transform: translateX(-50%) translateY(0) } 30% { transform: translateX(-50%) translateY(-2px) } 60% { transform: translateX(-50%) translateY(1px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes dst-rain { 0% { background-position: 0 0 } 100% { background-position: 20px 40px } }
@keyframes dst-haze { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }

/* other-two-elements - calm dim interior, hearth, floating embers */
.scn-other-two-elements { background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #3a2e20 100%), radial-gradient(ellipse at 50% 70%, #4a3828 0%, transparent 70%); }
.scn-other-two-elements .hearth-room { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a2018 0%, #1e1812 60%, #14100a 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.6); animation: ote-room 15s ease-in-out infinite alternate; }
.scn-other-two-elements .hearth-glow { position:absolute; bottom:24%; left:50%; width:80px; height:60px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 60%, #e06830 0%, #a04820 40%, #602010 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(224,104,48,.4), 0 0 120px 60px rgba(224,104,48,.2); animation: ote-fire 5s ease-in-out infinite alternate; }
.scn-other-two-elements .mantle { position:absolute; bottom:28%; left:20%; right:20%; height:6%; background: linear-gradient(180deg, #3a2a1e 0%, #2a1e14 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.4); }
.scn-other-two-elements .ember { position:absolute; width:6px; height:6px; background: radial-gradient(circle, #ffc040 0%, #e06830 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 10px 3px rgba(224,104,48,.5); animation: ote-ember 6s ease-in-out infinite; }
.scn-other-two-elements .ember-a { bottom:28%; left:35%; animation-delay: 0s; animation-duration: 5s; }
.scn-other-two-elements .ember-b { bottom:26%; left:55%; animation-delay: -2s; animation-duration: 7s; }
.scn-other-two-elements .ember-c { bottom:30%; left:48%; animation-delay: -4s; animation-duration: 4s; }
.scn-other-two-elements .smoke-wisp { position:absolute; bottom:40%; left:48%; width:30px; height:80px; background: radial-gradient(ellipse at 50% 100%, rgba(180,160,140,.15) 0%, transparent 100%); filter: blur(5px); animation: ote-smoke 12s ease-in-out infinite; }
@keyframes ote-room { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ote-fire { 0%,100% { opacity:.7; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.08) translateY(-2px) } }
@keyframes ote-ember { 0% { transform: translateY(0) scale(1); opacity:1 } 30% { transform: translateY(-15px) scale(.7); opacity:.8 } 60% { transform: translateY(-30px) scale(.4); opacity:.4 } 100% { transform: translateY(-50px) scale(.1); opacity:0 } }
@keyframes ote-smoke { 0% { transform: translateY(0) scale(1); opacity:.4 } 50% { transform: translateY(-20px) scale(1.3); opacity:.2 } 100% { transform: translateY(-40px) scale(1.6); opacity:0 } }

.scn-year-behold {
  background: linear-gradient(135deg, #2a1a3a 0%, #4a2a4a 40%, #7a4a4a 70%, #1a1a2a 100%), 
              radial-gradient(ellipse at 70% 30%, #b08040 0%, transparent 60%);
}
.scn-year-behold .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a2a4a 0%, #6a4a3a 50%, #8a5a3a 100%);
  animation: yb1-sky 15s ease-in-out infinite alternate;
}
.scn-year-behold .tree-trunk {
  position: absolute; bottom: 20%; left: 50%; width: 24px; height: 180px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #2a1a2a 0%, #4a2a2a 40%, #2a1a2a 100%);
  border-radius: 6px;
  box-shadow: 3px 0 8px rgba(0,0,0,.6);
}
.scn-year-behold .branch-a {
  position: absolute; bottom: 60%; left: 38%; width: 80px; height: 8px;
  transform: translateY(-50%) rotate(-20deg);
  background: linear-gradient(90deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 4px;
  transform-origin: right center;
  animation: yb1-branch-a 12s ease-in-out infinite;
}
.scn-year-behold .branch-b {
  position: absolute; bottom: 50%; right: 35%; width: 70px; height: 6px;
  transform: translateY(-50%) rotate(25deg);
  background: linear-gradient(90deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 3px;
  transform-origin: left center;
  animation: yb1-branch-b 14s ease-in-out infinite;
}
.scn-year-behold .leaf-1 {
  position: absolute; bottom: 70%; left: 30%; width: 20px; height: 12px;
  background: radial-gradient(ellipse, #c08040 0%, #8a5a30 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: yb1-leaf-drift 8s ease-in-out infinite;
}
.scn-year-behold .leaf-2 {
  position: absolute; bottom: 65%; left: 45%; width: 16px; height: 10px;
  background: radial-gradient(ellipse, #b07030 0%, #7a4a20 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: yb1-leaf-drift 10s ease-in-out infinite 2s;
}
.scn-year-behold .leaf-3 {
  position: absolute; bottom: 75%; right: 35%; width: 18px; height: 11px;
  background: radial-gradient(ellipse, #d09050 0%, #9a6030 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: yb1-leaf-drift 9s ease-in-out infinite 4s;
}
.scn-year-behold .twilight-glow {
  position: absolute; bottom: 30%; left: 60%; width: 120px; height: 120px;
  background: radial-gradient(circle, #ffa060 0%, #c08040 40%, transparent 70%);
  border-radius: 50%;
  opacity: .6;
  animation: yb1-glow 6s ease-in-out infinite alternate;
}
@keyframes yb1-sky {
  0% { opacity: .7; transform: scaleY(1); }
  50% { opacity: .9; transform: scaleY(1.02); }
  100% { opacity: .6; transform: scaleY(1); }
}
@keyframes yb1-branch-a {
  0%, 100% { transform: translateY(-50%) rotate(-20deg); }
  50% { transform: translateY(-50%) rotate(-22deg) translateX(2px); }
}
@keyframes yb1-branch-b {
  0%, 100% { transform: translateY(-50%) rotate(25deg); }
  50% { transform: translateY(-50%) rotate(27deg) translateX(-2px); }
}
@keyframes yb1-leaf-drift {
  0% { transform: translate(0, 0) rotate(0deg); opacity: .8; }
  50% { transform: translate(-4px, -6px) rotate(10deg); opacity: 1; }
  100% { transform: translate(2px, 3px) rotate(-5deg); opacity: .7; }
}
@keyframes yb1-glow {
  0% { transform: scale(1); opacity: .5; }
  50% { transform: scale(1.1); opacity: .7; }
  100% { transform: scale(.95); opacity: .4; }
}

.scn-contented-arrest {
  background: linear-gradient(180deg, #1a1814 0%, #2a2218 50%, #1a1814 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-contented-arrest .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a2218 0%, #1a1814 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
}
.scn-contented-arrest .desk {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 8px;
  box-shadow: 0 -4px 12px rgba(0,0,0,.5);
}
.scn-contented-arrest .book {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 50px;
  background: linear-gradient(135deg, #5a4030 0%, #3a2818 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 6px rgba(0,0,0,.4);
  transform: rotate(-5deg);
  animation: ca2-book 10s ease-in-out infinite;
}
.scn-contented-arrest .candle {
  position: absolute; bottom: 30%; right: 25%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #e8d0b0 0%, #b08050 100%);
  border-radius: 4px;
  box-shadow: 0 0 8px rgba(200,160,100,.3);
}
.scn-contented-arrest .flame {
  position: absolute; bottom: 58%; right: calc(25% + 6px); width: 10px; height: 16px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #ffd080 0%, #ffa040 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #ffa040, 0 0 40px 12px rgba(255,160,64,.4);
  animation: ca2-flame 2s ease-in-out infinite alternate;
}
.scn-contented-arrest .shadow-figure {
  position: absolute; bottom: 12%; left: 15%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #0a0806 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca2-figure 12s ease-in-out infinite;
}
@keyframes ca2-book {
  0%, 100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
}
@keyframes ca2-flame {
  0% { transform: translateX(-50%) scaleY(1); opacity: .9; }
  50% { transform: translateX(-50%) scaleY(1.15) scaleX(.9); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(.95); opacity: .8; }
}
@keyframes ca2-figure {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.02); }
}

.scn-thoughts-food-life {
  background: linear-gradient(135deg, #2a1a0a 0%, #4a2a1a 40%, #6a3a2a 70%, #1a0e06 100%),
              radial-gradient(ellipse at 60% 30%, #b08050 0%, transparent 60%);
}
.scn-thoughts-food-life .tablecloth {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(180deg, #6a4a30 0%, #4a2a18 100%);
  border-radius: 20px 20px 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.4);
}
.scn-thoughts-food-life .plate {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 30px;
  background: radial-gradient(ellipse, #c8b090 0%, #a08060 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: tfl3-plate 15s ease-in-out infinite;
}
.scn-thoughts-food-life .loaf {
  position: absolute; bottom: 27%; left: 36%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #c08040 0%, #8a5a20 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  transform: rotate(-10deg);
  animation: tfl3-loaf 8s ease-in-out infinite;
}
.scn-thoughts-food-life .goblet {
  position: absolute; bottom: 28%; right: 30%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: tfl3-goblet 12s ease-in-out infinite;
}
.scn-thoughts-food-life .candle-glow {
  position: absolute; bottom: 35%; right: 20%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e8c8a0 0%, #b08850 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 6px #d09040;
  animation: tfl3-candle 3s ease-in-out infinite alternate;
}
.scn-thoughts-food-life .spice {
  position: absolute; bottom: 30%; left: 45%; width: 6px; height: 6px;
  background: radial-gradient(circle, #c07030 0%, #804020 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(192,112,48,.5);
  animation: tfl3-spice 5s ease-in-out infinite;
}
@keyframes tfl3-plate {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes tfl3-loaf {
  0%, 100% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-2px) scale(1.02); }
}
@keyframes tfl3-goblet {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes tfl3-candle {
  0% { opacity: .7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: .8; transform: scaleY(1); }
}
@keyframes tfl3-spice {
  0%, 100% { transform: scale(1); opacity: .6; }
  50% { transform: scale(1.2); opacity: 1; }
}

.scn-verse-barren-pride {
  background: linear-gradient(135deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 70%);
}
.scn-verse-barren-pride .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.4);
}
.scn-verse-barren-pride .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #1e1e2e 0%, #2a2a3a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.3);
}
.scn-verse-barren-pride .desk {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 25%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 6px;
  box-shadow: 0 -4px 12px rgba(0,0,0,.4);
}
.scn-verse-barren-pride .inkwell {
  position: absolute; bottom: 32%; right: 30%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: vbp4-inkwell 14s ease-in-out infinite;
}
.scn-verse-barren-pride .quill {
  position: absolute; bottom: 35%; right: 25%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #b0a8a0 0%, #807070 100%);
  border-radius: 20% 20% 0 0 / 20% 20% 0 0;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: vbp4-quill 8s ease-in-out infinite;
}
.scn-verse-barren-pride .paper {
  position: absolute; bottom: 22%; left: 25%; width: 50px; height: 40px;
  background: linear-gradient(135deg, #c8c0b0 0%, #a89888 100%);
  border-radius: 2px;
  box-shadow: 1px 1px 4px rgba(0,0,0,.3);
  transform: rotate(2deg);
  animation: vbp4-paper 18s ease-in-out infinite;
}
.scn-verse-barren-pride .moonlight {
  position: absolute; bottom: 50%; left: 60%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(200,200,220,0.15) 0%, transparent 60%);
  border-radius: 50%;
  animation: vbp4-moonlight 20s ease-in-out infinite alternate;
}
@keyframes vbp4-inkwell {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes vbp4-quill {
  0%, 100% { transform: rotate(-30deg) translateY(0); }
  50% { transform: rotate(-28deg) translateY(-3px); }
}
@keyframes vbp4-paper {
  0%, 100% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-1px); }
}
@keyframes vbp4-moonlight {
  0% { opacity: .3; transform: scale(1); }
  50% { opacity: .5; transform: scale(1.05); }
  100% { opacity: .2; transform: scale(.95); }
}

/* were-t-anything */
.scn-were-t-anything {
  background: linear-gradient(180deg, #1a1510 0%, #2a2218 40%, #3a3025 100%), radial-gradient(ellipse at 50% 100%, #3a3025 0%, transparent 70%);
}
.scn-were-t-anything .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2218 0%, #1a1510 100%); }
.scn-were-t-anything .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1f15 0%, #1a120c 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-were-t-anything .canopy { position:absolute; top:5%; left:20%; right:20%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f15 100%); border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-were-t-anything .table { position:absolute; bottom:28%; left:25%; right:25%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px 4px 8px 8px; box-shadow: inset 0 4px 8px rgba(0,0,0,.4); }
.scn-were-t-anything .candle { position:absolute; bottom:35%; left:50%; width:8px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 2px; box-shadow: 0 -4px 12px 4px rgba(200,160,96,.4); animation: wta-candle 5s ease-in-out infinite alternate; }
.scn-were-t-anything .figure-wta { position:absolute; bottom:22%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #2a1f15 0%, #1a120c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wta-figure 6s ease-in-out infinite; }
.scn-were-t-anything .shadow-wta { position:absolute; bottom:20%; left:38%; width:28px; height:6px; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(4px); animation: wta-shadow 6s ease-in-out infinite; }
@keyframes wta-candle { 0% { opacity:.8; transform: translateX(-50%) scaleY(1); } 50% { opacity:1; transform: translateX(-50%) scaleY(1.05); } 100% { opacity:.7; transform: translateX(-50%) scaleY(.95); } }
@keyframes wta-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(16px) translateY(0) rotate(0); } }
@keyframes wta-shadow { 0% { transform: translateX(0); opacity:.3; } 25% { transform: translateX(4px); opacity:.25; } 50% { transform: translateX(8px); opacity:.3; } 75% { transform: translateX(12px); opacity:.25; } 100% { transform: translateX(16px); opacity:.3; } }

/* lovely-boy-power */
.scn-lovely-boy-power {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #3a3a5e 100%), radial-gradient(ellipse at 50% 50%, #3a3a5e 0%, transparent 60%);
}
.scn-lovely-boy-power .bg-lbp { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 60%, #0a0a1a 100%); animation: lbp-bg 20s ease-in-out infinite alternate; }
.scn-lovely-boy-power .hourglass { position:absolute; bottom:30%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #c0c0c0 0%, #808080 80%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-lovely-boy-power .sand { position:absolute; bottom:35%; left:50%; width:10px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #d4a060 0%, #b08040 100%); border-radius: 2px; animation: lbp-sand 4s ease-in-out infinite; }
.scn-lovely-boy-power .boy { position:absolute; bottom:20%; left:40%; width:24px; height:44px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lbp-boy 8s ease-in-out infinite; }
.scn-lovely-boy-power .mirror { position:absolute; bottom:25%; left:55%; width:20px; height:30px; background: linear-gradient(135deg, #c0c0c0 0%, #808080 100%); border-radius: 4px; box-shadow: 0 0 12px 2px rgba(192,192,192,.3); animation: lbp-mirror 6s ease-in-out infinite alternate; }
.scn-lovely-boy-power .glow-lbp { position:absolute; bottom:30%; left:48%; width:10px; height:10px; background: radial-gradient(circle, rgba(200,200,255,.4) 0%, transparent 100%); border-radius: 50%; animation: lbp-glow 5s ease-in-out infinite alternate; }
@keyframes lbp-bg { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes lbp-sand { 0% { transform: translateX(-50%) translateY(0); opacity:.9; } 50% { transform: translateX(-50%) translateY(-5px); opacity:1; } 100% { transform: translateX(-50%) translateY(0); opacity:.8; } }
@keyframes lbp-boy { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(4px) rotate(-2deg); } 75% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(8px) rotate(0); } }
@keyframes lbp-mirror { 0% { box-shadow: 0 0 8px 2px rgba(192,192,192,.2); } 100% { box-shadow: 0 0 20px 6px rgba(192,192,192,.5); } }
@keyframes lbp-glow { 0% { transform: scale(1); opacity:.6; } 100% { transform: scale(1.5); opacity:1; } }

/* old-age-black */
.scn-old-age-black {
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 50%, #2a2a2a 100%), radial-gradient(ellipse at 50% 50%, #2a2a2a 0%, transparent 70%);
}
.scn-old-age-black .bg-oab { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 60%, #0a0a0a 100%); animation: oab-bg 15s ease-in-out infinite alternate; }
.scn-old-age-black .frame { position:absolute; bottom:25%; left:35%; right:35%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: inset 0 0 12px rgba(0,0,0,.6), 0 4px 8px rgba(0,0,0,.4); }
.scn-old-age-black .portrait { position:absolute; bottom:28%; left:38%; right:38%; height:30%; background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%); border-radius: 2px; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-old-age-black .hand { position:absolute; bottom:20%; left:45%; width:16px; height:24px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: oab-hand 7s ease-in-out infinite; }
.scn-old-age-black .veil { position:absolute; top:10%; left:30%; right:30%; height:20%; background: linear-gradient(180deg, rgba(255,255,255,.05) 0%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: oab-veil 12s ease-in-out infinite alternate; }
.scn-old-age-black .glow-oab { position:absolute; bottom:40%; left:48%; width:8px; height:8px; background: radial-gradient(circle, rgba(200,180,160,.3) 0%, transparent 100%); border-radius: 50%; animation: oab-glow 4s ease-in-out infinite alternate; }
@keyframes oab-bg { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes oab-hand { 0% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(2px) rotate(5deg); } 50% { transform: translateX(4px) rotate(-5deg); } 75% { transform: translateX(6px) rotate(5deg); } 100% { transform: translateX(8px) rotate(0); } }
@keyframes oab-veil { 0% { opacity:.3; transform: scale(1); } 100% { opacity:.6; transform: scale(1.1); } }
@keyframes oab-glow { 0% { transform: scale(1); opacity:.4; } 100% { transform: scale(1.8); opacity:.8; } }

/* item-music-blessed-wood */
.scn-item-music-blessed-wood {
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b890 40%, #b09870 100%), radial-gradient(ellipse at 50% 50%, #d0b890 0%, transparent 70%);
}
.scn-item-music-blessed-wood .bg-imb { position:absolute; inset:0; background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 50%, #b09870 100%); animation: imb-bg 10s ease-in-out infinite alternate; }
.scn-item-music-blessed-wood .keyboard { position:absolute; bottom:20%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 8px; box-shadow: inset 0 4px 8px rgba(0,0,0,.3), 0 4px 12px rgba(0,0,0,.2); }
.scn-item-music-blessed-wood .hands { position:absolute; bottom:30%; left:35%; right:35%; height:20%; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: imb-hands 3s ease-in-out infinite; }
.scn-item-music-blessed-wood .jacks { position:absolute; bottom:25%; left:30%; right:30%; height:10%; background: repeating-linear-gradient(90deg, #d0b890 0px, #d0b890 2px, transparent 2px, transparent 4px); animation: imb-jacks 2s ease-in-out infinite; }
.scn-item-music-blessed-wood .wood-grain { position:absolute; bottom:18%; left:22%; right:22%; height:4%; background: repeating-linear-gradient(90deg, rgba(0,0,0,.1) 0px, rgba(0,0,0,.1) 1px, transparent 1px, transparent 3px); border-radius: 2px; }
.scn-item-music-blessed-wood .music-glow { position:absolute; bottom:35%; left:45%; width:12px; height:12px; background: radial-gradient(circle, rgba(255,220,180,.6) 0%, transparent 100%); border-radius: 50%; animation: imb-glow 4s ease-in-out infinite alternate; }
.scn-item-music-blessed-wood .shadow-imb { position:absolute; bottom:15%; left:25%; right:25%; height:10%; background: rgba(0,0,0,.15); border-radius: 50%; filter: blur(6px); animation: imb-shadow 3s ease-in-out infinite alternate; }
@keyframes imb-bg { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes imb-hands { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(4px) translateY(0) rotate(-2deg); } 75% { transform: translateX(6px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(8px) translateY(0) rotate(0); } }
@keyframes imb-jacks { 0% { background-position: 0 0; } 100% { background-position: 4px 0; } }
@keyframes imb-glow { 0% { transform: scale(1); opacity:.5; } 100% { transform: scale(1.8); opacity:1; } }
@keyframes imb-shadow { 0% { transform: scaleX(1); opacity:.2; } 100% { transform: scaleX(1.2); opacity:.3; } }

/* since-i-left-you */
.scn-since-i-left-you {
  background:
    linear-gradient(180deg, #1c1816 0%, #2a221e 60%, #3a2c24 100%),
    radial-gradient(ellipse at 50% 60%, #4a372c 0%, transparent 70%);
}
.scn-since-i-left-you .bg-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #2a221e 0%, #1c1816 100%);
  animation: sil-wall 20s ease-in-out infinite alternate;
}
.scn-since-i-left-you .window-frame {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 70%;
  background: linear-gradient(135deg, #3a2c24, #4a372c);
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
  animation: sil-frame 18s ease-in-out infinite;
}
.scn-since-i-left-you .curtain {
  position: absolute; top: 10%; height: 70%; width: 25%;
  background: linear-gradient(180deg, #5e3d2e 0%, #7a4b36 100%);
  border-radius: 4px;
  filter: blur(1px);
  animation: sil-curtain 12s ease-in-out infinite alternate;
}
.scn-since-i-left-you .curtain-l {
  left: 18%;
  transform-origin: left center;
}
.scn-since-i-left-you .curtain-r {
  right: 18%;
  transform-origin: right center;
}
.scn-since-i-left-you .figure-profile {
  position: absolute; bottom: 12%; left: 35%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at 30% 50%, #1a1410 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 0 20px rgba(0,0,0,0.8);
  animation: sil-figure 8s ease-in-out infinite;
}
.scn-since-i-left-you .candle {
  position: absolute; bottom: 20%; left: 65%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #c8a87a 0%, #8a6a4a 100%);
  border-radius: 4px 4px 2px 2px;
  animation: sil-candle 4s ease-in-out infinite;
}
.scn-since-i-left-you .flame-glow {
  position: absolute; bottom: 37%; left: 65.5%; width: 3%; height: 8%;
  background: radial-gradient(circle, #ffd080 0%, #e88040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(232,128,64,0.6);
  animation: sil-flame 2s ease-in-out infinite alternate;
}
@keyframes sil-wall { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.9} }
@keyframes sil-frame { 0%,100%{transform:scaleY(1)} 50%{transform:scaleY(1.02)} }
@keyframes sil-curtain { 0%{width:25%} 50%{width:23%} 100%{width:27%} }
@keyframes sil-figure { 0%,100%{transform:translateX(0) translateY(0)} 25%{transform:translateX(-2px) translateY(1px) rotate(1deg)} 50%{transform:translateX(0) translateY(-2px) rotate(-1deg)} 75%{transform:translateX(2px) translateY(1px) rotate(0deg)} }
@keyframes sil-candle { 0%,100%{transform:scaleY(1)} 50%{transform:scaleY(0.95)} }
@keyframes sil-flame { 0%{transform:scale(0.9) rotate(-5deg)} 33%{transform:scale(1.1) rotate(3deg)} 66%{transform:scale(1) rotate(-2deg)} 100%{transform:scale(0.95) rotate(4deg)} }

/* mind-crowned-flattery */
.scn-mind-crowned-flattery {
  background:
    linear-gradient(180deg, #1e1814 0%, #2a1f1a 40%, #3a2a22 100%),
    radial-gradient(ellipse at 50% 70%, #4a3528 0%, transparent 70%);
}
.scn-mind-crowned-flattery .bg-deep {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #1e1814 0%, #3a2a22 100%);
  animation: mcf-bg 25s ease-in-out infinite alternate;
}
.scn-mind-crowned-flattery .pedestal {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e1a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.6);
}
.scn-mind-crowned-flattery .crown {
  position: absolute; bottom: 28%; left: 35%; width: 30%; height: 15%;
  background: linear-gradient(135deg, #c8a060 0%, #a08040 50%, #6a4a20 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 10px 40px rgba(0,0,0,0.8);
  animation: mcf-crown 12s ease-in-out infinite;
}
.scn-mind-crowned-flattery .orb {
  position: absolute; bottom: 30%; left: 48%; width: 8%; height: 8%;
  background: radial-gradient(circle at 30% 30%, #ffd080, #a06020);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,208,128,0.3);
  animation: mcf-orb 8s ease-in-out infinite alternate;
}
.scn-mind-crowned-flattery .shine {
  position: absolute; top: 20%; left: 20%; width: 8%; height: 8%;
  background: radial-gradient(circle, rgba(255,240,200,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: mcf-shine 6s ease-in-out infinite;
}
@keyframes mcf-bg { 0%{opacity:0.85} 50%{opacity:1} 100%{opacity:0.85} }
@keyframes mcf-crown { 0%,100%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-5px) rotate(2deg)} }
@keyframes mcf-orb { 0%{transform:scale(1) rotate(0deg)} 50%{transform:scale(1.2) rotate(180deg)} 100%{transform:scale(1) rotate(360deg)} }
@keyframes mcf-shine { 0%{opacity:0.3; transform:translate(0,0)} 50%{opacity:0.7; transform:translate(10px,-5px)} 100%{opacity:0.3; transform:translate(0,0)} }

/* lines-before-do-lie */
.scn-lines-before-do-lie {
  background:
    linear-gradient(180deg, #1c1612 0%, #2a1f18 40%, #3a2a1e 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a1e 0%, transparent 70%);
}
.scn-lines-before-do-lie .bg-desk {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #2a1f18 0%, #1c1612 100%);
  animation: lbd-desk 20s ease-in-out infinite alternate;
}
.scn-lines-before-do-lie .letter {
  position: absolute; top: 30%; left: 15%; width: 60%; height: 40%;
  background: linear-gradient(135deg, #d8c8a0 0%, #b8a080 100%);
  border-radius: 4px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.6);
  animation: lbd-letter 15s ease-in-out infinite;
}
.scn-lines-before-do-lie .inkwell {
  position: absolute; top: 25%; left: 75%; width: 10%; height: 15%;
  background: radial-gradient(circle at 30% 30%, #2a1a10, #0a0502);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.5);
}
.scn-lines-before-do-lie .candle {
  position: absolute; bottom: 20%; left: 20%; width: 4%; height: 25%;
  background: linear-gradient(180deg, #c8a070 0%, #8a6040 100%);
  border-radius: 4px 4px 2px 2px;
  animation: lbd-candle 6s ease-in-out infinite;
}
.scn-lines-before-do-lie .flame {
  position: absolute; bottom: 43%; left: 20.5%; width: 3%; height: 10%;
  background: radial-gradient(circle, #ffd080 0%, #e08040 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(224,128,64,0.6);
  animation: lbd-flame 3s ease-in-out infinite alternate;
}
.scn-lines-before-do-lie .shadow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: lbd-shadow 8s ease-in-out infinite;
}
@keyframes lbd-desk { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.9} }
@keyframes lbd-letter { 0%,100%{transform:rotate(0deg) scale(1)} 50%{transform:rotate(2deg) scale(1.02)} }
@keyframes lbd-candle { 0%,100%{transform:scaleY(1)} 50%{transform:scaleY(0.96)} }
@keyframes lbd-flame { 0%{transform:scale(0.85) rotate(-4deg)} 33%{transform:scale(1.1) rotate(2deg)} 66%{transform:scale(0.95) rotate(-1deg)} 100%{transform:scale(1) rotate(3deg)} }
@keyframes lbd-shadow { 0%{opacity:0.6; transform:translateX(0)} 50%{opacity:0.8; transform:translateX(5px)} 100%{opacity:0.6; transform:translateX(0)} }

/* marriage-true-minds */
.scn-marriage-true-minds {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #141428 40%, #1a1a3a 100%),
    radial-gradient(ellipse at 50% 100%, #1a1a3a 0%, transparent 70%);
}
.scn-marriage-true-minds .bg-deep-sky {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 60%, #0a0a1a 100%);
  animation: mtm-sky 30s ease-in-out infinite alternate;
}
.scn-marriage-true-minds .horizon {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(4px);
}
.scn-marriage-true-minds .lighthouse {
  position: absolute; bottom: 30%; left: 45%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 0 30px rgba(0,0,0,0.8);
  animation: mtm-lighthouse 20s ease-in-out infinite;
}
.scn-marriage-true-minds .light-beam {
  position: absolute; bottom: 55%; left: 50%; width: 8%; height: 15%;
  background: radial-gradient(circle, rgba(255,255,200,0.6) 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(255,255,200,0.4);
  animation: mtm-beam 6s ease-in-out infinite alternate;
}
.scn-marriage-true-minds .figure {
  position: absolute; bottom: 30%; width: 6%; height: 15%;
  background: radial-gradient(ellipse at 30% 50%, #0a0a1a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: mtm-figure 10s ease-in-out infinite;
}
.scn-marriage-true-minds .figure-l { left: 35%; }
.scn-marriage-true-minds .figure-r { right: 35%; animation-delay: -5s; }
.scn-marriage-true-minds .star {
  position: absolute; top: 10%; left: 48%; width: 3%; height: 3%;
  background: radial-gradient(circle, #fff8e0 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(255,248,224,0.5);
  animation: mtm-star 5s ease-in-out infinite alternate;
}
@keyframes mtm-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes mtm-lighthouse { 0%,100%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-3px) rotate(1deg)} }
@keyframes mtm-beam { 0%{transform:scale(0.9) rotate(-5deg); opacity:0.6} 50%{transform:scale(1.2) rotate(5deg); opacity:1} 100%{transform:scale(1) rotate(-2deg); opacity:0.7} }
@keyframes mtm-figure { 0%,100%{transform:translateY(0)} 25%{transform:translateY(-2px) scale(1.02)} 50%{transform:translateY(0) scale(1)} 75%{transform:translateY(-2px) scale(1.02)} }
@keyframes mtm-star { 0%{transform:scale(0.8) rotate(0deg)} 50%{transform:scale(1.2) rotate(180deg)} 100%{transform:scale(0.9) rotate(360deg)} }

/* accuse-me-thus */
.scn-accuse-me-thus {
  background: linear-gradient(180deg, #2b221a 0%, #1a140f 50%, #0f0a07 100%), radial-gradient(circle at 50% 30%, #3a2f25 0%, transparent 70%);
}
.scn-accuse-me-thus .wall { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #2b221a 0%, #1e1812 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-accuse-me-thus .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #352a20 0%, #1a140f 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-accuse-me-thus .window { position: absolute; top: 20%; left: 15%; width: 30%; height: 40%; background: linear-gradient(180deg, #4a3f33 0%, #3a2f25 100%); border: 4px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-accuse-me-thus .ship { position: absolute; top: 35%; left: 22%; width: 40px; height: 25px; background: linear-gradient(180deg, #2a1a10 0%, #0f0705 100%); clip-path: polygon(0 100%, 100% 100%, 80% 30%, 50% 0, 20% 30%); animation: at-ship 30s linear infinite; }
.scn-accuse-me-thus .desk { position: absolute; bottom: 20%; left: 50%; width: 120px; height: 20px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3520 0%, #2a1a10 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-accuse-me-thus .candle { position: absolute; bottom: 30%; left: 55%; width: 8px; height: 30px; background: linear-gradient(180deg, #f0c060 0%, #c09040 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 20px 6px rgba(240,192,96,.4); animation: at-candle 2s ease-in-out infinite alternate; }
.scn-accuse-me-thus .figure { position: absolute; bottom: 20%; left: 48%; width: 24px; height: 50px; background: linear-gradient(180deg, #1a1410 0%, #0a0705 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: at-figure 4s ease-in-out infinite; }
@keyframes at-ship { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes at-candle { 0% { opacity: .8; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.05) } 100% { opacity: .9; transform: scaleY(.95) } }
@keyframes at-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(-4px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }

/* appetites-more-keen */
.scn-appetites-more-keen {
  background: linear-gradient(180deg, #1c1712 0%, #120e0a 50%, #080605 100%), radial-gradient(ellipse at 50% 70%, #2a221a 0%, transparent 60%);
}
.scn-appetites-more-keen .bg { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #1c1712 0%, #14100c 100%); border-radius: 0 0 30% 30% / 0 0 15% 15%; }
.scn-appetites-more-keen .table { position: absolute; bottom: 25%; left: 50%; width: 140px; height: 18px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 6px; box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-appetites-more-keen .bowl { position: absolute; bottom: 35%; left: 40%; width: 30px; height: 20px; background: radial-gradient(circle, #5a3a1a 0%, #2a1a0a 70%); border-radius: 50% 50% 30% 30%; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); animation: ak-bowl 6s ease-in-out infinite; }
.scn-appetites-more-keen .chalice { position: absolute; bottom: 38%; left: 50%; width: 14px; height: 28px; background: linear-gradient(180deg, #b08030 0%, #704018 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 12px 4px rgba(176,128,48,.3); animation: ak-chalice 4s ease-in-out infinite alternate; }
.scn-appetites-more-keen .figure { position: absolute; bottom: 20%; left: 55%; width: 22px; height: 48px; background: linear-gradient(180deg, #1a1410 0%, #0a0705 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ak-figure 5s ease-in-out infinite; }
.scn-appetites-more-keen .shadow { position: absolute; bottom: 15%; left: 52%; width: 40px; height: 12px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); animation: ak-shadow 5s ease-in-out infinite; }
@keyframes ak-bowl { 0% { transform: scale(1) } 50% { transform: scale(1.03) translateY(-2px) } 100% { transform: scale(1) } }
@keyframes ak-chalice { 0% { box-shadow: 0 0 8px 2px rgba(176,128,48,.2); transform: rotate(-2deg) } 50% { box-shadow: 0 0 18px 6px rgba(176,128,48,.5); transform: rotate(2deg) } 100% { box-shadow: 0 0 10px 3px rgba(176,128,48,.3); transform: rotate(-1deg) } }
@keyframes ak-figure { 0% { transform: translateX(0) rotate(-1deg) } 30% { transform: translateX(-6px) rotate(3deg) } 60% { transform: translateX(3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ak-shadow { 0% { opacity: .6; transform: scaleX(1) } 50% { opacity: .8; transform: scaleX(1.1) } 100% { opacity: .6; transform: scaleX(1) } }

/* potions-siren-tears */
.scn-potions-siren-tears {
  background: linear-gradient(180deg, #1a141a 0%, #0e0a10 50%, #050305 100%), radial-gradient(ellipse at 30% 60%, #281a2a 0%, transparent 70%);
}
.scn-potions-siren-tears .bg { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #1a141a 0%, #100c12 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-potions-siren-tears .retort { position: absolute; bottom: 35%; left: 30%; width: 50px; height: 40px; background: linear-gradient(180deg, #3a2a3a 0%, #1a101a 100%); border-radius: 50% 50% 30% 30%; box-shadow: inset 0 6px 12px rgba(0,0,0,.5); animation: ps-retort 8s ease-in-out infinite; }
.scn-potions-siren-tears .flame { position: absolute; bottom: 30%; left: 20%; width: 12px; height: 20px; background: linear-gradient(0deg, #c06020 0%, #f08040 50%, #ffa060 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 16px 4px #c06020; animation: ps-flame 1.5s ease-in-out infinite alternate; }
.scn-potions-siren-tears .bottle { position: absolute; bottom: 40%; left: 55%; width: 20px; height: 32px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a2a 100%); border-radius: 30% 30% 20% 20%; box-shadow: inset 0 4px 8px rgba(0,0,0,.4); animation: ps-bottle 6s ease-in-out infinite; }
.scn-potions-siren-tears .drip { position: absolute; bottom: 38%; left: 55%; width: 4px; height: 8px; background: linear-gradient(180deg, #5a3a3a 0%, #2a1a1a 100%); border-radius: 50%; animation: ps-drip 3s ease-in-out infinite; }
.scn-potions-siren-tears .book { position: absolute; bottom: 25%; left: 40%; width: 50px; height: 30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: rotate(-5deg); }
.scn-potions-siren-tears .figure { position: absolute; bottom: 20%; left: 50%; width: 24px; height: 50px; background: linear-gradient(180deg, #1a1415 0%, #0a0708 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ps-figure 7s ease-in-out infinite; }
@keyframes ps-retort { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.02) rotate(3deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes ps-flame { 0% { transform: scaleY(1) translateY(0); opacity: .8 } 50% { transform: scaleY(1.2) translateY(-4px); opacity: 1 } 100% { transform: scaleY(.9) translateY(0); opacity: .9 } }
@keyframes ps-bottle { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ps-drip { 0% { transform: translateY(0); opacity: 1 } 50% { transform: translateY(12px); opacity: .3 } 100% { transform: translateY(0); opacity: 1 } }
@keyframes ps-figure { 0% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(8px) rotate(2deg) } 66% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }

/* once-unkind-befriends */
.scn-once-unkind-befriends {
  background: linear-gradient(180deg, #231e1a 0%, #14100c 50%, #0a0805 100%), radial-gradient(ellipse at 50% 40%, #2a231f 0%, transparent 70%);
}
.scn-once-unkind-befriends .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #231e1a 0%, #17130f 100%); border-radius: 0 0 15% 15% / 0 0 8% 8%; }
.scn-once-unkind-befriends .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a221e 0%, #14100c 100%); box-shadow: inset 0 6px 15px rgba(0,0,0,.6); }
.scn-once-unkind-befriends .mirror { position: absolute; top: 20%; left: 35%; width: 30%; height: 40%; background: linear-gradient(180deg, #4a3f3a 0%, #3a2f2a 100%); border: 3px solid #2a1f1a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.4); }
.scn-once-unkind-befriends .figure { position: absolute; bottom: 20%; left: 48%; width: 22px; height: 55px; background: linear-gradient(180deg, #1a1512 0%, #0a0705 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ob-figure 5s ease-in-out infinite; }
.scn-once-unkind-befriends .chains { position: absolute; bottom: 25%; left: 52%; width: 30px; height: 10px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20%; box-shadow: 0 0 8px 2px rgba(0,0,0,.3); animation: ob-chains 3s ease-in-out infinite alternate; }
.scn-once-unkind-befriends .candle { position: absolute; bottom: 35%; left: 60%; width: 8px; height: 25px; background: linear-gradient(180deg, #f0c060 0%, #c09040 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 18px 5px rgba(240,192,96,.4); animation: ob-candle 2s ease-in-out infinite alternate; }
.scn-once-unkind-befriends .shadow { position: absolute; bottom: 12%; left: 45%; width: 50px; height: 20px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); animation: ob-shadow 5s ease-in-out infinite; }
@keyframes ob-figure { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(-6px) rotate(1deg) } 50% { transform: translateX(3px) rotate(2deg) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ob-chains { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ob-candle { 0% { opacity: .85; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.08) } 100% { opacity: .9; transform: scaleY(.95) } }
@keyframes ob-shadow { 0% { opacity: .5; transform: scaleX(1) } 50% { opacity: .7; transform: scaleX(1.15) } 100% { opacity: .5; transform: scaleX(1) } }

/* Scene: is-it-your-will */
.scn-is-it-your-will {
  background: linear-gradient(180deg, #0a0a2e 0%, #14143a 30%, #1a1a3a 70%, #0c0c2c 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a5a 0%, transparent 60%);
}
.scn-is-it-your-will .night-sky { position:absolute; inset:0 0 40% 0; background: radial-gradient(circle at 70% 20%, #ffffff10 0%, transparent 80%); animation: iyw-stars 8s ease-in-out infinite alternate; }
.scn-is-it-your-will .moon-glow { position:absolute; top:12%; left:70%; width:24px; height:24px; background: radial-gradient(circle, #c0d0e0 0%, #8090a0 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px #8090a060; animation: iyw-moon 20s ease-in-out infinite alternate; }
.scn-is-it-your-will .bed       { position:absolute; bottom:10%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 8% 8% 0 0 / 20% 20% 0 0; box-shadow: inset 0 6px 12px #00000040; }
.scn-is-it-your-will .figure   { position:absolute; bottom:15%; left:40%; width:20%; height:20%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iyw-breathe 4s ease-in-out infinite; }
.scn-is-it-your-will .window   { position:absolute; top:15%; left:20%; width:15%; height:25%; background: #1a1a2e; border: 4px solid #2a2a3e; border-radius: 4px; box-shadow: inset 0 0 20px #00000080; animation: iyw-window 10s ease-in-out infinite alternate; }
.scn-is-it-your-will .shadow   { position:absolute; bottom:5%; left:30%; right:30%; height:10%; background: #00000030; border-radius: 50%; filter: blur(8px); animation: iyw-shadow-sway 6s ease-in-out infinite alternate; }
@keyframes iyw-stars { 0% { opacity:0.3 } 50% { opacity:0.8 } 100% { opacity:0.4 } }
@keyframes iyw-moon { 0% { transform: translate(0,0) scale(1); opacity:0.7 } 50% { transform: translate(10px,-5px) scale(1.05); opacity:0.9 } 100% { transform: translate(-5px,3px) scale(0.95); opacity:0.75 } }
@keyframes iyw-breathe { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes iyw-window { 0% { background: #1a1a2e; } 50% { background: #2a2a3e; } 100% { background: #1a1a2e; } }
@keyframes iyw-shadow-sway { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(5px) scale(0.95) } 100% { transform: translateX(0) scale(1) } }

/* Scene: sin-self-love */
.scn-sin-self-love {
  background: linear-gradient(135deg, #5a3a1a 0%, #8a5a2a 40%, #4a2a0e 100%),
              radial-gradient(ellipse at 50% 50%, #c08040 0%, transparent 50%);
}
.scn-sin-self-love .room      { position:absolute; inset:0; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); }
.scn-sin-self-love .mirror    { position:absolute; top:20%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%); border: 4px solid #8a7040; border-radius:8px; box-shadow: inset 0 0 30px #00000080, 0 8px 20px #00000080; animation: ssl-mirror 10s ease-in-out infinite alternate; }
.scn-sin-self-love .figure    { position:absolute; bottom:15%; left:40%; width:20%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ssl-admire 5s ease-in-out infinite; }
.scn-sin-self-love .candle-a  { position:absolute; bottom:10%; left:25%; width:4px; height:20px; background: linear-gradient(180deg, #c08040 0%, #a06020 100%); border-radius: 2px; animation: ssl-candle 3s ease-in-out infinite alternate; }
.scn-sin-self-love .candle-b  { position:absolute; bottom:10%; right:25%; width:4px; height:20px; background: linear-gradient(180deg, #c08040 0%, #a06020 100%); border-radius: 2px; animation: ssl-candle 3s ease-in-out infinite alternate-reverse; }
.scn-sin-self-love .glow      { position:absolute; top:5%; left:20%; right:20%; bottom:5%; background: radial-gradient(ellipse at 50% 50%, #ffd06020 0%, transparent 70%); animation: ssl-pulse 6s ease-in-out infinite alternate; }
@keyframes ssl-mirror { 0% { opacity:0.8; transform: scaleX(1) } 50% { opacity:0.95; transform: scaleX(1.02) } 100% { opacity:0.85; transform: scaleX(1) } }
@keyframes ssl-admire { 0% { transform: rotate(-2deg) translateX(0) } 25% { transform: rotate(2deg) translateX(5px) } 50% { transform: rotate(-1deg) translateX(-3px) } 75% { transform: rotate(1deg) translateX(2px) } 100% { transform: rotate(-2deg) translateX(0) } }
@keyframes ssl-candle { 0% { height:18px; opacity:0.9 } 50% { height:22px; opacity:1 } 100% { height:20px; opacity:0.95 } }
@keyframes ssl-pulse { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

/* Scene: against-my-love */
.scn-against-my-love {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 40%, #1a0e06 100%),
              radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, transparent 60%);
}
.scn-against-my-love .wall        { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); }
.scn-against-my-love .chair       { position:absolute; bottom:15%; left:25%; right:25%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 4px 8px #00000080; }
.scn-against-my-love .figure      { position:absolute; bottom:20%; left:35%; width:15%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aml-aging 6s ease-in-out infinite; }
.scn-against-my-love .hourglass   { position:absolute; top:35%; right:20%; width:10%; height:20%; animation: aml-sand 8s linear infinite; background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius: 8px 8px 8px 8px / 10px 10px 10px 10px; }
.scn-against-my-love .hourglass::after { content:''; position:absolute; top:40%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #806030 0%, #604020 100%); border-radius: 4px; }
.scn-against-my-love .candle      { position:absolute; bottom:5%; left:15%; width:4px; height:25px; background: linear-gradient(180deg, #c08040 0%, #a06020 100%); border-radius: 2px; animation: aml-candle 4s ease-in-out infinite alternate; }
.scn-against-my-love .shadow-hand { position:absolute; bottom:30%; left:20%; right:50%; height:20%; background: radial-gradient(ellipse at 30% 30%, #00000060 0%, transparent 70%); filter: blur(10px); animation: aml-hand 5s ease-in-out infinite alternate; }
@keyframes aml-aging { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(0.95) translateY(3px) } 100% { transform: scale(1) translateY(0) } }
@keyframes aml-sand { 0% { background-position: 0% 0%; } 50% { background-position: 0% 50%; } 100% { background-position: 0% 100%; } }
@keyframes aml-candle { 0% { height:24px; opacity:0.9 } 50% { height:28px; opacity:1 } 100% { height:26px; opacity:0.95 } }
@keyframes aml-hand { 0% { transform: translateX(0) scale(1) rotate(0deg) } 50% { transform: translateX(10px) scale(1.1) rotate(5deg) } 100% { transform: translateX(0) scale(1) rotate(0deg) } }

/* Scene: time's-hand-defaced */
.scn-time's-hand-defaced {
  background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 40%, #2a3a3a 100%),
              radial-gradient(ellipse at 50% 70%, #5a6a6a 0%, transparent 50%);
}
.scn-time's-hand-defaced .overcast-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a6a6a 0%, #4a5a5a 100%); animation: thd-clouds 25s linear infinite; }
.scn-time's-hand-defaced .ocean        { position:absolute; bottom:20%; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); animation: thd-waves 12s ease-in-out infinite alternate; }
.scn-time's-hand-defaced .ruin-tower   { position:absolute; bottom:30%; left:30%; width:15%; height:40%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px 4px 0 0; box-shadow: inset -10px 0 10px #00000040; animation: thd-crumble 15s ease-in-out infinite alternate; }
.scn-time's-hand-defaced .shore        { position:absolute; bottom:18%; left:0; right:0; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; }
.scn-time's-hand-defaced .brass        { position:absolute; bottom:28%; left:52%; width:8%; height:12%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 2px; box-shadow: 0 2px 4px #00000080; animation: thd-tarnish 8s ease-in-out infinite alternate; }
.scn-time's-hand-defaced .statue-head  { position:absolute; bottom:35%; left:10%; width:8%; height:10%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; filter: drop-shadow(0 4px 4px #00000060); animation: thd-defaced 10s ease-in-out infinite alternate; }
@keyframes thd-clouds { 0% { background-position: 0% 0% } 50% { background-position: 10% 0% } 100% { background-position: 0% 0% } }
@keyframes thd-waves { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-5px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes thd-crumble { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes thd-tarnish { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:0.9; transform: scale(1.02) } 100% { opacity:0.75; transform: scale(1) } }
@keyframes thd-defaced { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(2px) scale(0.97) } 100% { transform: translateX(0) scale(1) } }

.scn-glass-not-persuade {
  background: linear-gradient(180deg, #f9f4e6 0%, #e8dcc8 50%, #cbb89a 100%), radial-gradient(ellipse at 70% 30%, #fff9e6 0%, transparent 70%);
}
.scn-glass-not-persuade .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f0e6d0 0%, #d8c8b0 100%);
}
.scn-glass-not-persuade .mirror-frame {
  position: absolute; left: 50%; top: 15%; width: 180px; height: 240px; transform: translateX(-50%); background: linear-gradient(135deg, #b09070 0%, #8a7050 50%, #6a5030 100%); border-radius: 8px; box-shadow: 0 8px 20px rgba(0,0,0,0.3); animation: gn1-frame 12s ease-in-out infinite;
}
.scn-glass-not-persuade .mirror-glass {
  position: absolute; left: 50%; top: 19%; width: 150px; height: 200px; transform: translateX(-50%); background: linear-gradient(180deg, rgba(255,255,240,0.9) 0%, rgba(200,190,170,0.6) 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,255,200,0.3), 0 0 20px rgba(200,180,140,0.4); animation: gn1-glass 8s ease-in-out infinite alternate;
}
.scn-glass-not-persuade .figure-silhouette {
  position: absolute; left: 50%; top: 40%; width: 80px; height: 120px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: gn1-figure 6s ease-in-out infinite;
}
.scn-glass-not-persuade .window-light {
  position: absolute; right: 10%; top: 12%; width: 60px; height: 90px; background: linear-gradient(180deg, #fff8e0 0%, rgba(255,248,224,0.4) 100%); border-radius: 4px; filter: blur(4px); opacity: 0.6; animation: gn1-light 10s ease-in-out infinite alternate;
}
.scn-glass-not-persuade .dust {
  position: absolute; inset: 0; background: radial-gradient(circle at 30% 40%, rgba(255,230,180,0.15) 0%, transparent 50%), radial-gradient(circle at 70% 60%, rgba(255,230,180,0.1) 0%, transparent 40%); animation: gn1-dust 20s linear infinite;
}
@keyframes gn1-frame {
  0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(0.5deg); } 100% { transform: translateX(-50%) rotate(-0.3deg); }
}
@keyframes gn1-glass {
  0% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(255,255,200,0.2); } 50% { opacity: 1; box-shadow: inset 0 0 50px rgba(255,255,240,0.4), 0 0 30px rgba(200,180,140,0.5); } 100% { opacity: 0.85; }
}
@keyframes gn1-figure {
  0% { transform: translateX(-50%) translateY(0); } 25% { transform: translateX(-46%) translateY(-2px); } 50% { transform: translateX(-50%) translateY(1px); } 75% { transform: translateX(-54%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); }
}
@keyframes gn1-light {
  0% { opacity: 0.4; filter: blur(6px); } 50% { opacity: 0.8; filter: blur(3px); } 100% { opacity: 0.5; }
}
@keyframes gn1-dust {
  0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; }
}

/* Scene 2: unperfect-actor */
.scn-unperfect-actor {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 30%, #3a3a5a 0%, transparent 70%);
}
.scn-unperfect-actor .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-unperfect-actor .backdrop {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%;
}
.scn-unperfect-actor .spotlight {
  position: absolute; top: 5%; left: 50%; width: 120px; height: 200px; transform: translateX(-50%); background: linear-gradient(180deg, rgba(200,200,220,0.15) 0%, rgba(200,200,220,0.05) 100%); clip-path: polygon(0 0, 100% 0, 60% 100%, 40% 100%); animation: ua2-spotlight 4s ease-in-out infinite alternate;
}
.scn-unperfect-actor .actor-torso {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a3a 0%, #1a101a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: ua2-torso 2s ease-in-out infinite;
}
.scn-unperfect-actor .actor-head {
  position: absolute; bottom: 60%; left: 50%; width: 40px; height: 45px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 15px rgba(0,0,0,0.3); animation: ua2-head 3s ease-in-out infinite;
}
.scn-unperfect-actor .shaking-hand {
  position: absolute; bottom: 35%; left: 42%; width: 20px; height: 30px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: ua2-hand 0.8s ease-in-out infinite;
}
.scn-unperfect-actor .shadow-script {
  position: absolute; bottom: 25%; left: 35%; width: 80px; height: 50px; background: linear-gradient(180deg, rgba(255,255,255,0.05) 0%, rgba(0,0,0,0.3) 100%); border-radius: 4px; transform: rotate(-20deg); opacity: 0.4; animation: ua2-script 6s ease-in-out infinite;
}
@keyframes ua2-spotlight {
  0% { opacity: 0.2; transform: translateX(-50%) scaleY(1); } 50% { opacity: 0.6; transform: translateX(-50%) scaleY(1.2); } 100% { opacity: 0.3; transform: translateX(-50%) scaleY(0.9); }
}
@keyframes ua2-torso {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-48%) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(1px) rotate(-1deg); } 75% { transform: translateX(-52%) translateY(-1px) rotate(0.5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes ua2-head {
  0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(5deg); } 60% { transform: translateX(-50%) rotate(-3deg); } 100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes ua2-hand {
  0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(10deg) translateY(-2px); } 50% { transform: rotate(-5deg) translateY(1px); } 75% { transform: rotate(8deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ua2-script {
  0% { opacity: 0.2; transform: rotate(-20deg) scaleX(1); } 50% { opacity: 0.5; transform: rotate(-15deg) scaleX(1.1); } 100% { opacity: 0.3; transform: rotate(-20deg) scaleX(0.9); }
}

/* Scene 3: item-painted-heart */
.scn-item-painted-heart {
  background: linear-gradient(180deg, #f5e6c8 0%, #e0c8a0 50%, #c8a880 100%), radial-gradient(ellipse at 60% 50%, #fff0d0 0%, transparent 60%);
}
.scn-item-painted-heart .studio-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f0dcc0 0%, #d8c4a0 100%);
}
.scn-item-painted-heart .easel-legs {
  position: absolute; bottom: 20%; left: 50%; width: 10px; height: 160px; transform: translateX(-50%); background: linear-gradient(180deg, #8a6a4a 0%, #5a4020 100%); border-radius: 4px; box-shadow: -20px 0 0 #5a4020, 20px 0 0 #5a4020;
}
.scn-item-painted-heart .canvas-frame {
  position: absolute; bottom: 40%; left: 50%; width: 140px; height: 120px; transform: translateX(-50%); background: linear-gradient(135deg, #d0b8a0 0%, #b09878 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.2); animation: ip3-frame 10s ease-in-out infinite;
}
.scn-item-painted-heart .heart-painting {
  position: absolute; bottom: 44%; left: 50%; width: 80px; height: 70px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #c04030 0%, #802010 100%); border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%; box-shadow: 0 0 20px rgba(192,64,48,0.5); animation: ip3-heart 6s ease-in-out infinite alternate;
}
.scn-item-painted-heart .painter-hand {
  position: absolute; bottom: 30%; left: 38%; width: 40px; height: 50px; background: linear-gradient(180deg, #c8a080 0%, #a08060 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(-30deg); animation: ip3-hand 4s ease-in-out infinite;
}
.scn-item-painted-heart .palette {
  position: absolute; bottom: 28%; left: 32%; width: 50px; height: 40px; background: radial-gradient(circle at 30% 40%, #c05030 8px, transparent 8px), radial-gradient(circle at 60% 60%, #408050 10px, transparent 10px), radial-gradient(circle at 80% 30%, #4040a0 6px, transparent 6px), linear-gradient(135deg, #b09070 0%, #907050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ip3-palette 8s ease-in-out infinite;
}
.scn-item-painted-heart .warm-sunbeam {
  position: absolute; left: 20%; top: 15%; width: 80px; height: 200px; background: linear-gradient(180deg, rgba(255,230,180,0.2) 0%, transparent 100%); transform: rotate(30deg); filter: blur(10px); animation: ip3-beam 15s linear infinite;
}
@keyframes ip3-frame {
  0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-0.5deg); } 100% { transform: translateX(-50%) rotate(0.5deg); }
}
@keyframes ip3-heart {
  0% { transform: translateX(-50%) scale(1); opacity: 0.8; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; box-shadow: 0 0 30px rgba(192,64,48,0.7); } 100% { transform: translateX(-50%) scale(0.95); opacity: 0.9; }
}
@keyframes ip3-hand {
  0% { transform: rotate(-30deg) translateY(0); } 25% { transform: rotate(-25deg) translateY(-2px); } 50% { transform: rotate(-30deg) translateY(0); } 75% { transform: rotate(-35deg) translateY(1px); } 100% { transform: rotate(-30deg) translateY(0); }
}
@keyframes ip3-palette {
  0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes ip3-beam {
  0% { opacity: 0.3; transform: rotate(30deg) translateX(0); } 50% { opacity: 0.8; transform: rotate(28deg) translateX(10px); } 100% { opacity: 0.4; transform: rotate(32deg) translateX(-5px); }
}

/* Scene 4: favour-stars */
.scn-favour-stars {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 30%, #2a2a4a 60%, #0a0a1a 100%), radial-gradient(ellipse at 50% 80%, #1a1a3e 0%, transparent 70%);
}
.scn-favour-stars .night-sky {
  position: absolute; inset: 0; background: radial-gradient(circle at 30% 20%, #3a3a6a 0%, transparent 40%), radial-gradient(circle at 70% 60%, #4a4a7a 0%, transparent 50%); animation: fs4-sky 30s ease-in-out infinite alternate;
}
.scn-favour-stars .horizon {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 5%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 50%, #0a1a0a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
}
.scn-favour-stars .marigold-stem {
  position: absolute; bottom: 15%; left: 50%; width: 6px; height: 120px; transform: translateX(-50%); background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%); border-radius: 2px; animation: fs4-stem 12s ease-in-out infinite;
}
.scn-favour-stars .marigold-petals {
  position: absolute; bottom: 42%; left: 50%; width: 60px; height: 50px; transform: translateX(-50%); background: radial-gradient(circle at 50% 30%, #f0c040 0%, #d0a030 50%, #b08020 100%); border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%; box-shadow: 0 0 20px rgba(240,192,64,0.4); animation: fs4-petal 8s ease-in-out infinite alternate;
}
.scn-favour-stars .star-twin {
  position: absolute; top: 20%; left: 25%; width: 30px; height: 30px; background: radial-gradient(circle, #ffffcc 0%, transparent 70%); border-radius: 50%; animation: fs4-star 5s ease-in-out infinite;
}
.scn-favour-stars .moon-glow {
  position: absolute; top: 8%; left: 65%; width: 100px; height: 100px; background: radial-gradient(circle, rgba(200,200,255,0.15) 0%, transparent 70%); border-radius: 50%; filter: blur(20px); animation: fs4-moon 20s linear infinite;
}
@keyframes fs4-sky {
  0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes fs4-stem {
  0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes fs4-petal {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); opacity: 0.8; } 50% { transform: translateX(-50%) scale(1.1) rotate(5deg); opacity: 1; } 100% { transform: translateX(-50%) scale(0.95) rotate(-3deg); opacity: 0.9; }
}
@keyframes fs4-star {
  0% { transform: scale(0.8); opacity: 0.5; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.6; }
}
@keyframes fs4-moon {
  0% { transform: translateX(0) translateY(0); opacity: 0.3; } 50% { transform: translateX(10px) translateY(-5px); opacity: 0.6; } 100% { transform: translateX(-5px) translateY(5px); opacity: 0.4; }
}

/* blind-fool-love */
.scn-blind-fool-love {
  background: linear-gradient(180deg, #1e1610 0%, #2a1f16 40%, #3a2a1c 100%), radial-gradient(ellipse at 50% 100%, #3a2a1c 0%, transparent 70%);
}
.scn-blind-fool-love .wall-back {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1f16 0%, #1e1610 100%);
  animation: bfl-wall 12s ease-in-out infinite alternate;
}
.scn-blind-fool-love .wall-left {
  position: absolute; inset: 0 60% 0 0;
  background: linear-gradient(90deg, #1a120e 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 5%, 100% 100%, 0 100%);
  animation: bfl-wallshade 8s ease-in-out infinite alternate;
}
.scn-blind-fool-love .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1c 0%, #1e1610 100%);
  border-radius: 30% 0 0 0 / 60% 0 0 0;
  box-shadow: inset 0 40px 60px rgba(0,0,0,0.6);
}
.scn-blind-fool-love .candle {
  position: absolute; bottom: 38%; left: 30%;
  width: 12px; height: 40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #8a5a3a 50%, #5a3a1a 100%);
  border-radius: 4px 4px 2px 2px;
  transform: rotate(-2deg);
  animation: bfl-candle 5s ease-in-out infinite;
}
.scn-blind-fool-love .flame {
  position: absolute; bottom: 68%; left: 30%;
  width: 10px; height: 18px;
  background: radial-gradient(ellipse at 50% 100%, #ffd060 0%, #ff8030 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  box-shadow: 0 0 30px 10px rgba(255,128,48,0.5), 0 0 60px 20px rgba(255,128,48,0.2);
  animation: bfl-flame 2s ease-in-out infinite alternate;
}
.scn-blind-fool-love .figure-silhouette {
  position: absolute; bottom: 0; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 60% 80% at 50% 100%, transparent 30%, #0a0806 30%);
  clip-path: polygon(30% 0%, 70% 0%, 75% 30%, 100% 50%, 90% 100%, 10% 100%, 0% 50%, 25% 30%);
  animation: bfl-figure 9s ease-in-out infinite;
}
.scn-blind-fool-love .glow-ring {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 120px;
  transform: translate(-50%, 50%);
  background: radial-gradient(circle, rgba(255,128,48,0.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: bfl-glowpulse 6s ease-in-out infinite alternate;
}
@keyframes bfl-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes bfl-wallshade { 0% { opacity:0.5; transform: scaleX(1) } 100% { opacity:0.8; transform: scaleX(0.95) } }
@keyframes bfl-candle { 0%,100% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-1px) } }
@keyframes bfl-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.9 } 50% { transform: scaleY(1.2) translateY(-2px); opacity:1 } 100% { transform: scaleY(0.9) translateY(1px); opacity:0.85 } }
@keyframes bfl-figure { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-48%) rotate(2deg) } 50% { transform: translateX(-50%) rotate(-1deg) } 75% { transform: translateX(-52%) rotate(1deg) } }
@keyframes bfl-glowpulse { 0% { transform: translate(-50%,50%) scale(1); opacity:0.5 } 100% { transform: translate(-50%,50%) scale(1.2); opacity:0.8 } }

/* love-swears-truth */
.scn-love-swears-truth {
  background: linear-gradient(180deg, #1a1410 0%, #2a201a 40%, #3a2c22 100%), radial-gradient(ellipse at 50% 20%, #2a201a 0%, transparent 70%);
}
.scn-love-swears-truth .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #0a0806 0%, transparent 20%, transparent 80%, #0a0806 100%);
}
.scn-love-swears-truth .mirror-frame {
  position: absolute; top: 15%; left: 50%; width: 160px; height: 200px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2216 50%, #2a1a12 100%);
  border-radius: 12px 12px 4px 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
  animation: lst-frame 15s ease-in-out infinite alternate;
}
.scn-love-swears-truth .mirror-glass {
  position: absolute; top: 20%; left: 50%; width: 130px; height: 170px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, rgba(60,50,40,0.8) 0%, rgba(40,30,20,0.4) 50%, rgba(20,15,10,0.6) 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
  animation: lst-glass 10s ease-in-out infinite alternate;
}
.scn-love-swears-truth .reflection {
  position: absolute; top: 25%; left: 50%; width: 80px; height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, rgba(180,140,100,0.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: lst-reflect 8s ease-in-out infinite alternate;
}
.scn-love-swears-truth .hand {
  position: absolute; bottom: 20%; left: 62%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a20 0%, #1a120e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(10deg);
  animation: lst-hand 6s ease-in-out infinite;
}
.scn-love-swears-truth .drape-left {
  position: absolute; top: 0; left: 0; width: 25%; height: 100%;
  background: linear-gradient(90deg, #2a1e16 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 5%, 100% 95%, 0 100%);
  animation: lst-drape 18s ease-in-out infinite alternate;
}
.scn-love-swears-truth .drape-right {
  position: absolute; top: 0; right: 0; width: 25%; height: 100%;
  background: linear-gradient(270deg, #2a1e16 0%, transparent 100%);
  clip-path: polygon(0 5%, 100% 0, 100% 100%, 0 95%);
  animation: lst-drape 18s ease-in-out infinite alternate-reverse;
}
.scn-love-swears-truth .dust-motes {
  position: absolute; top: 30%; left: 20%; width: 200px; height: 200px;
  background: radial-gradient(circle at 30% 40%, rgba(180,140,100,0.15) 0%, transparent 50%);
  border-radius: 50%;
  filter: blur(20px);
  animation: lst-dust 25s linear infinite;
}
@keyframes lst-frame { 0% { transform: translateX(-50%) scale(1) } 100% { transform: translateX(-50%) scale(0.98) } }
@keyframes lst-glass { 0% { opacity:0.7; transform: translateX(-50%) scale(1) } 50% { opacity:0.85; transform: translateX(-50%) scale(0.99) } 100% { opacity:0.75; transform: translateX(-50%) scale(1.01) } }
@keyframes lst-reflect { 0% { opacity:0.3; transform: translateX(-50%) translateY(0) } 100% { opacity:0.6; transform: translateX(-50%) translateY(-5px) } }
@keyframes lst-hand { 0%,100% { transform: rotate(10deg) translate(0,0) } 50% { transform: rotate(8deg) translate(-2px,2px) } }
@keyframes lst-drape { 0% { opacity:0.6; clip-path: polygon(0 0, 100% 5%, 100% 95%, 0 100%) } 100% { opacity:0.8; clip-path: polygon(0 0, 100% 8%, 100% 92%, 0 100%) } }
@keyframes lst-dust { 0% { transform: translate(0,0) rotate(0deg) } 33% { transform: translate(20px,-10px) rotate(5deg) } 66% { transform: translate(-10px,15px) rotate(-3deg) } 100% { transform: translate(0,0) rotate(0deg) } }

/* call-not-justify */
.scn-call-not-justify {
  background: linear-gradient(180deg, #0e0a14 0%, #1a1424 40%, #2a1e34 100%), radial-gradient(ellipse at 50% 0%, #2a1e34 0%, transparent 70%);
}
.scn-call-not-justify .wall-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1424 0%, #0e0a14 100%);
  border-bottom: 2px solid rgba(80,60,100,0.2);
}
.scn-call-not-justify .window-arch {
  position: absolute; top: 15%; left: 50%; width: 100px; height: 130px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, #2a1e34 0%, #1a1424 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: cnj-arch 20s ease-in-out infinite alternate;
}
.scn-call-not-justify .window-pane {
  position: absolute; top: 18%; left: 50%; width: 80px; height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, rgba(30,40,60,0.6) 0%, rgba(10,15,25,0.4) 100%);
  border-radius: 40% 40% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: cnj-pane 12s ease-in-out infinite alternate;
}
.scn-call-not-justify .moon {
  position: absolute; top: 22%; left: 50%; width: 30px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(180,200,220,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  box-shadow: 0 0 40px 10px rgba(180,200,220,0.15);
  animation: cnj-moon 15s ease-in-out infinite alternate;
}
.scn-call-not-justify .figure-profile {
  position: absolute; bottom: 10%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #0e0a14 0%, #1a1424 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 20%, 80% 50%, 100% 80%, 90% 100%, 50% 100%, 10% 100%, 0% 80%, 20% 50%, 0% 20%);
  animation: cnj-figure 8s ease-in-out infinite;
}
.scn-call-not-justify .shadow-floor {
  position: absolute; bottom: 0; left: 50%; width: 120px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: cnj-shadow 8s ease-in-out infinite;
}
.scn-call-not-justify .chain {
  position: absolute; top: 12%; left: 50%; width: 4px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a44 0%, #1a1424 100%);
  border-radius: 2px;
  animation: cnj-chain 6s ease-in-out infinite;
}
@keyframes cnj-arch { 0% { transform: translateX(-50%) scaleY(1) } 100% { transform: translateX(-50%) scaleY(0.97) } }
@keyframes cnj-pane { 0% { opacity:0.5; transform: translateX(-50%) scale(1) } 50% { opacity:0.7; transform: translateX(-50%) scale(0.98) } 100% { opacity:0.6; transform: translateX(-50%) scale(1.02) } }
@keyframes cnj-moon { 0% { transform: translateX(-50%) translateY(0); opacity:0.4 } 50% { transform: translateX(-50%) translateY(-3px); opacity:0.6 } 100% { transform: translateX(-50%) translateY(0); opacity:0.5 } }
@keyframes cnj-figure { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-48%) rotate(3deg) } 50% { transform: translateX(-50%) rotate(-2deg) } 75% { transform: translateX(-52%) rotate(1deg) } }
@keyframes cnj-shadow { 0%,100% { transform: translateX(-50%) scale(1); opacity:0.5 } 50% { transform: translateX(-50%) scale(1.1); opacity:0.7 } }
@keyframes cnj-chain { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } }

/* be-wise-cruel */
.scn-be-wise-cruel {
  background: linear-gradient(180deg, #120c08 0%, #1e1610 40%, #2a1e16 100%), radial-gradient(ellipse at 50% 100%, #2a1e16 0%, transparent 70%);
}
.scn-be-wise-cruel .ceiling {
  position: absolute; top: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1a120e 0%, transparent 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-be-wise-cruel .wall-back {
  position: absolute; top: 15%; left: 0; right: 0; bottom: 35%;
  background: repeating-linear-gradient(90deg, #1a120e 0px, #1a120e 2px, #221810 2px, #221810 4px);
  animation: bwc-wall 30s linear infinite;
}
.scn-be-wise-cruel .table {
  position: absolute; bottom: 30%; left: 50%; width: 140px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1c12 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: bwc-table 10s ease-in-out infinite alternate;
}
.scn-be-wise-cruel .book {
  position: absolute; bottom: 36%; left: 50%; width: 50px; height: 30px;
  transform: translateX(-55%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2216 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: bwc-book 7s ease-in-out infinite;
}
.scn-be-wise-cruel .hand-rest {
  position: absolute; bottom: 32%; left: 50%; width: 30px; height: 20px;
  transform: translateX(-20%);
  background: radial-gradient(ellipse at 50% 100%, #2a1a12 0%, #1a120e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: bwc-hand 5s ease-in-out infinite alternate;
}
.scn-be-wise-cruel .candle-stub {
  position: absolute; bottom: 36%; left: 65%; width: 10px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 3px;
  animation: bwc-candle 8s ease-in-out infinite;
}
.scn-be-wise-cruel .wick-glow {
  position: absolute; bottom: 46%; left: 65%; width: 8px; height: 14px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #ff6020 40%, transparent 70%);
  filter: blur(2px);
  box-shadow: 0 0 20px 8px rgba(255,96,32,0.4), 0 0 40px 15px rgba(255,96,32,0.15);
  animation: bwc-wick 3s ease-in-out infinite alternate;
}
.scn-be-wise-cruel .shadow-figure {
  position: absolute; bottom: 0; left: 50%; width: 100px; height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #0a0806 0%, transparent 70%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 20%, 90% 50%, 100% 80%, 85% 100%, 15% 100%, 0% 80%, 10% 50%, 0% 20%);
  animation: bwc-shadow-fig 9s ease-in-out infinite;
}
@keyframes bwc-wall { 0% { background-position: 0 0 } 100% { background-position: -40px 0 } }
@keyframes bwc-table { 0% { transform: translateX(-50%) scaleX(1) } 100% { transform: translateX(-50%) scaleX(0.97) } }
@keyframes bwc-book { 0%,100% { transform: translateX(-55%) rotate(0deg) } 50% { transform: translateX(-55%) rotate(2deg) } }
@keyframes bwc-hand { 0% { transform: translateX(-20%) scale(1) } 100% { transform: translateX(-20%) scale(1.05) rotate(5deg) } }
@keyframes bwc-candle { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes bwc-wick { 0% { transform: translateX(-50%) scaleY(1); opacity:0.8 } 50% { transform: translateX(-50%) scaleY(1.3); opacity:1 } 100% { transform: translateX(-50%) scaleY(0.9); opacity:0.85 } }
@keyframes bwc-shadow-fig { 0%,100% { transform: translateX(-50%) scale(1) } 25% { transform: translateX(-48%) scale(1.02) } 50% { transform: translateX(-50%) scale(0.98) } 75% { transform: translateX(-52%) scale(1.01) } }

/* Scene: let-not-idolatry (warm interior) */
.scn-let-not-idolatry {
  background: linear-gradient(180deg, #2e1b0e 0%, #4a2e1a 40%, #3a2210 100%), radial-gradient(ellipse at 50% 60%, #8a5c3a 0%, transparent 70%);
}
.scn-let-not-idolatry .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3018 0%, #2c1a0a 100%);
  animation: li-wall 12s ease-in-out infinite alternate;
}
.scn-let-not-idolatry .shrine-base {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #6a4a2a 0%, #8b6040 50%, #5a3a1a 100%);
  border-radius: 4px 4px 0 0;
  animation: li-shrine 6s ease-in-out infinite;
}
.scn-let-not-idolatry .candle-glow {
  position: absolute; bottom: 45%; left: 50%; width: 30px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffdd88 0%, #f0b040 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(240,176,64,0.6), 0 0 80px 40px rgba(240,176,64,0.3);
  animation: li-glow 3s ease-in-out infinite alternate;
}
.scn-let-not-idolatry .candle-body {
  position: absolute; bottom: 38%; left: 50%; width: 14px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f5e0c0 0%, #d4b88a 50%, #a08060 100%);
  border-radius: 4px 4px 8px 8px;
  animation: li-flicker 2s ease-in-out infinite;
}
.scn-let-not-idolatry .figure-silhouette {
  position: absolute; bottom: 18%; left: 42%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #1a0e05 0%, #0d0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: li-kneel 8s ease-in-out infinite;
}
.scn-let-not-idolatry .offering {
  position: absolute; bottom: 20%; left: 55%; width: 12px; height: 12px;
  background: radial-gradient(circle, #b87333 0%, #8a5a20 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(184,115,51,0.5);
  animation: li-offer 4s ease-in-out infinite alternate;
}
@keyframes li-wall { 0%,100% { opacity: 0.9; } 50% { opacity: 0.7; } }
@keyframes li-shrine { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes li-glow { 0% { opacity: 0.6; transform: translateX(-50%) scale(0.8); } 50% { opacity: 1; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.8; transform: translateX(-50%) scale(0.9); } }
@keyframes li-flicker { 0%,100% { opacity: 0.9; transform: translateX(-50%) scaleY(1); } 30% { opacity: 1; transform: translateX(-50%) scaleY(1.02); } 60% { opacity: 0.85; transform: translateX(-50%) scaleY(0.97); } }
@keyframes li-kneel { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(0) translateY(-1px) rotate(-1deg); } 75% { transform: translateX(-3px) translateY(-2px) rotate(2deg); } }
@keyframes li-offer { 0% { transform: translateY(0); } 100% { transform: translateY(-4px); } }

/* Scene: chronicle-wasted-time (calm interior, desk) */
.scn-chronicle-wasted-time {
  background: linear-gradient(180deg, #2d2010 0%, #4a3620 40%, #3a2818 100%), radial-gradient(ellipse at 70% 50%, #6a5030 0%, transparent 70%);
}
.scn-chronicle-wasted-time .bg-desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%);
  border-radius: 20% 20% 0 0;
  animation: cwt-desk 20s ease-in-out infinite alternate;
}
.scn-chronicle-wasted-time .book-spine {
  position: absolute; bottom: 28%; left: 20%; width: 18px; height: 60px;
  background: linear-gradient(90deg, #6a4a2a 0%, #8b6040 50%, #5a3a1a 100%);
  border-radius: 3px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
  animation: cwt-book 15s ease-in-out infinite;
}
.scn-chronicle-wasted-time .paper-sheet {
  position: absolute; bottom: 25%; left: 42%; width: 50px; height: 40px;
  background: linear-gradient(135deg, #f5e8c0 0%, #d4c090 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: cwt-paper 8s ease-in-out infinite alternate;
}
.scn-chronicle-wasted-time .quill {
  position: absolute; bottom: 30%; left: 58%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #e8d8b8 0%, #b09870 60%, #705840 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: cwt-quill 4s ease-in-out infinite;
}
.scn-chronicle-wasted-time .inkwell {
  position: absolute; bottom: 22%; left: 60%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.6);
  animation: cwt-ink 12s ease-in-out infinite alternate;
}
.scn-chronicle-wasted-time .hand-shadow {
  position: absolute; bottom: 22%; left: 45%; width: 24px; height: 32px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0d0500 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cwt-hand 6s ease-in-out infinite;
}
@keyframes cwt-desk { 0%,100% { opacity: 0.9; } 50% { opacity: 0.7; } }
@keyframes cwt-book { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes cwt-paper { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(-6deg) translateY(0); } }
@keyframes cwt-quill { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(5deg); } }
@keyframes cwt-ink { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes cwt-hand { 0% { transform: translateX(0) translateY(0); } 30% { transform: translateX(4px) translateY(-2px); } 60% { transform: translateX(0) translateY(-1px); } 100% { transform: translateX(-4px) translateY(0); } }

/* Scene: not-mine-own-fears (overcast, eclipse) */
.scn-not-mine-own-fears {
  background: linear-gradient(180deg, #3a4048 0%, #4a5058 30%, #2a3038 100%), radial-gradient(ellipse at 50% 60%, #5a6878 0%, transparent 80%);
}
.scn-not-mine-own-fears .sky-clouds {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a6068 0%, #3a4048 100%);
  animation: nmf-sky 30s ease-in-out infinite alternate;
}
.scn-not-mine-own-fears .moon {
  position: absolute; top: 15%; left: 50%; width: 50px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e0e8f0 0%, #a0b0c0 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,210,220,0.5);
  animation: nmf-moon 10s ease-in-out infinite;
}
.scn-not-mine-own-fears .moon-shadow {
  position: absolute; top: 15%; left: 50%; width: 50px; height: 50px;
  transform: translateX(-50%) translateX(8px);
  background: #2a3038;
  border-radius: 50%;
  clip-path: inset(0 0 0 50%);
  animation: nmf-eclipse 20s ease-in-out infinite;
}
.scn-not-mine-own-fears .treeline {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  animation: nmf-trees 18s ease-in-out infinite alternate;
}
.scn-not-mine-own-fears .figure-scene {
  position: absolute; bottom: 22%; left: 40%; width: 16px; height: 45px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nmf-figure 12s ease-in-out infinite;
}
.scn-not-mine-own-fears .ground-mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, rgba(160,170,180,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: nmf-mist 25s ease-in-out infinite alternate;
}
@keyframes nmf-sky { 0%,100% { opacity: 0.8; } 50% { opacity: 0.6; } }
@keyframes nmf-moon { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(0.95); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes nmf-eclipse { 0% { transform: translateX(-50%) translateX(8px) scale(1); } 50% { transform: translateX(-50%) translateX(5px) scale(0.9); } 100% { transform: translateX(-50%) translateX(12px) scale(1); } }
@keyframes nmf-trees { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes nmf-figure { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-4px) rotate(2deg); } }
@keyframes nmf-mist { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.05); } 100% { opacity: 0.3; transform: scale(0.95); } }

/* Scene: brain-ink-character (calm, dim interior, writing) */
.scn-brain-ink-character {
  background: linear-gradient(180deg, #2a1e12 0%, #3a2a1a 40%, #1e120a 100%), radial-gradient(ellipse at 30% 50%, #6a5030 0%, transparent 70%);
}
.scn-brain-ink-character .wall-sconce {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2818 0%, #1e120a 100%);
  animation: bic-wall 15s ease-in-out infinite alternate;
}
.scn-brain-ink-character .desk-top {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
  animation: bic-desk 20s ease-in-out infinite alternate;
}
.scn-brain-ink-character .candle-drip {
  position: absolute; bottom: 40%; left: 25%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #e8d8b8 0%, #c0a87a 50%, #8a7050 100%);
  border-radius: 3px;
  box-shadow: 0 0 12px 4px rgba(240,200,120,0.3);
  animation: bic-candle 4s ease-in-out infinite;
}
.scn-brain-ink-character .ink-pot {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 26px;
  background: linear-gradient(180deg, #1a0e05 0%, #0d0500 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.8);
  animation: bic-pot 12s ease-in-out infinite alternate;
}
.scn-brain-ink-character .quill-tip {
  position: absolute; bottom: 25%; left: 42%; width: 3px; height: 60px;
  background: linear-gradient(180deg, #e0c8a8 0%, #b09870 60%, #705840 100%);
  border-radius: 1px;
  transform-origin: bottom center;
  animation: bic-quill 5s ease-in-out infinite;
}
.scn-brain-ink-character .letter-scroll {
  position: absolute; bottom: 18%; left: 45%; width: 45px; height: 35px;
  background: linear-gradient(135deg, #f5e8c0 0%, #d4c090 100%);
  border-radius: 2px;
  transform: rotate(3deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: bic-scroll 8s ease-in-out infinite alternate;
}
@keyframes bic-wall { 0%,100% { opacity: 0.85; } 50% { opacity: 0.7; } }
@keyframes bic-desk { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } }
@keyframes bic-candle { 0%,100% { transform: rotate(0); } 30% { transform: rotate(2deg); } 60% { transform: rotate(-1deg); } }
@keyframes bic-pot { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes bic-quill { 0% { transform: rotate(-5deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-5deg); } }
@keyframes bic-scroll { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-4px); } 100% { transform: rotate(3deg) translateY(0); } }

/* brass-stone — overcast dark */
.scn-brass-stone {
  background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 30%, #2a2a3a 70%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 100%, #5a5a6a 0%, transparent 60%);
}
.scn-brass-stone .sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 60%, transparent);
  animation: bs-sky 14s ease-in-out infinite alternate;
}
.scn-brass-stone .ground {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-brass-stone .monument {
  position:absolute; bottom:30%; left:50%; width:80px; height:100px;
  transform:translateX(-50%);
  background: linear-gradient(135deg, #5a5a4a 0%, #3a3a2a 40%, #1a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7), inset 0 0 20px rgba(0,0,0,0.5);
  animation: bs-monument 9s ease-in-out infinite;
}
.scn-brass-stone .flower {
  position:absolute; bottom:25%; left:55%; width:20px; height:20px;
  background: radial-gradient(circle, #c8a080 0%, #a06040 70%);
  border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%;
  box-shadow: 0 0 10px 2px rgba(200,160,128,0.3);
  animation: bs-flower 6s ease-in-out infinite alternate;
}
.scn-brass-stone .shadow {
  position:absolute; bottom:28%; left:40%; width:120px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: bs-shadow 12s ease-in-out infinite;
}
.scn-brass-stone .mist {
  position:absolute; top:20%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, rgba(90,90,100,0.3) 0%, transparent);
  filter: blur(10px);
  animation: bs-mist 20s ease-in-out infinite alternate;
}
@keyframes bs-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes bs-monument { 0% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-50%) scale(1.01) translateY(-2px) } 100% { transform:translateX(-50%) scale(1) } }
@keyframes bs-flower { 0% { transform: rotate(-5deg) scale(0.95); opacity:0.7 } 50% { transform: rotate(5deg) scale(1.05); opacity:1 } 100% { transform: rotate(-5deg) scale(0.95); opacity:0.8 } }
@keyframes bs-shadow { 0% { transform: scaleX(1); opacity:0.5 } 50% { transform: scaleX(1.1); opacity:0.7 } 100% { transform: scaleX(1); opacity:0.5 } }
@keyframes bs-mist { 0% { transform: translateY(0); opacity:0.3 } 50% { transform: translateY(-5px); opacity:0.5 } 100% { transform: translateY(0); opacity:0.3 } }

/* tired-with-all — dim interior */
.scn-tired-with-all {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, transparent 60%);
}
.scn-tired-with-all .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 80%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-tired-with-all .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
}
.scn-tired-with-all .candle {
  position:absolute; bottom:35%; left:30%; width:12px; height:40px;
  background: linear-gradient(180deg, #d0b080 0%, #a08050 100%);
  border-radius: 5px 5px 3px 3px;
  transform:rotate(-3deg);
}
.scn-tired-with-all .flame {
  position:absolute; bottom:47%; left:30%; width:10px; height:18px;
  background: radial-gradient(circle, #ffd080 0%, #ff8040 50%, #c04020 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 8px rgba(255,128,64,0.4), 0 0 40px 16px rgba(255,128,64,0.2);
  animation: tw-flame 2s ease-in-out infinite alternate;
}
.scn-tired-with-all .figure {
  position:absolute; bottom:30%; right:30%; width:20px; height:40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tw-figure 6s ease-in-out infinite;
}
.scn-tired-with-all .chair {
  position:absolute; bottom:30%; right:25%; width:30px; height:25px;
  background: linear-gradient(135deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: tw-chair 8s ease-in-out infinite;
}
.scn-tired-with-all .window {
  position:absolute; top:12%; right:10%; width:60px; height:80px;
  background: radial-gradient(ellipse, #2a2a4a 0%, #1a1a2a 70%);
  border-radius: 10%;
  border: 4px solid #2a2a3a;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: tw-window 12s ease-in-out infinite alternate;
}
@keyframes tw-flame { 0% { transform: scaleY(0.95) rotate(-2deg); opacity:0.8 } 50% { transform: scaleY(1.1) rotate(3deg); opacity:1 } 100% { transform: scaleY(0.95) rotate(-2deg); opacity:0.85 } }
@keyframes tw-figure { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(-1deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes tw-chair { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes tw-window { 0% { opacity:0.6; box-shadow: inset 0 0 20px rgba(0,0,0,0.7) } 50% { opacity:0.8; box-shadow: inset 0 0 40px rgba(0,0,0,0.5) } 100% { opacity:0.6; box-shadow: inset 0 0 20px rgba(0,0,0,0.7) } }

/* ah-why-infection — dim interior, mirror/reflection */
.scn-ah-why-infection {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a12 100%),
              radial-gradient(ellipse at 50% 60%, #1a1a2a 0%, transparent 70%);
}
.scn-ah-why-infection .frame {
  position:absolute; top:10%; left:25%; width:50%; height:70%;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 10%;
  box-shadow: 0 0 30px rgba(0,0,0,0.8);
  animation: in-frame 15s ease-in-out infinite alternate;
}
.scn-ah-why-infection .mirror {
  position:absolute; top:15%; left:30%; width:40%; height:60%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 8%;
  box-shadow: inset 0 0 50px rgba(0,0,0,0.9), 0 0 20px rgba(0,0,128,0.2);
}
.scn-ah-why-infection .profile {
  position:absolute; bottom:30%; right:20%; width:20px; height:35px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: in-profile 6s ease-in-out infinite;
}
.scn-ah-why-infection .splatter {
  position:absolute; top:30%; left:35%; width:40px; height:30px;
  background: radial-gradient(circle, #5e1a1d 0%, #3a0a0a 60%, transparent);
  border-radius: 50% 50% 40% 60%;
  filter: blur(2px);
  animation: in-splatter 8s ease-in-out infinite;
}
.scn-ah-why-infection .smear {
  position:absolute; top:45%; left:40%; width:30px; height:15px;
  background: linear-gradient(90deg, #702243 0%, #5e1a1d 50%, transparent);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(15deg);
  filter: blur(3px);
  animation: in-smear 10s ease-in-out infinite alternate;
}
.scn-ah-why-infection .shadow-face {
  position:absolute; bottom:30%; left:25%; width:18px; height:30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity:0.3;
  animation: in-shadow 7s ease-in-out infinite;
}
.scn-ah-why-infection .glow-spot {
  position:absolute; top:20%; left:50%; width:8px; height:8px;
  background: radial-gradient(circle, #c0a080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(192,160,128,0.3);
  animation: in-glow 4s ease-in-out infinite alternate;
}
@keyframes in-frame { 0% { transform: scale(1) } 50% { transform: scale(1.01) rotate(1deg) } 100% { transform: scale(1) } }
@keyframes in-profile { 0% { transform: scaleX(-1) translateY(0) } 50% { transform: scaleX(-1) translateY(-2px) } 100% { transform: scaleX(-1) translateY(0) } }
@keyframes in-splatter { 0% { transform: scale(1); opacity:0.7 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(1); opacity:0.8 } }
@keyframes in-smear { 0% { transform: rotate(15deg) scaleX(1) } 50% { transform: rotate(10deg) scaleX(1.1) } 100% { transform: rotate(15deg) scaleX(1) } }
@keyframes in-shadow { 0% { opacity:0.2 } 50% { opacity:0.4 } 100% { opacity:0.2 } }
@keyframes in-glow { 0% { opacity:0.5; box-shadow: 0 0 10px 2px rgba(192,160,128,0.2) } 50% { opacity:0.8; box-shadow: 0 0 20px 6px rgba(192,160,128,0.4) } 100% { opacity:0.5; box-shadow: 0 0 10px 2px rgba(192,160,128,0.2) } }

/* cheek-map-days — sunlit, calm */
.scn-cheek-map-days {
  background: linear-gradient(180deg, #8ab0d0 0%, #c0d8e8 30%, #f0e8c0 70%, #e8d0a0 100%),
              radial-gradient(ellipse at 50% 0%, #f0f0e0 0%, transparent 60%);
}
.scn-cheek-map-days .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #8ab0d0 0%, #c0d8e8 100%);
  animation: cm-sky 20s ease-in-out infinite alternate;
}
.scn-cheek-map-days .field {
  position:absolute; bottom:0; left:0; right:0; height:60%;
  background: linear-gradient(180deg, #b0c880 0%, #90a860 40%, #708040 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.1);
}
.scn-cheek-map-days .sun {
  position:absolute; top:10%; left:70%; width:50px; height:50px;
  background: radial-gradient(circle, #fff0c0 0%, #f0d080 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(240,208,128,0.3);
  animation: cm-sun 15s ease-in-out infinite alternate;
}
.scn-cheek-map-days .flowers {
  position:absolute; bottom:20%; left:0; right:0; height:20%;
  background: repeating-linear-gradient(90deg, transparent, transparent 15px,
    #d0a0b0 15px, #d0a0b0 18px,
    transparent 18px, transparent 30px,
    #b07878 30px, #b07878 33px,
    transparent 33px, transparent 45px);
  filter: blur(1px);
  animation: cm-flowers 8s ease-in-out infinite;
}
.scn-cheek-map-days .wreath {
  position:absolute; bottom:30%; left:50%; width:60px; height:40px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse, #d0b080 0%, #c0a060 40%, #a08040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 4px rgba(200,160,100,0.3);
  animation: cm-wreath 12s ease-in-out infinite;
}
.scn-cheek-map-days .face-silhouette {
  position:absolute; bottom:25%; left:50%; width:24px; height:32px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: cm-face 9s ease-in-out infinite alternate;
}
.scn-cheek-map-days .pollen {
  position:absolute; top:15%; left:20%; width:4px; height:4px;
  background: #f0e0c0;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(240,224,192,0.5);
  animation: cm-pollen 25s linear infinite;
}
@keyframes cm-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes cm-sun { 0% { transform: translateY(0) scale(0.95); box-shadow: 0 0 40px 20px rgba(240,208,128,0.2) } 50% { transform: translateY(-3px) scale(1.05); box-shadow: 0 0 60px 30px rgba(240,208,128,0.4) } 100% { transform: translateY(0) scale(0.95); box-shadow: 0 0 40px 20px rgba(240,208,128,0.2) } }
@keyframes cm-flowers { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cm-wreath { 0% { transform:translateX(-50%) rotate(-2deg) } 50% { transform:translateX(-50%) rotate(2deg) } 100% { transform:translateX(-50%) rotate(-2deg) } }
@keyframes cm-face { 0% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-50%) scale(1.02) } 100% { transform:translateX(-50%) scale(1) } }
@keyframes cm-pollen { 0% { transform: translate(0,0); opacity:0 } 10% { opacity:1 } 90% { opacity:1 } 100% { transform: translate(80px, -30px); opacity:0 } }

.scn-fast-wane-grow {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e0f 50%, #1a1208 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
}
.scn-fast-wane-grow .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, transparent 100%);
}
.scn-fast-wane-grow .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1208 0%, #0f0a05 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-fast-wane-grow .window {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-fast-wane-grow .vine {
  position: absolute; bottom: 35%; left: 50%; width: 4px; height: 30%;
  background: linear-gradient(180deg, #3a6a3a 0%, #2a4a2a 100%);
  transform-origin: bottom center;
  border-radius: 2px;
  animation: fwg-vine 10s ease-in-out infinite;
}
.scn-fast-wane-grow .pot {
  position: absolute; bottom: 33%; left: 46%; width: 12%; height: 10%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-fast-wane-grow .leaf {
  position: absolute; bottom: 55%; width: 20px; height: 12px;
  background: radial-gradient(ellipse at 70% 50%, #6a9a4a 0%, #3a6a2a 100%);
  border-radius: 50% 50% 50% 0;
  filter: blur(1px);
}
.scn-fast-wane-grow .leaf-a {
  left: 47%; transform: rotate(-30deg);
  animation: fwg-leaf-a 8s ease-in-out infinite alternate;
}
.scn-fast-wane-grow .leaf-b {
  left: 53%; transform: rotate(20deg);
  animation: fwg-leaf-b 8s ease-in-out infinite alternate;
  animation-delay: 4s;
}
.scn-fast-wane-grow .glow-spot {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,140,0.15) 0%, transparent 70%);
  animation: fwg-glow 6s ease-in-out infinite alternate;
}
@keyframes fwg-vine {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.08); }
  100% { transform: scaleY(1); }
}
@keyframes fwg-leaf-a {
  0% { transform: rotate(-30deg) translateX(0); }
  50% { transform: rotate(-25deg) translateX(2px); }
  100% { transform: rotate(-30deg) translateX(0); }
}
@keyframes fwg-leaf-b {
  0% { transform: rotate(20deg) translateX(0); }
  50% { transform: rotate(15deg) translateX(-2px); }
  100% { transform: rotate(20deg) translateX(0); }
}
@keyframes fwg-glow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}

.scn-item-seal {
  background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0e 50%, #1a0f08 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.7);
}
.scn-item-seal .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f08 100%);
}
.scn-item-seal .hearth-glow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #c08040 0%, #4a2e1a 60%, transparent 80%);
  opacity: 0.4;
  animation: its-hearth 10s ease-in-out infinite alternate;
}
.scn-item-seal .clockface {
  position: absolute; top: 12%; left: 28%; width: 44%; height: 45%;
  background: radial-gradient(circle, #8a7050 0%, #6a5030 50%, #4a3018 100%);
  border-radius: 50%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: its-clock 6s ease-in-out infinite alternate;
}
.scn-item-seal .pendulum {
  position: absolute; top: 50%; left: 50%; width: 4px; height: 30%;
  background: linear-gradient(180deg, #b09070 0%, #6a5030 100%);
  transform-origin: 50% 0;
  border-radius: 2px;
  animation: its-pendulum 4s ease-in-out infinite alternate;
}
.scn-item-seal .curtain {
  position: absolute; top: 0; height: 100%; width: 20%;
  background: linear-gradient(180deg, #5a4040 0%, #3a2828 100%);
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.6);
}
.scn-item-seal .curtain-l {
  left: 0;
  border-radius: 0 40% 0 0;
  animation: its-curtain-l 20s ease-in-out infinite;
}
.scn-item-seal .curtain-r {
  right: 0;
  border-radius: 40% 0 0 0;
  animation: its-curtain-r 20s ease-in-out infinite;
  animation-delay: 10s;
}
.scn-item-seal .candle {
  position: absolute; bottom: 8%; left: 12%; width: 3%; height: 14%;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 50%, #705030 100%);
  border-radius: 50% 50% 10% 10%;
}
.scn-item-seal .flame {
  position: absolute; bottom: 20%; left: 12.5%; width: 2%; height: 8%;
  background: radial-gradient(ellipse at 50% 80%, #ffd080 0%, #ffa040 50%, transparent 100%);
  filter: blur(1px);
  animation: its-flame 1s ease-in-out infinite alternate;
}
@keyframes its-hearth {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.5; transform: scaleY(1.05); }
  100% { opacity: 0.4; transform: scaleY(1); }
}
@keyframes its-clock {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(3deg) scale(1.02); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes its-pendulum {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(0deg); }
  100% { transform: rotate(5deg); }
}
@keyframes its-curtain-l {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(0); }
}
@keyframes its-curtain-r {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}
@keyframes its-flame {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.1) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}

.scn-time-scythe {
  background: linear-gradient(180deg, #1a0f2a 0%, #0f0a1a 40%, #2a1a0a 70%, #3a2a1a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.8);
}
.scn-time-scythe .dusk-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2a1a3a 0%, #4a2a1a 100%);
  animation: tsc-sky 15s ease-in-out infinite alternate;
}
.scn-time-scythe .dusk-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1208 0%, #0f0a05 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
}
.scn-time-scythe .scythe-blade {
  position: absolute; top: 25%; left: 50%; width: 50%; height: 8px;
  background: linear-gradient(90deg, #8a7a6a 0%, #b0a090 100%);
  border-radius: 0 50% 50% 0;
  transform-origin: 0% 50%;
  transform: translateX(-50%) rotate(25deg);
  filter: drop-shadow(0 4px 6px rgba(0,0,0,0.6));
  animation: tsc-scythe 8s ease-in-out infinite;
}
.scn-time-scythe .scythe-handle {
  position: absolute; top: 30%; left: 48%; width: 4%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform-origin: 50% 0;
  transform: rotate(5deg);
}
.scn-time-scythe .figure-silhouette {
  position: absolute; bottom: 35%; left: 30%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tsc-figure 10s ease-in-out infinite;
}
.scn-time-scythe .child-silhouette {
  position: absolute; bottom: 40%; left: 50%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tsc-child 10s ease-in-out infinite;
  animation-delay: 2s;
}
.scn-time-scythe .motes {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(circle at 20% 30%, rgba(200,180,160,0.08) 0%, transparent 50%);
  animation: tsc-motes 30s linear infinite;
}
@keyframes tsc-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes tsc-scythe {
  0% { transform: translateX(-50%) rotate(20deg) scaleX(1); }
  50% { transform: translateX(-50%) rotate(30deg) scaleX(1.05); }
  100% { transform: translateX(-50%) rotate(20deg) scaleX(1); }
}
@keyframes tsc-figure {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-4px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes tsc-child {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(3px) translateY(-2px) rotate(5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes tsc-motes {
  0% { background-position: 0% 0%; }
  50% { background-position: 50% 30%; }
  100% { background-position: 100% 0%; }
}

.scn-yours-not-yours {
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 50%, #1a1a2a 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.9);
}
.scn-yours-not-yours .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 50%, #2a2a3a 100%);
}
.scn-yours-not-yours .mirror-frame {
  position: absolute; top: 10%; left: 25%; width: 50%; height: 65%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
}
.scn-yours-not-yours .mirror-surface {
  position: absolute; top: 12%; left: 27%; width: 46%; height: 61%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%);
  border-radius: 2%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
  animation: yny-mirror 6s ease-in-out infinite alternate;
}
.scn-yours-not-yours .figure-front {
  position: absolute; bottom: 12%; left: 38%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: yny-front 4s ease-in-out infinite;
}
.scn-yours-not-yours .figure-reflected {
  position: absolute; bottom: 12%; left: 50%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  opacity: 0.8;
  animation: yny-reflected 4s ease-in-out infinite;
  animation-delay: 2s;
}
.scn-yours-not-yours .crack {
  position: absolute; background: rgba(200,200,200,0.2);
  filter: blur(1px);
}
.scn-yours-not-yours .crack-1 {
  top: 30%; left: 40%; width: 2%; height: 30%;
  transform: rotate(15deg);
  border-radius: 1px;
  animation: yny-crack1 10s linear infinite;
}
.scn-yours-not-yours .crack-2 {
  top: 40%; left: 45%; width: 2%; height: 20%;
  transform: rotate(-20deg);
  border-radius: 1px;
  animation: yny-crack2 10s linear infinite;
  animation-delay: 5s;
}
.scn-yours-not-yours .light-beam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(180,180,220,0.06) 0%, transparent 100%);
  transform: skewX(-10deg);
  animation: yny-beam 8s ease-in-out infinite alternate;
}
@keyframes yny-mirror {
  0% { transform: scaleY(1) rotate(0deg); }
  50% { transform: scaleY(1.02) rotate(1deg); }
  100% { transform: scaleY(1) rotate(0deg); }
}
@keyframes yny-front {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(2px) translateY(-1px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes yny-reflected {
  0% { transform: scaleX(-1) translateX(0) translateY(0); }
  50% { transform: scaleX(-1) translateX(-2px) translateY(1px); }
  100% { transform: scaleX(-1) translateX(0) translateY(0); }
}
@keyframes yny-crack1 {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.3; }
}
@keyframes yny-crack2 {
  0% { opacity: 0.2; }
  50% { opacity: 0.6; }
  100% { opacity: 0.2; }
}
@keyframes yny-beam {
  0% { opacity: 0.2; transform: skewX(-10deg) translateX(0); }
  50% { opacity: 0.4; transform: skewX(-10deg) translateX(5px); }
  100% { opacity: 0.2; transform: skewX(-10deg) translateX(0); }
}

.scn-better-vile-esteem-d { background: linear-gradient(180deg, #1a1a2e 0%, #2c2040 40%, #100818 100%), radial-gradient(ellipse at 60% 30%, #3a2a4e 0%, transparent 60%); }
.scn-better-vile-esteem-d .bg-deep { position:absolute; inset:0; background:radial-gradient(circle at 50% 80%, #3a2a3a 0%, transparent 70%); animation:bve-pulse 8s ease-in-out infinite alternate; }
.scn-better-vile-esteem-d .bg-mid { position:absolute; inset:20% 10% 10% 10%; background:linear-gradient(135deg, #2a1a2a 0%, #4a3a3a 100%); border-radius:30% 20% 40% 30%; opacity:.6; animation:bve-drift 15s linear infinite; }
.scn-better-vile-esteem-d .figure { position:absolute; bottom:20%; left:35%; width:30%; height:50%; background:linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:bve-sway 6s ease-in-out infinite; }
.scn-better-vile-esteem-d .candle { position:absolute; bottom:30%; left:55%; width:8px; height:40px; background:linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius:4px; box-shadow:0 0 10px 2px #c08040; animation:bve-flicker 3s ease-in-out infinite; }
.scn-better-vile-esteem-d .flame { position:absolute; bottom:calc(30% + 40px); left:55.5%; width:6px; height:12px; background:radial-gradient(circle, #ffd860 0%, #e08020 60%, transparent 100%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; transform:translateX(-50%); animation:bve-flame 1s ease-in-out infinite alternate; }
.scn-better-vile-esteem-d .drops { position:absolute; width:6px; height:6px; background:radial-gradient(circle, #b05430 0%, #702040 100%); border-radius:50%; box-shadow:0 0 12px 2px rgba(176,84,48,.5); }
.scn-better-vile-esteem-d .drop1 { bottom:15%; left:45%; animation:bve-drop 4s ease-in-out infinite; }
.scn-better-vile-esteem-d .drop2 { bottom:12%; left:48%; animation:bve-drop 4s ease-in-out 2s infinite; }
.scn-better-vile-esteem-d .shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, transparent 0%, #0a0a0a 100%); animation:bve-shadow 12s ease-in-out infinite alternate; }
@keyframes bve-pulse { 0% { opacity:.5; transform:scale(1); } 50% { opacity:.8; transform:scale(1.02); } 100% { opacity:.6; transform:scale(.98); } }
@keyframes bve-drift { 0% { transform:translate(0,0); } 50% { transform:translate(-5px,3px); } 100% { transform:translate(0,0); } }
@keyframes bve-sway { 0% { transform:translateX(0) rotate(-1deg); } 25% { transform:translateX(8px) rotate(2deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(-8px) rotate(-2deg); } 100% { transform:translateX(0) rotate(-1deg); } }
@keyframes bve-flicker { 0% { opacity:.9; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.05); } 100% { opacity:.85; transform:scaleY(.95); } }
@keyframes bve-flame { 0% { transform:translateX(-50%) scale(1) rotate(-3deg); } 50% { transform:translateX(-50%) scale(1.1) rotate(3deg); } 100% { transform:translateX(-50%) scale(.9) rotate(0deg); } }
@keyframes bve-drop { 0% { transform:translateY(0) scale(1); opacity:1; } 50% { transform:translateY(15px) scale(.8); opacity:.5; } 100% { transform:translateY(30px) scale(.5); opacity:0; } }
@keyframes bve-shadow { 0% { opacity:.4; } 50% { opacity:.6; } 100% { opacity:.3; } }

.scn-item-tables-gift { background:linear-gradient(180deg, #f5e6c8 0%, #e8d4a8 50%, #d4bf90 100%), radial-gradient(ellipse at 80% 20%, #f0d0a0 0%, transparent 60%); }
.scn-item-tables-gift .bg-warm { position:absolute; inset:0; background:linear-gradient(135deg, #ffe0b0 0%, #f0c880 100%); opacity:.3; animation:itg-glow 8s ease-in-out infinite alternate; }
.scn-item-tables-gift .table { position:absolute; bottom:10%; left:20%; right:20%; height:50%; background:linear-gradient(180deg, #b09060 0%, #806040 100%); border-radius:20% 20% 0 0 / 40% 40% 0 0; box-shadow:0 -8px 20px rgba(0,0,0,.2); }
.scn-item-tables-gift .gift-box { position:absolute; bottom:35%; left:40%; width:20%; height:25%; background:linear-gradient(180deg, #e0b080 0%, #c09060 100%); border-radius:6px; box-shadow:0 4px 10px rgba(0,0,0,.3); animation:itg-bob 5s ease-in-out infinite; }
.scn-item-tables-gift .ribbon { position:absolute; bottom:45%; left:45%; width:10%; height:6%; background:linear-gradient(90deg, #a08060 0%, #c0a080 50%, #a08060 100%); border-radius:2px; transform:rotate(-15deg); animation:itg-sway 4s ease-in-out infinite; }
.scn-item-tables-gift .candle-lit { position:absolute; bottom:55%; left:60%; width:6px; height:25%; background:linear-gradient(180deg, #ffe8c0 0%, #e0c080 100%); border-radius:3px; box-shadow:0 0 16px 4px #f0c060; }
.scn-item-tables-gift .glow-orb { position:absolute; bottom:calc(55% + 25%); left:calc(60% - 8px); width:20px; height:20px; background:radial-gradient(circle, #ffe080 0%, transparent 70%); border-radius:50%; transform:translateX(-50%); animation:itg-glow 3s ease-in-out infinite alternate; }
.scn-item-tables-gift .book { position:absolute; bottom:25%; left:30%; width:15%; height:20%; background:linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%); border-radius:4px 4px 8px 8px; transform:rotate(-5deg); box-shadow:2px 2px 6px rgba(0,0,0,.2); animation:itg-open 10s ease-in-out infinite; }
@keyframes itg-glow { 0% { opacity:.2; } 50% { opacity:.5; } 100% { opacity:.3; } }
@keyframes itg-bob { 0% { transform:translateY(0); } 50% { transform:translateY(-4px); } 100% { transform:translateY(0); } }
@keyframes itg-sway { 0% { transform:rotate(-15deg) translateX(0); } 25% { transform:rotate(-10deg) translateX(2px); } 50% { transform:rotate(-15deg) translateX(0); } 75% { transform:rotate(-20deg) translateX(-2px); } 100% { transform:rotate(-15deg) translateX(0); } }
@keyframes itg-open { 0% { transform:rotate(-5deg) scaleX(1); } 50% { transform:rotate(-5deg) scaleX(1.1); } 100% { transform:rotate(-5deg) scaleX(1); } }

.scn-no-time-boast { background:linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 50%, #1a1a2a 100%), radial-gradient(ellipse at 30% 70%, #3a4a5a 0%, transparent 60%); }
.scn-no-time-boast .bg-cool { position:absolute; inset:0; background:radial-gradient(circle at 80% 30%, #3a5a6a 0%, transparent 60%); animation:ntb-breath 12s ease-in-out infinite alternate; }
.scn-no-time-boast .pyramid-left { position:absolute; bottom:10%; left:20%; width:25%; height:40%; background:linear-gradient(135deg, #4a5a4a 0%, #2a3a2a 100%); clip-path:polygon(50% 0%, 0% 100%, 100% 100%); animation:ntb-pulse 8s ease-in-out infinite; }
.scn-no-time-boast .pyramid-right { position:absolute; bottom:10%; right:20%; width:25%; height:40%; background:linear-gradient(225deg, #5a6a5a 0%, #3a4a3a 100%); clip-path:polygon(50% 0%, 0% 100%, 100% 100%); animation:ntb-pulse 8s ease-in-out 4s infinite; }
.scn-no-time-boast .sun-circle { position:absolute; top:15%; left:45%; width:10%; height:20%; background:radial-gradient(circle, #c0d0e0 0%, #8090a0 70%, transparent 100%); border-radius:50%; box-shadow:0 0 40px 10px rgba(192,208,224,.3); animation:ntb-glow 6s ease-in-out infinite alternate; }
.scn-no-time-boast .rays { position:absolute; top:15%; left:45%; width:30%; height:30%; background:conic-gradient(from 0deg, transparent 0%, rgba(192,208,224,.1) 10%, transparent 20%, rgba(192,208,224,.1) 30%, transparent 40%); border-radius:50%; transform:translate(-50%, -50%); }
.scn-no-time-boast .ray1 { animation:ntb-rotate 20s linear infinite; }
.scn-no-time-boast .ray2 { animation:ntb-rotate 20s linear infinite reverse; opacity:.5; }
.scn-no-time-boast .hourglass { position:absolute; bottom:20%; left:60%; width:8%; height:20%; background:linear-gradient(180deg, #c0b0a0 0%, #a09080 50%, #c0b0a0 100%); border-radius:20% 20% 20% 20% / 30% 30% 30% 30%; box-shadow:0 0 10px rgba(0,0,0,.4); animation:ntb-sand 10s ease-in-out infinite; }
@keyframes ntb-breath { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes ntb-pulse { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.03); } 100% { transform:scaleY(1); } }
@keyframes ntb-glow { 0% { opacity:.5; transform:scale(1); } 50% { opacity:.8; transform:scale(1.05); } 100% { opacity:.6; transform:scale(.98); } }
@keyframes ntb-rotate { 0% { transform:translate(-50%, -50%) rotate(0deg); } 100% { transform:translate(-50%, -50%) rotate(360deg); } }
@keyframes ntb-sand { 0% { transform:scaleY(1) translateY(0); } 50% { transform:scaleY(1.05) translateY(-2px); } 100% { transform:scaleY(1) translateY(0); } }

.scn-dear-love-child-state { background:linear-gradient(180deg, #1a1a2e 0%, #2a2a42 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 20%, #3a3a5a 0%, transparent 70%); }
.scn-dear-love-child-state .bg-soft { position:absolute; inset:0; background:radial-gradient(circle at 40% 60%, #3a3a4e 0%, transparent 60%); animation:dlc-drift 15s linear infinite; }
.scn-dear-love-child-state .child-silhouette { position:absolute; bottom:15%; left:35%; width:20%; height:45%; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:dlc-sway 7s ease-in-out infinite; }
.scn-dear-love-child-state .flower { position:absolute; bottom:25%; right:25%; width:12%; height:18%; background:radial-gradient(circle, #b0a0d0 0%, #8070a0 70%); border-radius:50%; box-shadow:0 0 10px 2px rgba(128,112,160,.5); animation:dlc-bloom 10s ease-in-out infinite; }
.scn-dear-love-child-state .leaf { position:absolute; bottom:20%; right:30%; width:8%; height:15%; background:linear-gradient(135deg, #5a6a4a 0%, #3a4a2a 100%); border-radius:70% 0% 70% 0%; transform:rotate(20deg); animation:dlc-sway-leaves 6s ease-in-out infinite; }
.scn-dear-love-child-state .dew-drop { position:absolute; bottom:25%; right:27%; width:4px; height:4px; background:radial-gradient(circle, #c0d0e0 0%, #8090a0 100%); border-radius:50%; box-shadow:0 0 6px 1px rgba(192,208,224,.6); animation:dlc-fall 5s ease-in-out infinite; }
.scn-dear-love-child-state .starlight { position:absolute; top:10%; left:20%; width:6px; height:6px; background:#e0e0f0; border-radius:50%; box-shadow:0 0 20px 4px rgba(224,224,240,.8); animation:dlc-twinkle 4s ease-in-out infinite alternate; }
.scn-dear-love-child-state .petal { position:absolute; bottom:30%; right:22%; width:6%; height:8%; background:radial-gradient(circle, #d0b0d0 0%, #a080a0 100%); border-radius:60% 40% 60% 40%; transform:rotate(-30deg); animation:dlc-drift-petal 12s linear infinite; }
@keyframes dlc-drift { 0% { transform:translate(0,0); } 50% { transform:translate(3px,-2px); } 100% { transform:translate(0,0); } }
@keyframes dlc-sway { 0% { transform:translateX(0) rotate(-1deg); } 25% { transform:translateX(5px) rotate(2deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(-5px) rotate(-2deg); } 100% { transform:translateX(0) rotate(-1deg); } }
@keyframes dlc-bloom { 0% { transform:scale(1) rotate(0deg); } 50% { transform:scale(1.1) rotate(10deg); } 100% { transform:scale(1) rotate(0deg); } }
@keyframes dlc-sway-leaves { 0% { transform:rotate(20deg) translateX(0); } 50% { transform:rotate(25deg) translateX(2px); } 100% { transform:rotate(20deg) translateX(0); } }
@keyframes dlc-fall { 0% { transform:translateY(0) scale(1); opacity:1; } 50% { transform:translateY(10px) scale(.8); opacity:.6; } 100% { transform:translateY(20px) scale(.5); opacity:0; } }
@keyframes dlc-twinkle { 0% { opacity:.4; transform:scale(1); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:.6; transform:scale(.9); } }
@keyframes dlc-drift-petal { 0% { transform:translate(0,0) rotate(-30deg); } 100% { transform:translate(-20px,30px) rotate(30deg); } }

.scn-in-faith-not-love-eyes {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #3a2a4a 40%, #5a3a2a 100%),
    radial-gradient(ellipse at 50% 80%, #2a1a2a 0%, transparent 60%);
}
.scn-in-faith-not-love-eyes .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
  animation: fn-wall 20s ease-in-out infinite alternate;
}
.scn-in-faith-not-love-eyes .table {
  position: absolute; bottom: 22%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: fn-table 12s ease-in-out infinite;
}
.scn-in-faith-not-love-eyes .candle {
  position: absolute; bottom: 32%; left: 38%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #a08060 0%, #c8b090 30%, #806050 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px 4px rgba(200,150,100,.3);
  animation: fn-candle 8s ease-in-out infinite;
}
.scn-in-faith-not-love-eyes .flame {
  position: absolute; bottom: 68%; left: 39%; width: 10px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #ffe0a0 0%, #ff8040 50%, transparent 100%);
  border-radius: 40%;
  animation: fn-flame 3s ease-in-out infinite;
}
.scn-in-faith-not-love-eyes .figure {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 80%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: fn-figure 10s ease-in-out infinite;
}
.scn-in-faith-not-love-eyes .hand {
  position: absolute; bottom: 50%; left: 45%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 50% 50%;
  transform-origin: bottom center;
  animation: fn-hand 6s ease-in-out infinite;
}
.scn-in-faith-not-love-eyes .book {
  position: absolute; bottom: 22%; left: 28%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.4);
  animation: fn-book 14s ease-in-out infinite;
}
@keyframes fn-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes fn-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes fn-candle { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes fn-flame { 0% { transform: scaleY(1) translateY(0) } 33% { transform: scaleY(1.2) translateY(-3px) } 66% { transform: scaleY(.9) translateY(2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes fn-figure { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-4px) rotate(-1deg) } }
@keyframes fn-hand { 0%,100% { transform: translate(0,0) rotate(15deg) } 50% { transform: translate(-2px,-2px) rotate(-10deg) } }
@keyframes fn-book { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) translateX(2px) } }

.scn-love-is-my-sin {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #3a2a3a 50%, #5a3a2a 100%),
    radial-gradient(ellipse at 60% 70%, #3a1a2a 0%, transparent 60%);
}
.scn-love-is-my-sin .wall {
  position: absolute; inset: 0 0 30% 10%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
  animation: ls-wall 20s ease-in-out infinite alternate;
}
.scn-love-is-my-sin .window {
  position: absolute; top: 10%; right: 15%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #3a3a5e 0%, #2a2a4e 100%);
  border: 4px solid #4a3a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6), 0 0 10px rgba(100,80,60,.3);
  animation: ls-window 30s ease-in-out infinite;
}
.scn-love-is-my-sin .desk {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: ls-desk 15s ease-in-out infinite;
}
.scn-love-is-my-sin .seal {
  position: absolute; bottom: 32%; left: 40%; width: 16px; height: 14px;
  background: radial-gradient(circle, #b87878 0%, #5e1a1d 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 2px rgba(120,40,40,.5);
  animation: ls-seal 4s ease-in-out infinite;
}
.scn-love-is-my-sin .letter {
  position: absolute; bottom: 26%; left: 35%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: ls-letter 20s ease-in-out infinite;
}
.scn-love-is-my-sin .hand {
  position: absolute; bottom: 34%; left: 55%; width: 18px; height: 26px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 50% 50%;
  transform-origin: bottom center;
  animation: ls-hand 6s ease-in-out infinite;
}
.scn-love-is-my-sin .shadow {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: ls-shadow 12s ease-in-out infinite;
}
@keyframes ls-wall { 0% { opacity: .6 } 50% { opacity: .85 } 100% { opacity: .6 } }
@keyframes ls-window { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes ls-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ls-seal { 0% { transform: rotate(0) } 50% { transform: rotate(15deg) scale(1.1) } 100% { transform: rotate(0) } }
@keyframes ls-letter { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-3px) } }
@keyframes ls-hand { 0%,100% { transform: translate(0,0) rotate(-20deg) } 50% { transform: translate(4px,-2px) rotate(10deg) } }
@keyframes ls-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } }

.scn-housewife-runs-catch {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #c8e6c9 60%, #a5d6a7 100%),
    radial-gradient(ellipse at 50% 100%, #fff8e1 0%, transparent 60%);
}
.scn-housewife-runs-catch .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #64b5f6 0%, #bbdefb 40%, #e3f2fd 100%);
  animation: hr-sky 30s ease-in-out infinite;
}
.scn-housewife-runs-catch .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #81c784 0%, #66bb6a 100%);
  border-radius: 20% 0 0 0;
  box-shadow: inset 0 10px 20px rgba(0,50,0,.2);
  animation: hr-ground 20s ease-in-out infinite;
}
.scn-housewife-runs-catch .fence {
  position: absolute; bottom: 35%; left: 20%; right: 20%; height: 30px;
  background: repeating-linear-gradient(90deg, #8d6e63 0px, #8d6e63 8px, transparent 8px, transparent 20px);
  border-radius: 2px;
  animation: hr-fence 15s linear infinite;
}
.scn-housewife-runs-catch .hen {
  position: absolute; bottom: 28%; right: 25%; width: 30px; height: 24px;
  background: radial-gradient(ellipse at 50% 60%, #e0e0e0 0%, #bdbdbd 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hr-hen 6s ease-in-out infinite;
}
.scn-housewife-runs-catch .woman {
  position: absolute; bottom: 22%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #ffe0b2 0%, #ffcc80 50%, #d7ccc8 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hr-woman 4s ease-in-out infinite;
}
.scn-housewife-runs-catch .baby {
  position: absolute; bottom: 18%; left: 40%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffcdd2 0%, #ef9a9a 100%);
  border-radius: 50%;
  animation: hr-baby 8s ease-in-out infinite;
}
.scn-housewife-runs-catch .sunbeam {
  position: absolute; top: 0; left: 30%; width: 10px; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,224,.3) 0%, transparent 80%);
  filter: blur(6px);
  animation: hr-sunbeam 12s ease-in-out infinite;
}
@keyframes hr-sky { 0%,100% { opacity: .8 } 50% { opacity: 1 } }
@keyframes hr-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(2px) } }
@keyframes hr-fence { 0% { transform: translateX(0) } 100% { transform: translateX(-20px) } }
@keyframes hr-hen { 0% { transform: translate(0,0) } 25% { transform: translate(8px,-5px) } 50% { transform: translate(16px,2px) rotate(10deg) } 75% { transform: translate(24px,-3px) } 100% { transform: translate(32px,0) } }
@keyframes hr-woman { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(10px) rotate(5deg) } 50% { transform: translateX(20px) rotate(-3deg) } 75% { transform: translateX(30px) rotate(2deg) } 100% { transform: translateX(40px) rotate(0) } }
@keyframes hr-baby { 0%,100% { transform: translate(0,0) } 50% { transform: translate(5px,-3px) } }
@keyframes hr-sunbeam { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.5) translateX(-10px) } }

.scn-two-loves-comfort {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2a1a3e 40%, #3a1a2a 100%),
    radial-gradient(ellipse at 50% 50%, #4a3a5e 0%, transparent 60%);
}
.scn-two-loves-comfort .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  box-shadow: 0 -10px 30px rgba(0,0,0,.4);
  animation: tl-floor 30s ease-in-out infinite;
}
.scn-two-loves-comfort .mirror {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%);
  border: 4px solid #6a5a4a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5), 0 0 20px rgba(100,80,120,.3);
  animation: tl-mirror 25s ease-in-out infinite;
}
.scn-two-loves-comfort .angel {
  position: absolute; bottom: 18%; left: 35%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #e0e0e0 0%, #bdbdbd 60%, #9e9e9e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 0 40px 10px rgba(255,255,200,.5);
  animation: tl-angel 8s ease-in-out infinite;
}
.scn-two-loves-comfort .spirit {
  position: absolute; bottom: 18%; right: 35%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #3a1a2a 0%, #1a0a1a 60%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 0 20px 5px rgba(50,0,30,.3);
  animation: tl-spirit 10s ease-in-out infinite;
}
.scn-two-loves-comfort .halo {
  position: absolute; top: 10%; left: 35%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(255,255,200,.8) 0%, transparent 70%);
  filter: blur(4px);
  animation: tl-halo 6s ease-in-out infinite;
}
.scn-two-loves-comfort .shadow {
  position: absolute; bottom: 10%; left: 50%; width: 120px; height: 60px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.4) 0%, transparent 60%);
  filter: blur(10px);
  animation: tl-shadow 15s ease-in-out infinite;
}
.scn-two-loves-comfort .sparkle {
  position: absolute; top: 20%; left: 20%; width: 6px; height: 6px;
  background: radial-gradient(circle, #fff 0%, #ffe0a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,255,200,.6);
  animation: tl-sparkle 4s ease-in-out infinite;
}
@keyframes tl-floor { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes tl-mirror { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.01) } }
@keyframes tl-angel { 0% { transform: translateY(0) } 50% { transform: translateY(-8px) } 100% { transform: translateY(0) } }
@keyframes tl-spirit { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(4px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tl-halo { 0% { opacity: .4 } 50% { opacity: .8 } 100% { opacity: .4 } }
@keyframes tl-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } }
@keyframes tl-sparkle { 0% { transform: scale(.5) rotate(0) } 50% { transform: scale(1.5) rotate(180deg) } 100% { transform: scale(.5) rotate(360deg) } }

.scn-beshrew-heart {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 40%, #1a121a 100%),
              radial-gradient(ellipse at 50% 60%, #2a1a2e 0%, transparent 70%);
}
.scn-beshrew-heart .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); opacity: 0.8; animation: bh-bg 15s ease-in-out infinite alternate;
}
.scn-beshrew-heart .heart {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 100px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #5e1a1d 0%, #3a0a0d 70%) border-box; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: inset 0 -20px 40px rgba(0,0,0,.6); animation: bh-heart 6s ease-in-out infinite;
}
.scn-beshrew-heart .crack {
  position: absolute; bottom: 35%; left: calc(50% - 8px); width: 16px; height: 50px; background: linear-gradient(180deg, #3a1a1a 0%, #1a0a0a 100%); border-radius: 2px; transform: rotate(-15deg); box-shadow: 0 0 4px rgba(0,0,0,.5); animation: bh-crack 8s ease-in-out infinite alternate;
}
.scn-beshrew-heart .glow {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 60px; transform: translate(-50%, -10%); background: radial-gradient(circle, rgba(200,80,60,.3) 0%, transparent 70%); border-radius: 50%; filter: blur(12px); animation: bh-glow 4s ease-in-out infinite alternate;
}
.scn-beshrew-heart .figure {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 50px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a1a 100%); border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%; transform-origin: bottom center; animation: bh-figure 5s ease-in-out infinite;
}
.scn-beshrew-heart .shadow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, transparent 30%, rgba(0,0,0,.4) 80%); animation: bh-shadow 10s ease-in-out infinite alternate;
}
@keyframes bh-bg { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .75; } }
@keyframes bh-heart { 0% { transform: translateX(-50%) scale(1); } 30% { transform: translateX(-50%) scale(1.03); } 60% { transform: translateX(-50%) scale(0.97); } 100% { transform: translateX(-50%) scale(1.01); } }
@keyframes bh-crack { 0% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-12deg) scaleY(1.1); } 100% { transform: rotate(-18deg) scaleY(0.9); } }
@keyframes bh-glow { 0% { opacity: .4; filter: blur(12px); } 50% { opacity: .7; filter: blur(16px); } 100% { opacity: .5; filter: blur(10px); } }
@keyframes bh-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(4px) translateY(-2px) 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(0deg); } }
@keyframes bh-shadow { 0% { opacity: .3; } 50% { opacity: .5; } 100% { opacity: .4; } }

.scn-confess-he-is-yours {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 50%, #1a0e1a 100%),
              radial-gradient(ellipse at 50% 70%, #0e0e1a 0%, transparent 80%);
}
.scn-confess-he-is-yours .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0e0e1a 0%, #1a0e1a 100%); animation: ch-bg 12s ease-in-out infinite alternate;
}
.scn-confess-he-is-yours .figure-kneeling {
  position: absolute; bottom: 20%; left: 40%; width: 30px; height: 60px; background: linear-gradient(180deg, #2a1e2a 0%, #0e0a0e 100%); border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%; transform: rotate(5deg) scaleX(0.9); transform-origin: bottom center; animation: ch-kneel 8s ease-in-out infinite;
}
.scn-confess-he-is-yours .scroll {
  position: absolute; bottom: 18%; left: 48%; width: 40px; height: 16px; background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.5); transform: rotate(-10deg); animation: ch-scroll 6s ease-in-out infinite alternate;
}
.scn-confess-he-is-yours .candle {
  position: absolute; bottom: 16%; left: 56%; width: 8px; height: 30px; background: linear-gradient(180deg, #e0c0a0 0%, #c09070 100%); border-radius: 2px; box-shadow: 0 0 8px rgba(0,0,0,.4); animation: ch-candle 10s ease-in-out infinite alternate;
}
.scn-confess-he-is-yours .flame {
  position: absolute; bottom: 30%; left: 56.5%; width: 6px; height: 12px; background: radial-gradient(ellipse at 50% 0%, #ffd080 0%, #ff8833 60%, transparent); border-radius: 50%; filter: blur(2px); animation: ch-flame 2s ease-in-out infinite alternate;
}
.scn-confess-he-is-yours .shadow-overlay {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,.5) 90%); animation: ch-shadow 10s ease-in-out infinite alternate;
}
@keyframes ch-bg { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes ch-kneel { 0% { transform: rotate(5deg) scaleX(0.9) translateY(0); } 30% { transform: rotate(4deg) scaleX(0.92) translateY(-2px); } 60% { transform: rotate(6deg) scaleX(0.88) translateY(1px); } 100% { transform: rotate(5deg) scaleX(0.9) translateY(0); } }
@keyframes ch-scroll { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(3px); } 100% { transform: rotate(-12deg) translateX(-2px); } }
@keyframes ch-candle { 0% { transform: scaleY(1); opacity: .9; } 50% { transform: scaleY(1.05); opacity: 1; } 100% { transform: scaleY(0.95); opacity: .95; } }
@keyframes ch-flame { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.1); } 100% { transform: translateY(0) scale(0.95); } }
@keyframes ch-shadow { 0% { opacity: .4; } 50% { opacity: .6; } 100% { opacity: .5; } }

.scn-whoever-has-wish {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a1208 100%),
              radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-whoever-has-wish .bg-warm {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); opacity: 0.8; animation: wh-bg 18s ease-in-out infinite alternate;
}
.scn-whoever-has-wish .desk {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 15%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: wh-desk 12s ease-in-out infinite alternate;
}
.scn-whoever-has-wish .figure-seated {
  position: absolute; bottom: 22%; left: 30%; width: 40px; height: 70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 40% 40% 40% 40% / 50% 50% 40% 40%; transform: rotate(-3deg); transform-origin: bottom center; animation: wh-figure 7s ease-in-out infinite;
}
.scn-whoever-has-wish .candle-light {
  position: absolute; bottom: 26%; left: 52%; width: 8px; height: 28px; background: linear-gradient(180deg, #e0b080 0%, #c09060 100%); border-radius: 2px; box-shadow: 0 0 6px rgba(0,0,0,.4); animation: wh-candle 9s ease-in-out infinite alternate;
}
.scn-whoever-has-wish .flame-glow {
  position: absolute; bottom: 39%; left: 52.5%; width: 10px; height: 16px; background: radial-gradient(ellipse at 50% 0%, #ffd090 0%, #ff8833 50%, transparent); border-radius: 50%; filter: blur(3px); animation: wh-flame 2.5s ease-in-out infinite alternate;
}
.scn-whoever-has-wish .document {
  position: absolute; bottom: 22%; left: 42%; width: 50px; height: 30px; background: linear-gradient(180deg, #d0b080 0%, #a08050 100%); border-radius: 2px; transform: rotate(5deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: wh-document 6s ease-in-out infinite alternate;
}
.scn-whoever-has-wish .shadow-inner {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 30%, transparent 30%, rgba(0,0,0,.6) 90%); animation: wh-shadow 12s ease-in-out infinite alternate;
}
@keyframes wh-bg { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes wh-desk { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1.02); } }
@keyframes wh-figure { 0% { transform: rotate(-3deg) translateY(0); } 30% { transform: rotate(-2deg) translateY(-2px); } 60% { transform: rotate(-4deg) translateY(1px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes wh-candle { 0% { transform: scaleY(1); opacity: .9; } 50% { transform: scaleY(1.03); opacity: 1; } 100% { transform: scaleY(0.97); opacity: .95; } }
@keyframes wh-flame { 0% { transform: translateY(0) scale(1); opacity: .8; } 50% { transform: translateY(-4px) scale(1.15); opacity: 1; } 100% { transform: translateY(0) scale(0.9); opacity: .85; } }
@keyframes wh-document { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(3deg) translateX(2px); } 100% { transform: rotate(7deg) translateX(-1px); } }
@keyframes wh-shadow { 0% { opacity: .4; } 50% { opacity: .6; } 100% { opacity: .5; } }

.scn-soul-cheque-come-near {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a1208 100%),
              radial-gradient(ellipse at 40% 60%, #4a3a2a 0%, transparent 80%);
}
.scn-soul-cheque-come-near .bg-dim-warm {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); animation: sc-bg 14s ease-in-out infinite alternate;
}
.scn-soul-cheque-come-near .doorway {
  position: absolute; bottom: 25%; left: 25%; width: 40%; height: 50%; background: linear-gradient(180deg, #2a1a0a 0%, #1a1208 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); animation: sc-doorway 10s ease-in-out infinite alternate;
}
.scn-soul-cheque-come-near .doorlight {
  position: absolute; bottom: 25%; left: 25%; width: 40%; height: 50%; background: radial-gradient(ellipse at 50% 100%, rgba(255,180,100,.3) 0%, transparent 70%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; filter: blur(8px); animation: sc-doorlight 4s ease-in-out infinite alternate;
}
.scn-soul-cheque-come-near .figure-approaching {
  position: absolute; bottom: 22%; left: 55%; width: 25px; height: 55px; background: linear-gradient(180deg, #2a1a0a 0%, #0e0804 100%); border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%; transform: rotate(-2deg) scaleX(0.95); transform-origin: bottom center; animation: sc-figure 6s ease-in-out infinite;
}
.scn-soul-cheque-come-near .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: sc-floor 12s ease-in-out infinite alternate;
}
.scn-soul-cheque-come-near .shadow-cast {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 60% 70%, transparent 30%, rgba(0,0,0,.5) 90%); animation: sc-shadow 10s ease-in-out infinite alternate;
}
@keyframes sc-bg { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes sc-doorway { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1.03); } }
@keyframes sc-doorlight { 0% { opacity: .5; filter: blur(8px); } 50% { opacity: .8; filter: blur(12px); } 100% { opacity: .65; filter: blur(7px); } }
@keyframes sc-figure { 0% { transform: rotate(-2deg) scaleX(0.95) translateX(0); } 25% { transform: rotate(1deg) scaleX(0.97) translateX(4px); } 50% { transform: rotate(-1deg) scaleX(0.93) translateX(8px); } 75% { transform: rotate(2deg) scaleX(0.96) translateX(12px); } 100% { transform: rotate(-2deg) scaleX(0.95) translateX(16px); } }
@keyframes sc-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1.02); } }
@keyframes sc-shadow { 0% { opacity: .4; } 50% { opacity: .6; } 100% { opacity: .5; } }

/* desire-increase */
.scn-desire-increase {
  background: 
    linear-gradient(180deg, #fff6e8 0%, #f7e2c8 50%, #e6c9a8 100%),
    radial-gradient(ellipse at 70% 20%, #fff9e6 0%, transparent 60%);
}
.scn-desire-increase .sunlight {
  position: absolute; inset: 5% 10% 30% 20%;
  background: linear-gradient(135deg, rgba(255,245,200,0.6) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%);
  filter: blur(8px);
  animation: di-sun 8s ease-in-out infinite alternate;
}
.scn-desire-increase .window-frame {
  position: absolute; inset: 10% 60% 40% 5%;
  border: 6px solid #8b7355;
  border-radius: 4px;
  background: transparent;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.1);
}
.scn-desire-increase .window-pane {
  position: absolute; inset: 12% 62% 42% 7%;
  background: linear-gradient(180deg, #fffdf0 0%, #fdedd0 100%);
  opacity: 0.3;
  animation: di-pane 6s ease-in-out infinite alternate;
}
.scn-desire-increase .vase {
  position: absolute; bottom: 30%; left: 25%;
  width: 18px; height: 40px;
  background: linear-gradient(180deg, #b08a5a 0%, #8a6a3a 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: 2px 4px 6px rgba(0,0,0,0.15);
  animation: di-vase 5s ease-in-out infinite;
}
.scn-desire-increase .rose-stem {
  position: absolute; bottom: 48%; left: 26.5%;
  width: 4px; height: 60px;
  background: linear-gradient(180deg, #3a6a3a 0%, #2a4a2a 100%);
  transform-origin: bottom center;
  border-radius: 2px;
  animation: di-stem 10s ease-in-out infinite;
}
.scn-desire-increase .rose-bloom {
  position: absolute; bottom: 68%; left: 24.5%;
  width: 28px; height: 28px;
  background: radial-gradient(circle at 40% 40%, #e88a7a 0%, #c05a4a 50%, #8a2a1a 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 30px 10px rgba(192,90,74,0.4);
  animation: di-rose 4s ease-in-out infinite alternate;
}
.scn-desire-increase .figure-silhouette {
  position: absolute; bottom: 20%; left: 55%;
  width: 24px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  box-shadow: -10px 0 20px rgba(0,0,0,0.2);
  animation: di-figure 7s ease-in-out infinite;
}
@keyframes di-sun { 0% { opacity:0.4; transform:scale(1) } 50% { opacity:0.7; transform:scale(1.05) } 100% { opacity:0.5; transform:scale(0.95) } }
@keyframes di-pane { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.25; } }
@keyframes di-vase { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) rotate(1deg) } 100% { transform:translateY(0) } }
@keyframes di-stem { 0% { transform:rotate(-3deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-1deg) } }
@keyframes di-rose { 0% { transform:scale(0.9); opacity:0.7 } 50% { transform:scale(1.05); opacity:1 } 100% { transform:scale(0.95); opacity:0.85 } }
@keyframes di-figure { 0% { transform:translateX(0) } 50% { transform:translateX(5px) } 100% { transform:translateX(-2px) } }

/* forty-winters */
.scn-forty-winters {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2c2a40 30%, #1e1c30 70%, #0a0a14 100%),
    radial-gradient(ellipse at 50% 60%, #2a2840 0%, transparent 70%);
}
.scn-forty-winters .dim-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(80,70,100,0.1) 0%, transparent 100%);
  filter: blur(10px);
  animation: fw-wall 12s ease-in-out infinite alternate;
}
.scn-forty-winters .mirror-oval {
  position: absolute; top: 20%; left: 35%;
  width: 120px; height: 160px;
  background: linear-gradient(180deg, #4a3a5a 0%, #3a2a4a 100%);
  border: 3px solid #8a7a6a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6), 0 10px 30px rgba(0,0,0,0.5);
  overflow: hidden;
}
.scn-forty-winters .candle-stand {
  position: absolute; bottom: 25%; left: 20%;
  width: 6px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(3deg);
}
.scn-forty-winters .candle-flame {
  position: absolute; bottom: 62%; left: 19.8%;
  width: 8px; height: 14px;
  background: radial-gradient(circle at 50% 20%, #ffd080 0%, #e08030 40%, #803020 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(200,80,40,0.6);
  animation: fw-flame 2s ease-in-out infinite alternate;
}
.scn-forty-winters .figure-profile {
  position: absolute; bottom: 15%; right: 25%;
  width: 30px; height: 100px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 40% 20% 10%;
  transform: rotate(5deg);
  box-shadow: -5px 0 15px rgba(0,0,0,0.5);
  animation: fw-figure 8s ease-in-out infinite;
}
.scn-forty-winters .shadow-pool {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(15px);
}
@keyframes fw-wall { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.2 } }
@keyframes fw-flame { 0% { transform:scale(1) rotate(-5deg); opacity:0.8 } 50% { transform:scale(1.2) rotate(3deg); opacity:1 } 100% { transform:scale(0.95) rotate(-2deg); opacity:0.9 } }
@keyframes fw-figure { 0% { transform:translateY(0) rotate(4deg) } 50% { transform:translateY(-3px) rotate(6deg) } 100% { transform:translateY(1px) rotate(3deg) } }

/* item-glass */
.scn-item-glass {
  background: 
    linear-gradient(180deg, #fff8e8 0%, #fde8c8 30%, #e6cca8 70%, #d4b890 100%),
    radial-gradient(ellipse at 40% 30%, #fffdf0 0%, transparent 60%);
}
.scn-item-glass .bright-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,255,240,0.15) 0%, transparent 100%);
  filter: blur(20px);
}
.scn-item-glass .mirror-ornate {
  position: absolute; top: 25%; left: 40%;
  width: 150px; height: 200px;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border: 6px solid #b09070;
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: inset 0 0 60px rgba(180,140,100,0.5), 0 15px 40px rgba(0,0,0,0.2);
  overflow: hidden;
}
.scn-item-glass .mirror-glow {
  position: absolute; top: 28%; left: 43%;
  width: 130px; height: 170px;
  background: radial-gradient(circle at 50% 40%, rgba(255,240,200,0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: ig-glow 6s ease-in-out infinite alternate;
}
.scn-item-glass .hand-comb {
  position: absolute; top: 60%; left: 55%;
  width: 20px; height: 30px;
  background: linear-gradient(180deg, #e0c8a8 0%, #c0a888 100%);
  border-radius: 40% 40% 10% 10%;
  transform: rotate(-20deg);
  box-shadow: 2px 4px 6px rgba(0,0,0,0.1);
  animation: ig-hand 4s ease-in-out infinite;
}
.scn-item-glass .figure-arm {
  position: absolute; top: 55%; left: 45%;
  width: 16px; height: 90px;
  background: linear-gradient(180deg, #c8a888 0%, #a88868 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(15deg);
  transform-origin: top left;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  animation: ig-arm 5s ease-in-out infinite;
}
.scn-item-glass .stool {
  position: absolute; bottom: 15%; left: 42%;
  width: 60px; height: 20px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 5px 10px rgba(0,0,0,0.2);
}
@keyframes ig-glow { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.3 } }
@keyframes ig-hand { 0% { transform:rotate(-18deg) translateY(0) } 50% { transform:rotate(-22deg) translateY(-3px) } 100% { transform:rotate(-15deg) translateY(2px) } }
@keyframes ig-arm { 0% { transform:rotate(13deg) } 50% { transform:rotate(17deg) } 100% { transform:rotate(14deg) } }

/* glass-advice */
.scn-glass-advice {
  background: 
    linear-gradient(180deg, #fff4e0 0%, #f5e0c0 30%, #e8c8a0 70%, #d4aa80 100%),
    radial-gradient(ellipse at 80% 40%, #fff8e0 0%, transparent 50%);
}
.scn-glass-advice .gilded-frame {
  position: absolute; top: 10%; left: 20%;
  width: 200px; height: 280px;
  background: linear-gradient(135deg, #c8a070 0%, #a08050 50%, #b89060 100%);
  border-radius: 8% 8% 6% 6%;
  box-shadow: inset 0 0 40px rgba(180,140,80,0.3), 0 20px 50px rgba(0,0,0,0.2);
}
.scn-glass-advice .mirror-surface {
  position: absolute; top: 13%; left: 23%;
  width: 180px; height: 250px;
  background: radial-gradient(circle at 40% 30%, #fff8e0 0%, #f0d8b8 50%, #d8b890 100%);
  border-radius: 6% 6% 4% 4%;
  filter: blur(2px);
  animation: ga-surface 10s ease-in-out infinite alternate;
}
.scn-glass-advice .figure-adult {
  position: absolute; bottom: 20%; left: 35%;
  width: 36px; height: 120px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 45% 30% 25%;
  transform-origin: bottom center;
  box-shadow: -5px 0 15px rgba(0,0,0,0.3);
  animation: ga-adult 6s ease-in-out infinite;
}
.scn-glass-advice .figure-child {
  position: absolute; bottom: 25%; left: 50%;
  width: 24px; height: 70px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom center;
  box-shadow: -3px 0 10px rgba(0,0,0,0.2);
  animation: ga-child 8s ease-in-out infinite;
}
.scn-glass-advice .sunbeam {
  position: absolute; top: 0; left: 55%;
  width: 80px; height: 200px;
  background: linear-gradient(180deg, rgba(255,245,200,0.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  filter: blur(15px);
  animation: ga-beam 7s ease-in-out infinite alternate;
}
.scn-glass-advice .floor-glow {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 15%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,220,160,0.4) 0%, transparent 70%);
  filter: blur(20px);
}
@keyframes ga-surface { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ga-adult { 0% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(-4px) rotate(1deg) } 100% { transform:translateX(2px) rotate(-1deg) } }
@keyframes ga-child { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(3px) rotate(2deg) } 100% { transform:translateX(-1px) rotate(0deg) } }
@keyframes ga-beam { 0% { opacity:0.2; transform:scaleY(0.8) } 50% { opacity:0.5; transform:scaleY(1.1) } 100% { opacity:0.3; transform:scaleY(0.9) } }

.scn-say-forsake {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2035 50%, #1f1728 100%),
    radial-gradient(ellipse at 30% 50%, #2a2035 0%, transparent 60%);
}
.scn-say-forsake .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2f44 0%, #1a1322 100%); }
.scn-say-forsake .window {
  position:absolute; top:12%; left:60%; width:70px; height:90px;
  border-radius:4px 4px 10px 10px;
  background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%);
  box-shadow: inset 0 0 20px #1a1a3e;
  animation: sf-window 10s ease-in-out infinite alternate;
}
.scn-say-forsake .window-glow {
  position:absolute; top:14%; left:63%; width:50px; height:60px;
  background: radial-gradient(circle at 50% 30%, rgba(200,180,240,0.25) 0%, transparent 70%);
  border-radius:50%;
  filter: blur(8px);
  animation: sf-glow 6s ease-in-out infinite alternate;
}
.scn-say-forsake .figure-s {
  position:absolute; bottom:15%; left:35%; width:40px; height:80px;
  background: linear-gradient(90deg, #2a1f30 0%, #1e1425 50%, #2a1f30 100%);
  border-radius: 60% 40% 30% 70% / 50% 50% 50% 50%;
  transform-origin: bottom center;
  animation: sf-figure 4s ease-in-out infinite;
}
.scn-say-forsake .shadow-floor {
  position:absolute; bottom:5%; left:20%; right:10%; height:10%;
  background: radial-gradient(ellipse at 50% 0%, #0a0a15 0%, transparent 70%);
  animation: sf-shadow 8s ease-in-out infinite alternate;
}
.scn-say-forsake .candle {
  position:absolute; bottom:18%; left:55%; width:6px; height:18px;
  background: linear-gradient(180deg, #d4a050 0%, #a06030 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 12px 4px #e08030, 0 0 24px 8px rgba(200,100,40,0.3);
  animation: sf-candle 3s ease-in-out infinite alternate;
}
@keyframes sf-window {
  0% { opacity:0.7; box-shadow: inset 0 0 20px #1a1a3e; }
  50% { opacity:1; box-shadow: inset 0 0 30px #2a2a5a; }
  100% { opacity:0.8; box-shadow: inset 0 0 15px #1a1a3e; }
}
@keyframes sf-glow {
  0% { opacity:0.3; transform: scale(0.95); }
  50% { opacity:0.6; transform: scale(1.05); }
  100% { opacity:0.4; transform: scale(1); }
}
@keyframes sf-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-3px) translateY(-2px) rotate(-2deg); }
  50% { transform: translateX(-1px) translateY(-1px) rotate(1deg); }
  75% { transform: translateX(2px) translateY(-3px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes sf-shadow {
  0% { opacity:0.3; transform: scaleY(1); }
  50% { opacity:0.6; transform: scaleY(0.8); }
  100% { opacity:0.4; transform: scaleY(1.1); }
}
@keyframes sf-candle {
  0% { transform: scaleY(1); opacity:0.8; box-shadow: 0 0 12px 4px #e08030; }
  50% { transform: scaleY(1.1); opacity:1; box-shadow: 0 0 20px 6px #f0a040; }
  100% { transform: scaleY(0.95); opacity:0.7; box-shadow: 0 0 10px 3px #c07020; }
}

.scn-hate-me-now {
  background: 
    linear-gradient(180deg, #2b2b3d 0%, #3c3c52 40%, #4a4a60 100%),
    radial-gradient(ellipse at 50% 10%, #5a5a72 0%, transparent 80%);
}
.scn-hate-me-now .sky-overcast {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #4a4a60 0%, #6b6b80 50%, #8a8a9e 100%);
  animation: hm-sky 15s ease-in-out infinite alternate;
}
.scn-hate-me-now .cloud-dark {
  position:absolute; top:10%; left:10%; width:200px; height:40px;
  background: linear-gradient(90deg, rgba(50,50,60,0.6) 0%, rgba(70,70,80,0.4) 100%);
  border-radius:50%;
  filter: blur(10px);
  animation: hm-cloud-dark 30s linear infinite;
}
.scn-hate-me-now .cloud-light {
  position:absolute; top:20%; right:5%; width:160px; height:30px;
  background: linear-gradient(90deg, rgba(100,100,120,0.3) 0%, rgba(120,120,140,0.2) 100%);
  border-radius:50%;
  filter: blur(8px);
  animation: hm-cloud-light 40s linear infinite reverse;
}
.scn-hate-me-now .figure-bowed {
  position:absolute; bottom:30%; left:45%; width:35px; height:60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hm-figure 5s ease-in-out infinite;
}
.scn-hate-me-now .ground {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 80% 80% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 20px 40px #0a0a15;
}
.scn-hate-me-now .rain-front {
  position:absolute; inset:0;
  background: repeating-linear-gradient(
    45deg,
    transparent 0px,
    transparent 4px,
    rgba(180,180,200,0.1) 4px,
    rgba(180,180,200,0.1) 6px
  );
  animation: hm-rain 1s linear infinite;
}
.scn-hate-me-now .rain-back {
  position:absolute; inset:0;
  background: repeating-linear-gradient(
    -45deg,
    transparent 0px,
    transparent 6px,
    rgba(180,180,200,0.05) 6px,
    rgba(180,180,200,0.05) 9px
  );
  animation: hm-rain-back 1.5s linear infinite;
}
@keyframes hm-sky {
  0% { opacity:0.7; }
  50% { opacity:0.9; }
  100% { opacity:0.6; }
}
@keyframes hm-cloud-dark {
  0% { transform: translateX(-100px); }
  50% { transform: translateX(50px); }
  100% { transform: translateX(150px); }
}
@keyframes hm-cloud-light {
  0% { transform: translateX(50px); }
  50% { transform: translateX(-30px); }
  100% { transform: translateX(-80px); }
}
@keyframes hm-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(-3deg); }
  50% { transform: translateX(-1px) rotate(2deg); }
  75% { transform: translateX(3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hm-rain {
  0% { background-position: 0 0; }
  100% { background-position: 20px 20px; }
}
@keyframes hm-rain-back {
  0% { background-position: 0 0; }
  100% { background-position: -15px 15px; }
}

.scn-glory-birth-skills {
  background: 
    linear-gradient(180deg, #4a2e1a 0%, #6a3a1e 50%, #3a1e0e 100%),
    radial-gradient(ellipse at 50% 100%, #6a3a1e 0%, transparent 70%);
}
.scn-glory-birth-skills .bg-warm {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2210 100%);
  box-shadow: inset 0 0 80px #2a1a0a;
}
.scn-glory-birth-skills .table {
  position:absolute; bottom:10%; left:10%; right:10%; height:15%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 10px;
  box-shadow: 0 -4px 10px #1a100a;
  animation: gb-table 12s ease-in-out infinite alternate;
}
.scn-glory-birth-skills .horse-profile {
  position:absolute; bottom:20%; left:20%; width:80px; height:50px;
  background: linear-gradient(90deg, #3a2515 0%, #2a1a0a 100%);
  border-radius: 60% 40% 30% 50% / 50% 40% 50% 50%;
  transform: rotate(-10deg);
  filter: drop-shadow(2px 2px 4px #1a0e05);
  animation: gb-horse 8s ease-in-out infinite;
}
.scn-glory-birth-skills .hawk {
  position:absolute; top:20%; left:60%; width:50px; height:50px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 70% 30% 50% 50% / 60% 40% 60% 40%;
  transform: rotate(20deg);
  animation: gb-hawk 6s ease-in-out infinite alternate;
}
.scn-glory-birth-skills .garment-drape {
  position:absolute; bottom:25%; right:15%; width:60px; height:70px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 20% 30% 40% 40% / 30% 40% 50% 50%;
  animation: gb-garment 10s ease-in-out infinite alternate;
}
.scn-glory-birth-skills .candle-glow {
  position:absolute; top:15%; left:45%; width:8px; height:20px;
  background: linear-gradient(180deg, #e0a050 0%, #a06030 100%);
  border-radius: 2px;
  box-shadow: 0 0 30px 10px #d08040, 0 0 60px 20px rgba(200,100,40,0.2);
  animation: gb-candle 3s ease-in-out infinite alternate;
}
@keyframes gb-table {
  0% { transform: scaleY(1); opacity:0.9; }
  50% { transform: scaleY(1.02); opacity:1; }
  100% { transform: scaleY(0.98); opacity:0.8; }
}
@keyframes gb-horse {
  0% { transform: translateX(0) rotate(-10deg); }
  25% { transform: translateX(3px) rotate(-12deg); }
  50% { transform: translateX(-2px) rotate(-8deg); }
  75% { transform: translateX(1px) rotate(-11deg); }
  100% { transform: translateX(0) rotate(-10deg); }
}
@keyframes gb-hawk {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-5px); }
  100% { transform: rotate(22deg) translateY(0); }
}
@keyframes gb-garment {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(0.95); }
}
@keyframes gb-candle {
  0% { transform: scaleY(1); opacity:0.8; box-shadow: 0 0 20px 8px #d08040; }
  50% { transform: scaleY(1.1); opacity:1; box-shadow: 0 0 40px 15px #e0a050; }
  100% { transform: scaleY(0.9); opacity:0.7; box-shadow: 0 0 15px 5px #c07030; }
}

.scn-do-your-worst-steal {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a40 30%, #1e1e30 100%),
    radial-gradient(ellipse at 70% 80%, #2e2e4e 0%, transparent 60%);
}
.scn-do-your-worst-steal .bg-room {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2a 100%);
  box-shadow: inset 0 0 100px #0e0e1a;
}
.scn-do-your-worst-steal .shadow-diagonal {
  position:absolute; top:0; left:0; right:60%; bottom:0;
  background: linear-gradient(135deg, #0a0a15 0%, transparent 70%);
  animation: dw-shadow-diag 5s ease-in-out infinite alternate;
}
.scn-do-your-worst-steal .figure-cower {
  position:absolute; bottom:15%; left:30%; width:30px; height:70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dw-figure 3s ease-in-out infinite;
}
.scn-do-your-worst-steal .door {
  position:absolute; right:10%; top:10%; bottom:30%; width:80px;
  background: linear-gradient(135deg, #3a3a4e 0%, #1e1e2e 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px #0e0e1a;
  animation: dw-door 8s ease-in-out infinite alternate;
}
.scn-do-your-worst-steal .light-shaft {
  position:absolute; top:0; left:55%; width:40px; bottom:0;
  background: linear-gradient(180deg, rgba(200,210,255,0.08) 0%, transparent 100%);
  filter: blur(6px);
  animation: dw-light 6s ease-in-out infinite alternate;
}
.scn-do-your-worst-steal .drapes {
  position:absolute; top:0; left:0; right:75%; bottom:40%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 0 50% 50% 0 / 0 30% 30% 0;
  animation: dw-drapes 9s ease-in-out infinite alternate;
}
@keyframes dw-shadow-diag {
  0% { opacity:0.5; transform: scaleX(1); }
  50% { opacity:0.8; transform: scaleX(1.1); }
  100% { opacity:0.4; transform: scaleX(0.9); }
}
@keyframes dw-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-5deg); }
  50% { transform: translateY(1px) rotate(3deg); }
  75% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dw-door {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(0.97); }
}
@keyframes dw-light {
  0% { opacity:0.5; transform: scaleX(1); }
  50% { opacity:1; transform: scaleX(1.5); }
  100% { opacity:0.3; transform: scaleX(0.8); }
}
@keyframes dw-drapes {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.08); }
  100% { transform: scaleX(0.92); }
}

/* Scene: being-your-slave (bys) */
.scn-being-your-slave {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2a 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 60% 40%, #4a3a2a 0%, transparent 60%);
}
.scn-being-your-slave .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1a2e 0%, transparent 100%); }
.scn-being-your-slave .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0e 100%); border-radius: 20% 20% 0 0; }
.scn-being-your-slave .figure { position:absolute; bottom:22%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fig-bys 5s ease-in-out infinite; }
.scn-being-your-slave .clock { position:absolute; bottom:35%; left:55%; width:30px; height:30px; background: radial-gradient(circle, #5a4a3a 30%, #3a2a1a 60%, #1a1a0e 100%); border-radius: 50%; animation: clock-bys 12s linear infinite; }
.scn-being-your-slave .candle-flame { position:absolute; bottom:18%; left:45%; width:6px; height:12px; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c08040 50%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 8px rgba(192,128,64,.6); animation: candle-bys 2s ease-in-out infinite alternate; }
.scn-being-your-slave .shadow { position:absolute; bottom:20%; left:30%; width:60px; height:10px; background: radial-gradient(ellipse, #0a0a06 0%, transparent 100%); animation: shadow-bys 5s ease-in-out infinite; }
@keyframes fig-bys { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes clock-bys { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes candle-bys { 0% { opacity: .7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.2); } 100% { opacity: .8; transform: scaleY(0.9); } }
@keyframes shadow-bys { 0%,100% { transform: translateX(0); opacity: .5; } 50% { transform: translateX(5px); opacity: .7; } }

/* Scene: god-forbid-slave (gfs) */
.scn-god-forbid-slave {
  background: linear-gradient(180deg, #12121e 0%, #1a122a 40%, #2a1a1a 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, transparent 70%);
}
.scn-god-forbid-slave .cell-bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #1a1a2e 0%, transparent 100%); }
.scn-god-forbid-slave .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a1a 0%, #0e0e0a 100%); }
.scn-god-forbid-slave .figure-kneeling { position:absolute; bottom:20%; left:40%; width:22px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: kneel-gfs 6s ease-in-out infinite; }
.scn-god-forbid-slave .chain-link { position:absolute; bottom:30%; left:55%; width:40px; height:4px; background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 4px, transparent 4px, transparent 8px); border-radius: 2px; animation: chain-gfs 8s ease-in-out infinite; }
.scn-god-forbid-slave .bar-window { position:absolute; bottom:40%; right:15%; width:40px; height:50px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border: 3px solid #4a4a5a; border-radius: 10%; box-shadow: inset 0 0 10px rgba(0,0,0,.8); }
.scn-god-forbid-slave .bar-window::after { content:''; position:absolute; top:0; left:0; width:100%; height:100%; background: repeating-linear-gradient(0deg, transparent 0%, transparent 8px, #2a2a3a 8px, #2a2a3a 10px); }
.scn-god-forbid-slave .dim-candle { position:absolute; bottom:15%; left:20%; width:4px; height:10px; background: radial-gradient(ellipse at 50% 30%, #d09040 0%, #a06020 60%, transparent 100%); box-shadow: 0 0 12px 4px rgba(160,96,32,.3); animation: dim-gfs 3s ease-in-out infinite alternate; }
@keyframes kneel-gfs { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-2deg); } }
@keyframes chain-gfs { 0%,100% { transform: translateX(0) rotate(5deg); } 50% { transform: translateX(3px) rotate(-5deg); } }
@keyframes dim-gfs { 0% { opacity: .6; box-shadow: 0 0 8px 2px rgba(160,96,32,.2); } 50% { opacity: .9; box-shadow: 0 0 18px 6px rgba(160,96,32,.5); } 100% { opacity: .7; box-shadow: 0 0 10px 3px rgba(160,96,32,.3); } }

/* Scene: nothing-new (non) */
.scn-nothing-new {
  background: linear-gradient(180deg, #2a2a1a 0%, #3a2a1a 40%, #4a3a2a 100%),
              radial-gradient(ellipse at 70% 50%, #5a4a3a 0%, transparent 60%);
}
.scn-nothing-new .study-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a3a2a 0%, transparent 100%); }
.scn-nothing-new .bookshelf { position:absolute; top:15%; left:8%; width:25%; height:60%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 2px; box-shadow: inset 0 4px 8px #1a0e0a; }
.scn-nothing-new .bookshelf::before { content:''; position:absolute; top:20%; left:0; right:0; height:4px; background: #3a2a1a; }
.scn-nothing-new .desk { position:absolute; bottom:25%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px 4px 0 0; }
.scn-nothing-new .open-book { position:absolute; bottom:30%; left:30%; width:40%; height:18%; background: linear-gradient(135deg, #c8a878 0%, #e0c8a0 50%, #b89868 100%); border-radius: 2px 2px 8px 8px; transform: perspective(300px) rotateX(10deg); box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: book-non 10s ease-in-out infinite; }
.scn-nothing-new .profile-figure { position:absolute; bottom:22%; left:15%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 50% 30% 40% 40% / 60% 40% 40% 40%; transform: rotate(0deg) scaleX(-1); animation: breath-non 4s ease-in-out infinite; }
.scn-nothing-new .dust-sparkle { position:absolute; width:4px; height:4px; background: radial-gradient(circle, #e0d0a0 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 4px #e0d0a0; }
.scn-nothing-new .dust-sparkle.a { top:30%; left:50%; animation: drift-a-non 20s linear infinite; }
.scn-nothing-new .dust-sparkle.b { top:45%; left:30%; animation: drift-b-non 25s linear infinite; }
@keyframes book-non { 0%,100% { transform: perspective(300px) rotateX(10deg); } 50% { transform: perspective(300px) rotateX(12deg) translateY(-1px); } }
@keyframes breath-non { 0%,100% { transform: scaleX(-1) scaleY(1); } 50% { transform: scaleX(-1) scaleY(1.02) translateY(-2px); } }
@keyframes drift-a-non { 0% { transform: translate(0,0); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translate(120px, -60px); opacity: 0; } }
@keyframes drift-b-non { 0% { transform: translate(0,0) scale(0.8); opacity: 0; } 15% { opacity: 1; } 85% { opacity: 1; } 100% { transform: translate(-80px, 40px); opacity: 0; } }

/* Scene: waves-pebbled-shore (wps) */
.scn-waves-pebbled-shore {
  background: linear-gradient(180deg, #6a8aaa 0%, #8aafca 30%, #b0d0e0 60%, #e8f0f8 100%),
              radial-gradient(ellipse at 80% 20%, #f0f8ff 0%, transparent 50%);
}
.scn-waves-pebbled-shore .sky-bg { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #7a9aba 0%, #a0c8e0 60%, transparent 100%); }
.scn-waves-pebbled-shore .sun-disk { position:absolute; top:15%; right:12%; width:40px; height:40px; background: radial-gradient(circle, #ffe8c0 0%, #f0c880 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(240,200,128,.3); animation: sun-wps 15s ease-in-out infinite alternate; }
.scn-waves-pebbled-shore .ocean { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a6a8a 0%, #2a5a7a 50%, #1a4a6a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; animation: wave-wps 8s ease-in-out infinite; }
.scn-waves-pebbled-shore .foam-edge { position:absolute; bottom:30%; left:0; right:0; height:8%; background: radial-gradient(ellipse at 30% 50%, rgba(255,255,255,.6) 0%, transparent 70%), radial-gradient(ellipse at 70% 50%, rgba(255,255,255,.4) 0%, transparent 70%); border-radius: 0 0 20% 20%; filter: blur(2px); animation: foam-wps 12s ease-in-out infinite alternate; }
.scn-waves-pebbled-shore .pebbles { position:absolute; bottom:22%; left:5%; right:5%; height:10%; background: radial-gradient(circle at 20% 30%, #c0b090 0%, #a09880 40%, transparent 100%), radial-gradient(circle at 60% 70%, #b0a888 0%, #908878 40%, transparent 100%), radial-gradient(circle at 85% 40%, #c8b8a0 0%, #a89880 40%, transparent 100%); border-radius: 50% 50% 30% 30% / 100% 100% 50% 50%; filter: blur(1px); animation: peb-wps 20s linear infinite; }
.scn-waves-pebbled-shore .shoreline { position:absolute; bottom:30%; left:0; right:0; height:2%; background: rgba(200,180,160,.4); border-radius: 40% 60% 0 0; }
.scn-waves-pebbled-shore .bird { position:absolute; top:20%; left:30%; width:14px; height:4px; background: #2a3a4a; border-radius: 50%; transform: rotate(20deg); animation: bird-wps 18s linear infinite; }
.scn-waves-pebbled-shore .bird.distant { left:60%; top:25%; width:8px; height:2px; animation-duration: 22s; animation-delay: -5s; }
@keyframes sun-wps { 0% { transform: scale(1); box-shadow: 0 0 30px 15px rgba(240,200,128,.2); } 50% { transform: scale(1.05); box-shadow: 0 0 50px 25px rgba(240,200,128,.4); } 100% { transform: scale(0.95); box-shadow: 0 0 40px 20px rgba(240,200,128,.3); } }
@keyframes wave-wps { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes foam-wps { 0% { opacity: .6; transform: translateX(0); } 100% { opacity: .8; transform: translateX(10px); } }
@keyframes peb-wps { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes bird-wps { 0% { transform: translateX(0) rotate(20deg); } 100% { transform: translateX(120vw) rotate(-10deg); } }

.scn-unthrifty-loveliness {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #1a0a0a 100%), radial-gradient(ellipse at 50% 100%, #3a2a2a 0%, transparent 80%);
}
.scn-unthrifty-loveliness .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1a1a 0%, transparent 50%); animation: ut-room 6s ease-in-out infinite alternate;
}
.scn-unthrifty-loveliness .candle-flame {
  position: absolute; bottom: 38%; left: 48%; width: 14px; height: 28px; background: radial-gradient(ellipse at 50% 30%, #ffcc77 0%, #c8553d 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 24px 8px rgba(200,85,61,.5), 0 0 48px 16px rgba(200,85,61,.2); animation: ut-flame 0.8s ease-in-out infinite alternate;
}
.scn-unthrifty-loveliness .candle {
  position: absolute; bottom: 32%; left: 48%; width: 10px; height: 40px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 2px 2px 4px 4px; transform: translateX(-50%); box-shadow: inset 0 4px 6px rgba(0,0,0,.6);
}
.scn-unthrifty-loveliness .table-top {
  position: absolute; bottom: 24%; left: 10%; right: 10%; height: 12px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-unthrifty-loveliness .figure-silhouette {
  position: absolute; bottom: 24%; left: 30%; width: 22px; height: 48px; background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ut-fig 4s ease-in-out infinite;
}
.scn-unthrifty-loveliness .coin-pile {
  position: absolute; bottom: 25%; left: 55%; width: 40px; height: 20px; background: radial-gradient(ellipse at 50% 40%, #b08040 0%, #6a4a20 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.7); animation: ut-coin 3s ease-in-out infinite;
}
.scn-unthrifty-loveliness .coin-glow {
  position: absolute; bottom: 25%; left: 55%; width: 40px; height: 20px; border-radius: 50%; box-shadow: 0 0 20px 4px rgba(176,128,64,.3); animation: ut-coinglow 3s ease-in-out infinite alternate;
}
@keyframes ut-room { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes ut-flame { 0% { transform: scaleY(1) scaleX(1); opacity: .8 } 50% { transform: scaleY(1.2) scaleX(.8); opacity: 1 } 100% { transform: scaleY(.9) scaleX(1.1); opacity: .7 } }
@keyframes ut-fig { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(4px) translateY(0) rotate(-1deg) } 75% { transform: translateX(6px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(8px) translateY(0) rotate(0) } }
@keyframes ut-coin { 0%,100% { opacity: .6 } 50% { opacity: 1 } }
@keyframes ut-coinglow { 0% { box-shadow: 0 0 15px 2px rgba(176,128,64,.2) } 50% { box-shadow: 0 0 25px 6px rgba(176,128,64,.5) } 100% { box-shadow: 0 0 15px 2px rgba(176,128,64,.2) } }

.scn-hours-and-summer {
  background: linear-gradient(180deg, #e6e0c0 0%, #d4c890 30%, #b8a070 60%, #a08050 100%), radial-gradient(ellipse at 70% 20%, #ffe8b0 0%, transparent 60%);
}
.scn-hours-and-summer .sky-grad {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #fef4d0 0%, #d4c890 100%); animation: hs-sky 20s ease-in-out infinite alternate;
}
.scn-hours-and-summer .sun-glow {
  position: absolute; top: 10%; left: 70%; width: 60px; height: 60px; background: radial-gradient(circle, #ffe8b0 0%, #f0c060 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 80px 30px rgba(240,192,96,.4); animation: hs-sun 30s ease-in-out infinite alternate;
}
.scn-hours-and-summer .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #b8a070 0%, #8a7a50 50%, #6a5a30 100%); border-radius: 30% 40% 0 0 / 60% 50% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.3); animation: hs-field 15s ease-in-out infinite alternate;
}
.scn-hours-and-summer .flower-a {
  position: absolute; bottom: 30%; left: 20%; width: 8px; height: 16px; background: radial-gradient(ellipse at 50% 30%, #f0c060 0%, #c89440 100%); border-radius: 50%; transform: rotate(15deg); animation: hs-flower 8s ease-in-out infinite;
}
.scn-hours-and-summer .flower-b {
  position: absolute; bottom: 32%; left: 40%; width: 6px; height: 12px; background: radial-gradient(ellipse at 50% 30%, #e6b050 0%, #b88830 100%); border-radius: 50%; transform: rotate(-10deg); animation: hs-flower 8s ease-in-out infinite reverse;
}
.scn-hours-and-summer .hourglass {
  position: absolute; bottom: 45%; left: 45%; width: 30px; height: 50px; background: linear-gradient(180deg, transparent 0%, #c0b090 15%, #a09070 85%, transparent 100%); border-radius: 20% 20% 20% 20% / 30% 30% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: hs-hour 12s ease-in-out infinite;
}
.scn-hours-and-summer .sand-fall {
  position: absolute; bottom: 48%; left: 47%; width: 6px; height: 20px; background: linear-gradient(180deg, #c8b080 0%, transparent 100%); border-radius: 2px; transform: rotate(5deg); animation: hs-sand 4s ease-in-out infinite;
}
.scn-hours-and-summer .butterfly {
  position: absolute; top: 25%; left: 20%; width: 12px; height: 8px; background: radial-gradient(ellipse at 50% 50%, #c8553d 0%, #a0461a 100%); border-radius: 50% 0 50% 0 / 50% 0 50% 0; transform: rotate(-30deg); box-shadow: 0 0 6px 1px rgba(200,85,61,.5); animation: hs-bfly 6s ease-in-out infinite alternate;
}
@keyframes hs-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes hs-sun { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(10px) scale(1.05) } 100% { transform: translateX(-10px) scale(1) } }
@keyframes hs-field { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes hs-flower { 0%,100% { transform: rotate(15deg) scale(1) } 50% { transform: rotate(-5deg) scale(1.1) } }
@keyframes hs-hour { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes hs-sand { 0% { transform: translateY(0) scaleY(1); opacity: 1 } 50% { transform: translateY(5px) scaleY(.8); opacity: .6 } 100% { transform: translateY(0) scaleY(1); opacity: 1 } }
@keyframes hs-bfly { 0% { transform: translateX(0) rotate(-30deg) scale(1) } 50% { transform: translateX(20px) rotate(10deg) scale(1.2) } 100% { transform: translateX(10px) rotate(-20deg) scale(1) } }

.scn-item-distilled-flower {
  background: linear-gradient(180deg, #fef8e0 0%, #f0d8a0 40%, #d4b880 100%), radial-gradient(ellipse at 60% 30%, #fff4c0 0%, transparent 70%);
}
.scn-item-distilled-flower .windowsill {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 20px; background: linear-gradient(180deg, #c8b080 0%, #a89060 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-item-distilled-flower .glass-vial {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 60px; background: linear-gradient(180deg, rgba(255,255,240,.4) 0%, rgba(200,180,140,.2) 100%); border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%; border: 2px solid rgba(200,180,140,.5); box-shadow: inset 0 0 10px rgba(200,160,100,.3), 0 4px 8px rgba(0,0,0,.2); animation: idf-vial 8s ease-in-out infinite alternate;
}
.scn-item-distilled-flower .vial-liquid {
  position: absolute; bottom: 32%; left: 37%; width: 32px; height: 30px; background: linear-gradient(180deg, #e6b060 0%, #c89440 100%); border-radius: 0 0 50% 50%; opacity: .7; animation: idf-liquid 6s ease-in-out infinite alternate;
}
.scn-item-distilled-flower .vial-cork {
  position: absolute; bottom: 42%; left: 36%; width: 12px; height: 12px; background: linear-gradient(180deg, #8a6a40 0%, #6a4a20 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform: translateX(50%); box-shadow: 0 2px 4px rgba(0,0,0,.5);
}
.scn-item-distilled-flower .light-rays {
  position: absolute; top: 10%; left: 30%; width: 80px; height: 160px; background: linear-gradient(135deg, rgba(255,240,180,.2) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: idf-rays 10s ease-in-out infinite alternate;
}
.scn-item-distilled-flower .petal-floating {
  position: absolute; bottom: 35%; left: 50%; width: 8px; height: 6px; background: radial-gradient(ellipse at 50% 50%, #d87858 0%, #b05830 100%); border-radius: 50% 0 50% 0; animation: idf-petal 12s ease-in-out infinite;
}
.scn-item-distilled-flower .shadow-rim {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 50%, transparent 60%, rgba(0,0,0,.15) 100%); pointer-events: none;
}
@keyframes idf-vial { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes idf-liquid { 0% { height: 30px; opacity: .6 } 50% { height: 35px; opacity: .8 } 100% { height: 30px; opacity: .6 } }
@keyframes idf-rays { 0% { opacity: .3; transform: rotate(-5deg) } 50% { opacity: .6; transform: rotate(0deg) } 100% { opacity: .3; transform: rotate(5deg) } }
@keyframes idf-petal { 0% { transform: translate(0,0) rotate(0) scale(1) } 25% { transform: translate(10px,-15px) rotate(30deg) scale(1.1) } 50% { transform: translate(20px,-30px) rotate(60deg) scale(.9) } 75% { transform: translate(10px,-20px) rotate(90deg) scale(1.05) } 100% { transform: translate(0,0) rotate(120deg) scale(1) } }

.scn-winter-ragged-hand {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 30%, #2a2a40 60%, #1a2020 100%), radial-gradient(ellipse at 50% 100%, #3a3a50 0%, transparent 80%);
}
.scn-winter-ragged-hand .bg-cold {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a0a1a 0%, transparent 50%); animation: wrh-cold 12s ease-in-out infinite alternate;
}
.scn-winter-ragged-hand .shelf {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 10px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.7);
}
.scn-winter-ragged-hand .vial-winter {
  position: absolute; bottom: 32%; left: 40%; width: 30px; height: 50px; background: linear-gradient(180deg, rgba(180,200,220,.3) 0%, rgba(100,130,160,.2) 100%); border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%; border: 1px solid rgba(180,200,220,.4); box-shadow: inset 0 0 8px rgba(100,150,200,.3), 0 0 12px rgba(100,150,200,.2); animation: wrh-vial 8s ease-in-out infinite alternate;
}
.scn-winter-ragged-hand .hand-silhouette {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 40px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(10deg); animation: wrh-hand 5s ease-in-out infinite;
}
.scn-winter-ragged-hand .frost-breath {
  position: absolute; top: 20%; left: 50%; width: 40px; height: 20px; background: radial-gradient(ellipse at 50% 50%, rgba(200,220,240,.2) 0%, transparent 100%); filter: blur(6px); animation: wrh-frost 15s ease-in-out infinite;
}
.scn-winter-ragged-hand .sparkle {
  position: absolute; top: 40%; left: 60%; width: 4px; height: 4px; background: #c0d4e8; border-radius: 50%; box-shadow: 0 0 6px 2px rgba(192,212,232,.5); animation: wrh-spark 3s ease-in-out infinite;
}
.scn-winter-ragged-hand .shadow-deep {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 60%, transparent 40%, rgba(0,0,0,.6) 100%); pointer-events: none;
}
@keyframes wrh-cold { 0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .4 } }
@keyframes wrh-vial { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes wrh-hand { 0% { transform: translateX(0) rotate(10deg) scale(1) } 25% { transform: translateX(5px) rotate(15deg) scale(1.05) } 50% { transform: translateX(12px) rotate(5deg) scale(.95) } 75% { transform: translateX(8px) rotate(20deg) scale(1.02) } 100% { transform: translateX(0) rotate(10deg) scale(1) } }
@keyframes wrh-frost { 0% { opacity: .1; transform: scale(1) } 50% { opacity: .4; transform: scale(1.5) } 100% { opacity: .1; transform: scale(1) } }
@keyframes wrh-spark { 0%,100% { opacity: 0; transform: scale(1) } 25% { opacity: 1; transform: scale(2) } 50% { opacity: 0; transform: scale(.5) } 75% { opacity: .5; transform: scale(1.5) } }

.scn-heavy-journey {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #3a3a4a 70%, #4a4a5a 100%),
              radial-gradient(ellipse at 50% 100%, #4a4a5a 0%, transparent 70%);
}
.scn-heavy-journey .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3a 60%, transparent 100%);
  animation: hj-sky 15s ease-in-out infinite alternate;
}
.scn-heavy-journey .hills {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a3a2e 0%, #1a2a1e 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.5);
  animation: hj-hills 20s ease-in-out infinite alternate;
}
.scn-heavy-journey .path {
  position: absolute; bottom: 28%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: hj-path 8s ease-in-out infinite;
}
.scn-heavy-journey .rocks {
  position: absolute; bottom: 35%; left: 8%; width: 30px; height: 25px;
  background: linear-gradient(135deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 3px 6px rgba(0,0,0,0.5);
  animation: hj-rocks 12s ease-in-out infinite alternate;
}
.scn-heavy-journey .beast {
  position: absolute; bottom: 26%; left: 38%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: hj-beast 6s ease-in-out infinite;
}
.scn-heavy-journey .rider {
  position: absolute; bottom: 42%; left: 42%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hj-rider 6s ease-in-out infinite;
}
.scn-heavy-journey .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: hj-ground 4s ease-in-out infinite alternate;
}
@keyframes hj-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes hj-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes hj-path { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } }
@keyframes hj-rocks { 0% { transform: translate(0, 0); } 50% { transform: translate(2px, -2px); } 100% { transform: translate(-1px, 1px); } }
@keyframes hj-beast { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(2px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(4px) translateY(0) rotate(0); } 75% { transform: translateX(2px) translateY(-1px) rotate(-1deg); } }
@keyframes hj-rider { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(1px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(2px) translateY(0) rotate(0); } 75% { transform: translateX(1px) translateY(-1px) rotate(-2deg); } }
@keyframes hj-ground { 0%,100% { opacity: 0.9; } 50% { opacity: 1; } }

.scn-slow-offence {
  background: linear-gradient(135deg, #2a1a1a 0%, #3a2a2a 50%, #2a1a1a 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a3a 0%, transparent 70%);
}
.scn-slow-offence .wall-left {
  position: absolute; left: 0; top: 0; width: 35%; height: 100%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  box-shadow: inset -5px 0 10px rgba(0,0,0,0.4);
  animation: so-wall 10s ease-in-out infinite alternate;
}
.scn-slow-offence .wall-right {
  position: absolute; right: 0; top: 0; width: 35%; height: 100%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  box-shadow: inset 5px 0 10px rgba(0,0,0,0.4);
  animation: so-wall 10s ease-in-out infinite alternate-reverse;
}
.scn-slow-offence .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
  animation: so-floor 8s ease-in-out infinite;
}
.scn-slow-offence .desk {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: so-desk 6s ease-in-out infinite;
}
.scn-slow-offence .candle {
  position: absolute; bottom: 22%; left: 47%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #d0b080 0%, #a08060 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 4px rgba(200,150,80,0.6);
  animation: so-candle 2s ease-in-out infinite alternate;
}
.scn-slow-offence .figure {
  position: absolute; bottom: 14%; left: 36%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: so-figure 4s ease-in-out infinite;
}
.scn-slow-offence .window {
  position: absolute; top: 15%; left: 40%; width: 40px; height: 50px;
  border: 4px solid #2a1a1a;
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: so-window 12s ease-in-out infinite alternate;
}
.scn-slow-offence .dust {
  position: absolute; top: 30%; left: 60%; width: 4px; height: 4px;
  background: radial-gradient(circle, rgba(255,200,150,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: so-dust 15s linear infinite;
}
@keyframes so-wall { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes so-floor { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } }
@keyframes so-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes so-candle { 0% { opacity: 0.7; box-shadow: 0 0 8px 2px rgba(200,150,80,0.4); } 50% { opacity: 1; box-shadow: 0 0 20px 8px rgba(200,150,80,0.8); } 100% { opacity: 0.8; box-shadow: 0 0 12px 4px rgba(200,150,80,0.5); } }
@keyframes so-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(1px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(-1px) translateY(-1px) rotate(-2deg); } }
@keyframes so-window { 0%,100% { opacity: 0.6; } 50% { opacity: 0.9; } }
@keyframes so-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0.5; } 25% { transform: translate(-10px, -15px) scale(1.2); opacity: 0.8; } 50% { transform: translate(5px, -30px) scale(0.8); opacity: 0.3; } 75% { transform: translate(20px, -10px) scale(1.1); opacity: 0.6; } 100% { transform: translate(0, 0) scale(1); opacity: 0.5; } }

.scn-blessed-key {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a1a 40%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, transparent 70%);
}
.scn-blessed-key .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  opacity: 0.8;
  animation: bk-wall 10s ease-in-out infinite alternate;
}
.scn-blessed-key .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
  animation: bk-floor 8s ease-in-out infinite;
}
.scn-blessed-key .chest {
  position: absolute; bottom: 12%; left: 30%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6), inset 0 2px 4px rgba(255,200,150,0.2);
  animation: bk-chest 6s ease-in-out infinite;
}
.scn-blessed-key .key {
  position: absolute; bottom: 20%; left: 48%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #d0a050 0%, #b08030 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: bk-key 4s ease-in-out infinite;
}
.scn-blessed-key .glow {
  position: absolute; bottom: 18%; left: 40%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: bk-glow 3s ease-in-out infinite alternate;
}
.scn-blessed-key .jewel {
  position: absolute; bottom: 15%; left: 55%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(255,200,100,0.6);
  animation: bk-jewel 2s ease-in-out infinite alternate;
}
.scn-blessed-key .shadow {
  position: absolute; bottom: 10%; left: 25%; width: 100px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: bk-shadow 6s ease-in-out infinite;
}
@keyframes bk-wall { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes bk-floor { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } }
@keyframes bk-chest { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes bk-key { 0%,100% { transform: rotate(0) translateY(0); } 25% { transform: rotate(10deg) translateY(-1px); } 50% { transform: rotate(0) translateY(0); } 75% { transform: rotate(-10deg) translateY(-1px); } }
@keyframes bk-glow { 0% { opacity: 0.3; transform: scale(1); } 100% { opacity: 0.8; transform: scale(1.2); } }
@keyframes bk-jewel { 0% { box-shadow: 0 0 5px 2px rgba(255,200,100,0.4); } 100% { box-shadow: 0 0 15px 6px rgba(255,200,100,0.8); } }
@keyframes bk-shadow { 0%,100% { opacity: 0.5; } 50% { opacity: 0.8; } }

.scn-item-blessed-key {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #4a3a2a 100%),
              radial-gradient(ellipse at 60% 40%, #5a4a3a 0%, transparent 70%);
}
.scn-item-blessed-key .wall-left {
  position: absolute; left: 0; top: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  box-shadow: inset -8px 0 15px rgba(0,0,0,0.5);
  animation: ibk-wall 12s ease-in-out infinite alternate;
}
.scn-item-blessed-key .wall-right {
  position: absolute; right: 0; top: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  box-shadow: inset 8px 0 15px rgba(0,0,0,0.5);
  animation: ibk-wall 12s ease-in-out infinite alternate-reverse;
}
.scn-item-blessed-key .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
  animation: ibk-floor 8s ease-in-out infinite;
}
.scn-item-blessed-key .wardrobe {
  position: absolute; bottom: 10%; left: 25%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a00 100%);
  border-radius: 8% 8% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6), inset 0 2px 4px rgba(255,200,150,0.1);
  animation: ibk-wardrobe 8s ease-in-out infinite;
}
.scn-item-blessed-key .robe {
  position: absolute; bottom: 14%; left: 28%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #b87878 0%, #8a5a5a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ibk-robe 5s ease-in-out infinite;
}
.scn-item-blessed-key .chest {
  position: absolute; bottom: 8%; left: 55%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: ibk-chest 6s ease-in-out infinite;
}
.scn-item-blessed-key .light-beam {
  position: absolute; top: 5%; left: 40%; width: 20px; height: 100%;
  background: linear-gradient(180deg, rgba(255,200,100,0.15) 0%, transparent 80%);
  border-radius: 20% 20% 0 0;
  transform: rotate(5deg);
  filter: blur(4px);
  animation: ibk-light 10s ease-in-out infinite alternate;
}
.scn-item-blessed-key .shadow {
  position: absolute; bottom: 5%; left: 20%; width: 140px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(6px);
  animation: ibk-shadow 7s ease-in-out infinite;
}
@keyframes ibk-wall { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes ibk-floor { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } }
@keyframes ibk-wardrobe { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } }
@keyframes ibk-robe { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(1px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-1px) rotate(-2deg); } }
@keyframes ibk-chest { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes ibk-light { 0% { opacity: 0.2; transform: rotate(3deg); } 100% { opacity: 0.6; transform: rotate(7deg); } }
@keyframes ibk-shadow { 0%,100% { opacity: 0.5; } 50% { opacity: 0.8; } }

.scn-lips-love-hand {
  background: linear-gradient(180deg, #fbe9d7 0%, #e6c9a8 30%, #d4b08a 60%, #c69a6a 100%), radial-gradient(ellipse at 50% 0%, #fff4e0 0%, transparent 60%);
}
.scn-lips-love-hand .bg-soft { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, #f5dcc3 0%, transparent 70%); }
.scn-lips-love-hand .chamber-wall { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #d4b08a 0%, #b89070 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(120,80,50,.3); }
.scn-lips-love-hand .hand { position:absolute; bottom:25%; left:30%; width:70px; height:100px; background: linear-gradient(180deg, #c69a6a 0%, #a07050 100%); border-radius: 40% 30% 30% 40% / 60% 40% 40% 60%; transform: rotate(-15deg); box-shadow: 0 8px 20px rgba(80,50,30,.4); animation: llh-hand 5s ease-in-out infinite; }
.scn-lips-love-hand .lips { position:absolute; bottom:40%; right:25%; width:50px; height:25px; background: radial-gradient(ellipse at 50% 50%, #c8553d 0%, #a0461a 80%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 4px 12px rgba(200,85,61,.3); animation: llh-lips 6s ease-in-out infinite; }
.scn-lips-love-hand .heart-glow { position:absolute; bottom:35%; left:45%; width:30px; height:30px; background: radial-gradient(circle, #ffd080 0%, #c8553d 70%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(255,208,128,.5), 0 0 80px 30px rgba(200,85,61,.3); animation: llh-heart 3s ease-in-out infinite alternate; }
.scn-lips-love-hand .petal-a { position:absolute; top:15%; left:20%; width:14px; height:10px; background: radial-gradient(ellipse, #f7c8a0 0%, #d49a70 100%); border-radius: 50% 0 50% 0; transform: rotate(20deg); filter: blur(1px); animation: llh-petal 12s linear infinite; }
.scn-lips-love-hand .petal-b { position:absolute; top:25%; right:15%; width:12px; height:8px; background: radial-gradient(ellipse, #f7c8a0 0%, #d49a70 100%); border-radius: 0 50% 0 50%; transform: rotate(-30deg); filter: blur(1px); animation: llh-petal 15s linear infinite reverse; }
.scn-lips-love-hand .light-ray { position:absolute; top:0; left:30%; width:2px; height:100%; background: linear-gradient(180deg, rgba(255,244,224,.6) 0%, transparent 80%); transform: rotate(10deg); filter: blur(4px); animation: llh-ray 8s ease-in-out infinite alternate; }
@keyframes llh-hand { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-4px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes llh-lips { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(-2deg); } 100% { transform: scale(1) rotate(1deg); } }
@keyframes llh-heart { 0% { opacity: 0.7; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1.1); } }
@keyframes llh-petal { 0% { transform: translateX(0) rotate(20deg); } 100% { transform: translateX(120vw) rotate(40deg); } }
@keyframes llh-ray { 0% { opacity: 0.6; transform: rotate(8deg) scaleY(1); } 100% { opacity: 1; transform: rotate(12deg) scaleY(1.1); } }

.scn-poor-soul-centre {
  background: linear-gradient(180deg, #1a1028 0%, #2a1a3a 30%, #3a2a4a 60%, #4a3a5a 100%), radial-gradient(ellipse at 50% 100%, #4a3a5a 0%, transparent 70%);
}
.scn-poor-soul-centre .back-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0f0a1a 0%, #1a1028 100%); }
.scn-poor-soul-centre .column-left { position:absolute; bottom:0; left:10%; width:15%; height:80%; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border-radius: 10% 10% 0 0; box-shadow: inset -5px 0 15px rgba(0,0,0,.4); }
.scn-poor-soul-centre .column-right { position:absolute; bottom:0; right:10%; width:15%; height:80%; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 5px 0 15px rgba(0,0,0,.4); }
.scn-poor-soul-centre .soul-orb { position:absolute; bottom:40%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #b08040 60%, #4a3a5a 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,208,128,.3), 0 0 60px 20px rgba(255,208,128,.1); animation: psc-soul 6s ease-in-out infinite; }
.scn-poor-soul-centre .window-glow { position:absolute; bottom:70%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #5a4a6a 0%, #2a1a3a 100%); border-radius: 10% 10% 30% 30%; border: 2px solid #6a5a7a; box-shadow: 0 0 20px 5px #3a2a4a inset; animation: psc-window 10s ease-in-out infinite alternate; }
.scn-poor-soul-centre .worm-crawl { position:absolute; bottom:15%; right:25%; width:20px; height:6px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: psc-worm 20s linear infinite; }
.scn-poor-soul-centre .mansion-fade { position:absolute; bottom:0; left:5%; right:5%; height:100%; background: linear-gradient(180deg, transparent 60%, #1a1028 100%); pointer-events: none; }
@keyframes psc-soul { 0%,100% { transform: translateX(-50%) scale(1) rotate(0deg); opacity:0.8; } 50% { transform: translateX(-50%) scale(1.1) rotate(15deg); opacity:1; } }
@keyframes psc-window { 0% { opacity:0.6; box-shadow: 0 0 20px 5px #3a2a4a inset; } 50% { opacity:0.9; box-shadow: 0 0 40px 10px #5a4a6a inset; } 100% { opacity:0.7; box-shadow: 0 0 25px 5px #3a2a4a inset; } }
@keyframes psc-worm { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-30px) scaleX(-1); } 100% { transform: translateX(0) scaleX(1); } }

.scn-love-fever {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1010 30%, #3a1a1a 60%, #2a1010 100%), radial-gradient(ellipse at 50% 80%, #3a1a1a 0%, transparent 70%);
}
.scn-love-fever .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, #0f0505 0%, #1a0a0a 100%); }
.scn-love-fever .bed-shadow { position:absolute; bottom:10%; left:25%; right:25%; height:30%; background: linear-gradient(180deg, #3a1a1a 0%, #1a0a0a 100%); border-radius: 20% 20% 40% 40% / 30% 30% 60% 60%; box-shadow: 0 10px 30px rgba(0,0,0,.6); }
.scn-love-fever .figure-ill { position:absolute; bottom:18%; left:50%; width:50px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #4a2a2a 0%, #2a1010 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 4px 15px rgba(0,0,0,.5); animation: lf-tremble 3s ease-in-out infinite; }
.scn-love-fever .fever-haze { position:absolute; bottom:15%; left:20%; right:20%; height:40%; background: radial-gradient(ellipse at 50% 30%, rgba(255,140,80,0.15) 0%, transparent 70%); filter: blur(15px); animation: lf-haze 8s ease-in-out infinite alternate; }
.scn-love-fever .bottle { position:absolute; bottom:25%; right:20%; width:20px; height:35px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; transform: rotate(15deg); box-shadow: 0 3px 10px rgba(0,0,0,.5); }
.scn-love-fever .medicine-drop { position:absolute; bottom:35%; right:23%; width:6px; height:8px; background: radial-gradient(circle, #a08060 0%, #806040 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(160,128,96,.4); animation: lf-drop 4s ease-in-out infinite; }
.scn-love-fever .pulse-ring { position:absolute; bottom:40%; left:50%; width:80px; height:80px; transform:translateX(-50%); border: 3px solid rgba(200,85,61,0.3); border-radius: 50%; background: transparent; animation: lf-pulse 5s ease-out infinite; }
@keyframes lf-tremble { 0%,100% { transform: translateX(-50%) rotate(-1deg); } 25% { transform: translateX(-48%) rotate(1deg); } 50% { transform: translateX(-52%) rotate(-2deg); } 75% { transform: translateX(-49%) rotate(2deg); } }
@keyframes lf-haze { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.05); } 100% { opacity:0.4; transform: scale(0.95); } }
@keyframes lf-drop { 0% { opacity:0; transform: translateY(0) scale(0.5); } 30% { opacity:1; transform: translateY(0) scale(1); } 60% { opacity:1; transform: translateY(-10px) scale(1.2); } 100% { opacity:0; transform: translateY(-20px) scale(0.5); } }
@keyframes lf-pulse { 0% { transform: translateX(-50%) scale(0.5); opacity:0.8; } 50% { transform: translateX(-50%) scale(1.5); opacity:0.2; } 100% { transform: translateX(-50%) scale(2); opacity:0; } }

.scn-o-me-what-eyes {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 30%, #3a3a5a 60%, #4a4a6a 100%), radial-gradient(ellipse at 50% 60%, #3a3a5a 0%, transparent 70%);
}
.scn-o-me-what-eyes .bg-dim { position:absolute; inset:0; background: linear-gradient(180deg, #0f0f1e 0%, #1a1a2e 100%); }
.scn-o-me-what-eyes .profile-head { position:absolute; bottom:30%; left:35%; width:60px; height:90px; background: linear-gradient(180deg, #2a2a44 0%, #1a1a2e 100%); border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%; transform: rotate(8deg); box-shadow: inset -5px 0 15px rgba(0,0,0,.5); }
.scn-o-me-what-eyes .eye { position:absolute; bottom:48%; left:38%; width:18px; height:12px; background: radial-gradient(circle, #ffd080 0%, #a08060 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 10px 3px rgba(255,208,128,.3); animation: owe-eye 4s ease-in-out infinite alternate; }
.scn-o-me-what-eyes .eye-glow { position:absolute; bottom:46%; left:36%; width:24px; height:16px; background: radial-gradient(circle, rgba(255,208,128,0.3) 0%, transparent 70%); filter: blur(4px); animation: owe-glow 4s ease-in-out infinite alternate; }
.scn-o-me-what-eyes .shadow-mask { position:absolute; bottom:20%; left:30%; right:30%; height:40%; background: linear-gradient(180deg, transparent 0%, #1a1a2e 100%); pointer-events: none; }
.scn-o-me-what-eyes .tear { position:absolute; bottom:40%; left:40%; width:6px; height:10px; background: radial-gradient(circle, #6a8aba 0%, #4a6a9a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 8px 2px rgba(106,138,186,.3); animation: owe-tear 6s ease-in-out infinite; }
.scn-o-me-what-eyes .whisper-arc { position:absolute; top:30%; left:50%; width:40px; height:20px; border: solid 1px rgba(255,208,128,0.2); border-radius: 50% 50% 0 0; border-bottom: none; transform: translateX(-50%) rotate(-10deg); background: transparent; animation: owe-whisper 8s ease-in-out infinite alternate; }
@keyframes owe-eye { 0% { transform: scale(1) rotate(0deg); opacity:0.8; } 50% { transform: scale(1.2) rotate(-5deg); opacity:1; } 100% { transform: scale(1) rotate(5deg); opacity:0.9; } }
@keyframes owe-glow { 0% { opacity:0.3; transform: scale(1); } 100% { opacity:0.7; transform: scale(1.3); } }
@keyframes owe-tear { 0%,100% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(-6px) scale(1.1); opacity:1; } }
@keyframes owe-whisper { 0% { opacity:0.2; transform: translateX(-50%) rotate(-15deg) scaleY(0.8); } 50% { opacity:0.5; transform: translateX(-50%) rotate(-5deg) scaleY(1.1); } 100% { opacity:0.3; transform: translateX(-50%) rotate(5deg) scaleY(0.9); } }

/* Scene: epitaph-survive (calm, dim-interior) */
.scn-epitaph-survive {
  background: linear-gradient(180deg, #2b1e15 0%, #1a0f0a 40%, #0d0805 100%), radial-gradient(ellipse at 50% 100%, #3a251a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-epitaph-survive .bg-wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3d2a1e 0%, #1c120c 100%);
  animation: es-wall 16s ease-in-out infinite alternate;
}
.scn-epitaph-survive .desk {
  position: absolute;
  bottom: 0;
  left: 10%;
  right: 10%;
  height: 30%;
  background: linear-gradient(180deg, #4a3224 0%, #2a1a10 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
  animation: es-desk 12s ease-in-out infinite;
}
.scn-epitaph-survive .candle {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 8px;
  height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4b08a 0%, #8c6a4e 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 6px rgba(180,130,80,0.4);
}
.scn-epitaph-survive .flame {
  position: absolute;
  bottom: calc(30% + 40px);
  left: 50%;
  width: 10px;
  height: 16px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 20%, #ffdd88 0%, #e8a030 40%, #b06020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 16px 4px #e8a030, 0 0 32px 10px rgba(232,160,48,0.4);
  animation: es-flame 2.4s ease-in-out infinite;
}
.scn-epitaph-survive .quill {
  position: absolute;
  bottom: 30%;
  left: 40%;
  width: 4px;
  height: 60px;
  transform-origin: bottom center;
  background: linear-gradient(180deg, #c0a080 0%, #7a5a3a 100%);
  border-radius: 2px 2px 0 0;
  animation: es-quill 3s ease-in-out infinite;
}
.scn-epitaph-survive .scroll {
  position: absolute;
  bottom: 30%;
  left: 58%;
  width: 50px;
  height: 20px;
  background: linear-gradient(180deg, #b8976a 0%, #8a6a44 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5), inset 0 1px 2px rgba(255,255,200,0.2);
  transform: rotate(-2deg);
  animation: es-scroll 8s ease-in-out infinite alternate;
}
.scn-epitaph-survive .shadow {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 80px;
  height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: es-shadow 6s ease-in-out infinite alternate;
}
@keyframes es-wall {
  0% { opacity: 0.85; }
  50% { opacity: 0.95; }
  100% { opacity: 0.8; }
}
@keyframes es-desk {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes es-flame {
  0% { transform: translateX(-50%) scaleY(1) rotate(-2deg); opacity: 0.9; }
  25% { transform: translateX(-50%) scaleY(1.1) rotate(2deg); opacity: 1; }
  50% { transform: translateX(-50%) scaleY(1) rotate(0deg); opacity: 0.95; }
  75% { transform: translateX(-50%) scaleY(0.9) rotate(-1deg); opacity: 0.9; }
  100% { transform: translateX(-50%) scaleY(1.05) rotate(1deg); opacity: 0.95; }
}
@keyframes es-quill {
  0%,100% { transform: rotate(-3deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(4deg); }
}
@keyframes es-scroll {
  0% { transform: translate(0,0) rotate(-2deg); }
  50% { transform: translate(1px,-1px) rotate(1deg); }
  100% { transform: translate(0,0) rotate(-2deg); }
}
@keyframes es-shadow {
  0% { opacity: 0.5; transform: translateX(-50%) scaleX(1); }
  100% { opacity: 0.8; transform: translateX(-50%) scaleX(1.1); }
}

/* Scene: granted-not-married (calm, dim-interior) */
.scn-granted-not-married {
  background: linear-gradient(180deg, #1f1c2e 0%, #141124 40%, #0d0a1a 100%), radial-gradient(ellipse at 50% 100%, #2a2344 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-granted-not-married .bg-shelf {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2f2844 0%, #1a1530 100%);
  animation: gn-shelf 20s ease-in-out infinite alternate;
}
.scn-granted-not-married .book-a {
  position: absolute;
  bottom: 42%;
  left: 15%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #6a5040 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(-4deg);
  box-shadow: 2px 0 4px rgba(0,0,0,0.4);
  animation: gn-book-a 12s ease-in-out infinite;
}
.scn-granted-not-married .book-b {
  position: absolute;
  bottom: 40%;
  left: 45%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #5a4a6a 0%, #2a1a3a 100%);
  border-radius: 2px;
  transform: rotate(2deg);
  box-shadow: -2px 0 4px rgba(0,0,0,0.4);
  animation: gn-book-b 14s ease-in-out infinite;
}
.scn-granted-not-married .lamp {
  position: absolute;
  bottom: 38%;
  left: 70%;
  width: 12px;
  height: 30px;
  background: linear-gradient(180deg, #b8945a 0%, #7a5a2a 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 0 0 8px rgba(180,130,60,0.5);
}
.scn-granted-not-married .desk {
  position: absolute;
  bottom: 0;
  left: 5%;
  right: 5%;
  height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
}
.scn-granted-not-married .figure {
  position: absolute;
  bottom: 38%;
  left: 32%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gn-figure 6s ease-in-out infinite;
}
.scn-granted-not-married .glow {
  position: absolute;
  bottom: 40%;
  left: 20%;
  width: 120px;
  height: 120px;
  background: radial-gradient(circle, rgba(200,180,120,0.2) 0%, transparent 70%);
  pointer-events: none;
  animation: gn-glow 8s ease-in-out infinite alternate;
}
@keyframes gn-shelf {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes gn-book-a {
  0%,100% { transform: rotate(-4deg) translate(0,0); }
  50% { transform: rotate(-3deg) translate(1px,-1px); }
}
@keyframes gn-book-b {
  0%,100% { transform: rotate(2deg) translate(0,0); }
  50% { transform: rotate(3deg) translate(-1px,-1px); }
}
@keyframes gn-figure {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-3deg) translateY(-1px); }
  50% { transform: rotate(0deg) translateY(-2px); }
  75% { transform: rotate(3deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes gn-glow {
  0% { opacity: 0.3; transform: scale(0.95); }
  50% { opacity: 0.5; transform: scale(1.05); }
  100% { opacity: 0.35; transform: scale(1); }
}

/* Scene: never-saw-painting (warm, dim-interior) */
.scn-never-saw-painting {
  background: linear-gradient(180deg, #2e1f13 0%, #1a0e08 50%, #0f0804 100%), radial-gradient(ellipse at 30% 80%, #4a2e1a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-never-saw-painting .bg-wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2215 0%, #1a0e08 100%);
  animation: np-wall 18s ease-in-out infinite alternate;
}
.scn-never-saw-painting .easel {
  position: absolute;
  bottom: 28%;
  left: 25%;
  width: 8px;
  height: 80px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 2px;
  transform: rotate(-8deg);
  box-shadow: 2px 0 4px rgba(0,0,0,0.4);
}
.scn-never-saw-painting .canvas {
  position: absolute;
  bottom: 28%;
  left: 27%;
  width: 60px;
  height: 70px;
  background: linear-gradient(135deg, #d4b89a 0%, #b89a7a 50%, #a07a5a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5), inset 0 0 20px rgba(0,0,0,0.2);
  transform: rotate(2deg);
  animation: np-canvas 10s ease-in-out infinite;
}
.scn-never-saw-painting .palette {
  position: absolute;
  bottom: 30%;
  left: 60%;
  width: 40px;
  height: 25px;
  background: linear-gradient(180deg, #6a4e30 0%, #4a321a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-never-saw-painting .brush {
  position: absolute;
  bottom: 32%;
  left: 62%;
  width: 4px;
  height: 40px;
  background: linear-gradient(180deg, #b08060 0%, #6a4a2a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  transform: rotate(-25deg);
  animation: np-brush 4s ease-in-out infinite alternate;
}
.scn-never-saw-painting .lantern {
  position: absolute;
  bottom: 20%;
  right: 15%;
  width: 14px;
  height: 30px;
  background: linear-gradient(180deg, #d4a060 0%, #a07040 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 4px rgba(200,150,80,0.6);
  animation: np-lantern 6s ease-in-out infinite;
}
.scn-never-saw-painting .figure {
  position: absolute;
  bottom: 28%;
  right: 40%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: np-figure 8s ease-in-out infinite;
}
.scn-never-saw-painting .glow {
  position: absolute;
  bottom: 20%;
  right: 15%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, rgba(200,150,80,0.3) 0%, transparent 70%);
  pointer-events: none;
  animation: np-glow 6s ease-in-out infinite alternate;
}
@keyframes np-wall {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes np-canvas {
  0%,100% { transform: rotate(2deg) translate(0,0); }
  50% { transform: rotate(1deg) translate(1px,-1px); }
}
@keyframes np-brush {
  0% { transform: rotate(-25deg); }
  50% { transform: rotate(-20deg); }
  100% { transform: rotate(-25deg); }
}
@keyframes np-lantern {
  0%,100% { transform: rotate(0deg); opacity: 0.8; }
  25% { transform: rotate(3deg); opacity: 1; }
  50% { transform: rotate(-2deg); opacity: 0.9; }
  75% { transform: rotate(1deg); opacity: 0.95; }
}
@keyframes np-figure {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-1px); }
  50% { transform: rotate(0deg) translateY(-2px); }
  75% { transform: rotate(-2deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes np-glow {
  0% { opacity: 0.3; transform: scale(0.95); }
  50% { opacity: 0.5; transform: scale(1.05); }
  100% { opacity: 0.35; transform: scale(1); }
}

/* Scene: who-says-most (calm, dim-interior) */
.scn-who-says-most {
  background: linear-gradient(180deg, #1e1b2a 0%, #12101c 40%, #0a0810 100%), radial-gradient(ellipse at 50% 80%, #2e2844 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-who-says-most .bg-room {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2640 0%, #141120 100%);
  animation: ws-room 20s ease-in-out infinite alternate;
}
.scn-who-says-most .mirror {
  position: absolute;
  bottom: 30%;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 80px;
  background: linear-gradient(135deg, #a89878 0%, #7a6a50 50%, #5a4a32 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(100,80,60,0.3), inset 0 0 30px rgba(0,0,0,0.4);
  overflow: hidden;
}
.scn-who-says-most .frame {
  position: absolute;
  bottom: 30%;
  left: 50%;
  transform: translateX(-50%);
  width: 66px;
  height: 86px;
  border: 3px solid #5a4a32;
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  pointer-events: none;
}
.scn-who-says-most .candle {
  position: absolute;
  bottom: 32%;
  left: 25%;
  width: 6px;
  height: 30px;
  background: linear-gradient(180deg, #c0a07a 0%, #7a5a3a 100%);
  border-radius: 2px;
}
.scn-who-says-most .flame {
  position: absolute;
  bottom: calc(32% + 30px);
  left: 25%;
  width: 8px;
  height: 12px;
  transform: translateX(-2px);
  background: radial-gradient(circle at 50% 20%, #ffdd88 0%, #e8a030 40%, #b06020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 12px 3px #e8a030, 0 0 24px 8px rgba(232,160,48,0.4);
  animation: ws-flame 2s ease-in-out infinite;
}
.scn-who-says-most .figure {
  position: absolute;
  bottom: 30%;
  left: 40%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ws-figure 7s ease-in-out infinite;
}
.scn-who-says-most .glow {
  position: absolute;
  bottom: 30%;
  left: 25%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, rgba(200,160,80,0.2) 0%, transparent 70%);
  pointer-events: none;
  animation: ws-glow 5s ease-in-out infinite alternate;
}
@keyframes ws-room {
  0% { opacity: 0.75; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}
@keyframes ws-flame {
  0% { transform: translateX(-2px) scaleY(1) rotate(-2deg); opacity: 0.9; }
  25% { transform: translateX(-2px) scaleY(1.1) rotate(2deg); opacity: 1; }
  50% { transform: translateX(-2px) scaleY(1) rotate(0deg); opacity: 0.95; }
  75% { transform: translateX(-2px) scaleY(0.9) rotate(-1deg); opacity: 0.9; }
  100% { transform: translateX(-2px) scaleY(1.05) rotate(1deg); opacity: 0.95; }
}
@keyframes ws-figure {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-2deg) translateY(-1px); }
  50% { transform: rotate(0deg) translateY(-2px); }
  75% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ws-glow {
  0% { opacity: 0.25; transform: scale(0.95); }
  50% { opacity: 0.4; transform: scale(1.05); }
  100% { opacity: 0.3; transform: scale(1); }
}

/* what-substance */
.scn-what-substance {
  background: linear-gradient(180deg, #1a1620 0%, #2a2230 40%, #3c2e3e 100%),
              radial-gradient(ellipse at 50% 80%, #3c2e3e 0%, transparent 60%);
}
.scn-what-substance .bg { position:absolute; inset:0; background: linear-gradient(135deg, #0f0d14 0%, #241e2c 50%, #1a1620 100%); }
.scn-what-substance .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a2230 0%, #1a1620 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.6); }
.scn-what-substance .mirror { position:absolute; top:18%; left:50%; width:120px; height:160px; margin-left:-60px; background: linear-gradient(135deg, #4a4460 0%, #6a6480 50%, #4a4460 100%); border-radius: 4px; box-shadow: 0 0 20px rgba(100,100,140,.3), inset 0 0 30px rgba(0,0,0,.4); transform: perspective(600px) rotateY(5deg); animation: ws-mirror 8s ease-in-out infinite alternate; }
.scn-what-substance .figure { position:absolute; bottom:22%; left:50%; width:40px; height:80px; margin-left:-20px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ws-figure 10s ease-in-out infinite; }
.scn-what-substance .shadow-a, .scn-what-substance .shadow-b { position:absolute; bottom:15%; width:36px; height:70px; background: rgba(10,10,20,.5); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(4px); }
.scn-what-substance .shadow-a { left:35%; animation: ws-shadow-a 12s ease-in-out infinite; }
.scn-what-substance .shadow-b { right:35%; animation: ws-shadow-b 12s ease-in-out infinite reverse; }
.scn-what-substance .lantern { position:absolute; bottom:30%; left:40%; width:8px; height:8px; background: radial-gradient(circle, #d4a860 0%, #b08040 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,.3); animation: ws-lantern 7s ease-in-out infinite alternate; }
.scn-what-substance .dust { position:absolute; top:20%; left:30%; width:4px; height:4px; background: rgba(200,180,150,.3); border-radius: 50%; filter: blur(2px); animation: ws-dust 20s linear infinite; }
@keyframes ws-mirror {
  0% { transform: perspective(600px) rotateY(3deg); box-shadow: 0 0 15px rgba(100,100,140,.2); }
  50% { transform: perspective(600px) rotateY(-3deg); box-shadow: 0 0 25px rgba(100,100,140,.5); }
  100% { transform: perspective(600px) rotateY(3deg); box-shadow: 0 0 15px rgba(100,100,140,.2); }
}
@keyframes ws-figure {
  0% { transform: translateX(0) scale(1); opacity: .8; }
  25% { transform: translateX(4px) scale(1.01); opacity: .9; }
  75% { transform: translateX(-4px) scale(1); opacity: .85; }
  100% { transform: translateX(0) scale(1); opacity: .8; }
}
@keyframes ws-shadow-a {
  0% { transform: translateX(0) scale(1); opacity: .4; }
  50% { transform: translateX(10px) scale(1.05); opacity: .6; }
  100% { transform: translateX(0) scale(1); opacity: .4; }
}
@keyframes ws-shadow-b {
  0% { transform: translateX(0) scale(1); opacity: .4; }
  50% { transform: translateX(-10px) scale(1.05); opacity: .6; }
  100% { transform: translateX(0) scale(1); opacity: .4; }
}
@keyframes ws-lantern {
  0% { box-shadow: 0 0 15px 4px #b08040; opacity: .7; }
  50% { box-shadow: 0 0 30px 10px #d4a860; opacity: 1; }
  100% { box-shadow: 0 0 18px 6px #b08040; opacity: .75; }
}
@keyframes ws-dust {
  0% { transform: translate(0, 0) scale(1); opacity: .3; }
  50% { transform: translate(20px, -30px) scale(1.5); opacity: .8; }
  100% { transform: translate(40px, -60px) scale(0.8); opacity: 0; }
}

/* item-rose-odour */
.scn-item-rose-odour {
  background: linear-gradient(180deg, #fef9e8 0%, #fce4c0 40%, #f0c890 100%),
              radial-gradient(ellipse at 50% 100%, #f0c890 0%, transparent 70%);
}
.scn-item-rose-odour .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #fef4d8 0%, #fce8c0 40%, #f0c890 100%); animation: ro-sky 15s ease-in-out infinite alternate; }
.scn-item-rose-odour .sun { position:absolute; top:8%; right:20%; width:70px; height:70px; background: radial-gradient(circle, #ffecb0 0%, #f0c070 100%); border-radius: 50%; box-shadow: 0 0 40px 10px #f0c070, 0 0 80px 30px rgba(240,192,112,.4); animation: ro-sun 20s ease-in-out infinite alternate; }
.scn-item-rose-odour .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; }
.scn-item-rose-odour .stem { position:absolute; bottom:35%; left:50%; width:6px; height:100px; margin-left:-3px; background: linear-gradient(180deg, #4a7a3a 0%, #2a5a2a 100%); border-radius: 3px; transform-origin: bottom center; animation: ro-stem 8s ease-in-out infinite; }
.scn-item-rose-odour .bloom { position:absolute; bottom:75%; left:50%; width:60px; height:50px; margin-left:-30px; background: radial-gradient(circle at 40% 40%, #d48a7a 0%, #b8786a 40%, #a06050 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 20px 6px rgba(180,100,80,.3); animation: ro-bloom 10s ease-in-out infinite; }
.scn-item-rose-odour .petal { position:absolute; bottom:78%; width:24px; height:20px; background: linear-gradient(135deg, #e8a090 0%, #c88070 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 4px rgba(0,0,0,.1); }
.scn-item-rose-odour .p1 { left:45%; transform-origin: bottom center; animation: ro-petal1 6s ease-in-out infinite; }
.scn-item-rose-odour .p2 { right:42%; transform-origin: bottom center; animation: ro-petal2 6s ease-in-out infinite reverse; }
.scn-item-rose-odour .thorn { position:absolute; bottom:50%; left:51%; width:4px; height:8px; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); border-radius: 0 0 50% 50%; transform: rotate(20deg); animation: ro-thorn 4s ease-in-out infinite; }
@keyframes ro-sky {
  0% { opacity: .85; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes ro-sun {
  0% { transform: translateY(0) scale(1); box-shadow: 0 0 30px 8px #f0c070; }
  50% { transform: translateY(-4px) scale(1.02); box-shadow: 0 0 50px 15px #f0c070; }
  100% { transform: translateY(0) scale(1); box-shadow: 0 0 30px 8px #f0c070; }
}
@keyframes ro-stem {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes ro-bloom {
  0% { transform: rotate(-2deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.01); }
  100% { transform: rotate(-2deg) scale(1); }
}
@keyframes ro-petal1 {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ro-petal2 {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ro-thorn {
  0% { opacity: .6; }
  50% { opacity: 1; }
  100% { opacity: .6; }
}

/* monument-rhyme */
.scn-monument-rhyme {
  background: linear-gradient(180deg, #1c1c2a 0%, #2a2a3c 40%, #3c3c4e 100%),
              radial-gradient(ellipse at 50% 30%, #4a4a5e 0%, transparent 60%);
}
.scn-monument-rhyme .wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3c 100%); }
.scn-monument-rhyme .pedestal { position:absolute; bottom:15%; left:50%; width:120px; height:60px; margin-left:-60px; background: linear-gradient(180deg, #5a5a6e 0%, #3a3a4e 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-monument-rhyme .statue { position:absolute; bottom:45%; left:50%; width:60px; height:100px; margin-left:-30px; background: linear-gradient(180deg, #7a7a8e 0%, #4a4a5e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: inset 0 -20px 30px rgba(0,0,0,.4); animation: mr-statue 12s ease-in-out infinite alternate; }
.scn-monument-rhyme .book { position:absolute; bottom:20%; left:45%; width:40px; height:30px; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: mr-book 9s ease-in-out infinite; }
.scn-monument-rhyme .light-beam { position:absolute; top:0; left:45%; width:30px; height:60%; background: linear-gradient(180deg, rgba(200,180,140,.3) 0%, transparent 100%); filter: blur(8px); animation: mr-light 15s ease-in-out infinite alternate; }
.scn-monument-rhyme .shadow { position:absolute; bottom:10%; left:30%; width:80px; height:50px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(10px); animation: mr-shadow 20s ease-in-out infinite; }
@keyframes mr-statue {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.005); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes mr-book {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes mr-light {
  0% { opacity: .3; }
  50% { opacity: .7; }
  100% { opacity: .3; }
}
@keyframes mr-shadow {
  0% { transform: scale(1); opacity: .5; }
  50% { transform: scale(1.05); opacity: .7; }
  100% { transform: scale(1); opacity: .5; }
}

/* sweet-love-renew */
.scn-sweet-love-renew {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a1a 40%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 60%, #5a3a2a 0%, transparent 70%);
}
.scn-sweet-love-renew .bg { position:absolute; inset:0; background: linear-gradient(135deg, #1c0e08 0%, #2a1a10 50%, #3a2a1a 100%); }
.scn-sweet-love-renew .candle { position:absolute; bottom:35%; left:50%; width:12px; height:40px; margin-left:-6px; background: linear-gradient(180deg, #d4c8a0 0%, #a09070 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 0 4px rgba(0,0,0,.3); animation: sl-candle 8s ease-in-out infinite; }
.scn-sweet-love-renew .flame { position:absolute; bottom:65%; left:50%; width:10px; height:20px; margin-left:-5px; background: radial-gradient(ellipse at 50% 20%, #ffe0a0 0%, #f0a030 60%, #803020 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 8px #f0a030, 0 0 40px 16px rgba(240,160,48,.4); animation: sl-flame 2s ease-in-out infinite; }
.scn-sweet-love-renew .figure-l, .scn-sweet-love-renew .figure-r { position:absolute; bottom:25%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-sweet-love-renew .figure-l { left:35%; animation: sl-figure-l 12s ease-in-out infinite; }
.scn-sweet-love-renew .figure-r { right:35%; animation: sl-figure-r 12s ease-in-out infinite reverse; }
.scn-sweet-love-renew .glow { position:absolute; bottom:40%; left:45%; width:30px; height:40px; background: radial-gradient(circle, rgba(255,200,100,.3) 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: sl-glow 6s ease-in-out infinite alternate; }
.scn-sweet-love-renew .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1c0e08 100%); border-radius: 60% 40% 0 0 / 40% 20% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.5); }
@keyframes sl-candle {
  0% { transform: scaleY(1); opacity: .9; }
  50% { transform: scaleY(1.02); opacity: 1; }
  100% { transform: scaleY(1); opacity: .9; }
}
@keyframes sl-flame {
  0% { transform: scale(1) rotate(-2deg); }
  25% { transform: scale(1.03, 1.08) rotate(1deg); }
  75% { transform: scale(.97, 1.05) rotate(-1deg); }
  100% { transform: scale(1) rotate(0); }
}
@keyframes sl-figure-l {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(0); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes sl-figure-r {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-4px) rotate(0); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes sl-glow {
  0% { opacity: .3; transform: scale(1); }
  50% { opacity: .7; transform: scale(1.2); }
  100% { opacity: .3; transform: scale(1); }
}

/* orient-light – dawn, warm */
.scn-orient-light {
  background:
    linear-gradient(180deg, #f5d5a0 0%, #f0b87a 30%, #d98a5a 50%, #b86a3e 70%, #6a3e2a 100%),
    radial-gradient(ellipse at 50% 0%, #fff4d0 0%, transparent 60%);
}
.scn-orient-light .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #ffd9a0 0%, #f5c080 60%, transparent);
  animation: ol-sky 12s ease-in-out infinite alternate;
}
.scn-orient-light .sun {
  position:absolute; top:10%; left:50%; width:80px; height:80px;
  transform:translateX(-50%);
  background: radial-gradient(circle, #ffe680 0%, #f0a040 50%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 60px 20px #f0a040, 0 0 120px 40px rgba(240,160,64,.5);
  animation: ol-sun 8s ease-in-out infinite alternate;
}
.scn-orient-light .rays {
  position:absolute; top:12%; left:0; right:0; height:50%;
  background: conic-gradient(from 90deg at 50% 0%, transparent 0deg, rgba(255,200,100,.2) 20deg, transparent 30deg, rgba(255,200,100,.15) 40deg, transparent 80deg, rgba(255,200,100,.1) 100deg, transparent 120deg);
  animation: ol-rays 15s linear infinite;
}
.scn-orient-light .horizon {
  position:absolute; bottom:30%; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 40% 60% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
  animation: ol-horizon 10s ease-in-out infinite alternate;
}
.scn-orient-light .tree {
  position:absolute; bottom:30%; left:15%; width:20px; height:80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: ol-tree 6s ease-in-out infinite;
}
.scn-orient-light .bird {
  position:absolute; top:18%; left:30%; width:30px; height:8px;
  background: #3a2a1a;
  border-radius: 50%;
  filter: blur(1px);
  animation: ol-bird 20s linear infinite;
}
.scn-orient-light .reflection {
  position:absolute; bottom:15%; left:0; right:0; height:15%;
  background: linear-gradient(180deg, rgba(200,160,80,.15) 0%, rgba(150,100,40,.05) 70%);
  border-radius: 50%;
  animation: ol-reflect 4s ease-in-out infinite alternate;
}
@keyframes ol-sky       { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ol-sun       { 0% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-50%) scale(1.1) translateY(-4px) } 100% { transform:translateX(-50%) scale(1.05) } }
@keyframes ol-rays      { 0% { opacity:.3; transform:rotate(0deg) } 50% { opacity:.6; transform:rotate(2deg) } 100% { opacity:.3; transform:rotate(0deg) } }
@keyframes ol-horizon   { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes ol-tree      { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-1deg) } }
@keyframes ol-bird      { 0% { transform: translateX(0) translateY(0) rotate(5deg) } 50% { transform: translateX(40px) translateY(-5px) rotate(-5deg) } 100% { transform: translateX(80px) translateY(0) rotate(3deg) } }
@keyframes ol-reflect   { 0% { opacity:.4; transform: translateY(0) } 50% { opacity:.6; transform: translateY(2px) } 100% { opacity:.3; transform: translateY(0) } }

/* music-to-hear – dim interior, calm */
.scn-music-to-hear {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0a0a1a 100%),
    radial-gradient(ellipse at 70% 80%, #4a3a2a 0%, transparent 60%);
}
.scn-music-to-hear .room-bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 70%, #0a0a1a 100%);
  animation: mh-bg 20s ease-in-out infinite alternate;
}
.scn-music-to-hear .candle {
  position:absolute; bottom:20%; left:35%; width:12px; height:40px;
  background: linear-gradient(180deg, #c0a070 0%, #8a6a40 100%);
  border-radius: 10% 10% 5% 5%;
  transform: rotate(-5deg);
}
.scn-music-to-hear .flame {
  position:absolute; bottom:calc(20% + 40px); left:35%; width:10px; height:20px;
  margin-left:1px;
  background: radial-gradient(circle, #ffe080 0%, #e0a030 40%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  box-shadow: 0 0 20px 8px #e0a030, 0 0 40px 16px rgba(224,160,48,.4);
  animation: mh-flame 3s ease-in-out infinite alternate;
}
.scn-music-to-hear .stand {
  position:absolute; bottom:22%; left:45%; width:30px; height:55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 0 0;
  transform: skewX(-2deg);
}
.scn-music-to-hear .figure {
  position:absolute; bottom:18%; left:50%; width:20px; height:60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mh-figure 8s ease-in-out infinite;
}
.scn-music-to-hear .lute {
  position:absolute; bottom:20%; left:55%; width:40px; height:20px;
  background: radial-gradient(ellipse at 40% 50%, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 50%;
  transform: rotate(-20deg);
  animation: mh-lute 6s ease-in-out infinite alternate;
}
.scn-music-to-hear .notes {
  position:absolute; bottom:30%; left:60%; width:6px; height:6px;
  background: #b0a080;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(176,160,128,.4);
  animation: mh-notes 5s ease-in-out infinite;
}
.scn-music-to-hear .notes::before {
  content:''; position:absolute; top:-4px; left:6px; width:4px; height:10px;
  background: #b0a080; border-radius: 40%;
}
@keyframes mh-bg     { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes mh-flame  { 0% { transform: scaleY(1) translateY(0); opacity:.9 } 50% { transform: scaleY(1.2) translateY(-2px) rotate(-3deg); opacity:1 } 100% { transform: scaleY(1) translateY(0); opacity:.85 } }
@keyframes mh-figure { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(-1deg) } }
@keyframes mh-lute   { 0% { transform: rotate(-20deg) scale(1) } 50% { transform: rotate(-15deg) scale(1.02) } 100% { transform: rotate(-20deg) scale(1) } }
@keyframes mh-notes  { 0% { transform: translate(0,0) scale(1); opacity:.6 } 25% { transform: translate(10px,-10px) scale(1.3); opacity:1 } 50% { transform: translate(20px,-20px) scale(1); opacity:.7 } 75% { transform: translate(30px,-15px) scale(.9); opacity:.5 } 100% { transform: translate(40px,-5px) scale(1); opacity:.6 } }

/* widow-weep – dark, dim interior */
.scn-widow-weep {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a2a3a 70%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 90%, #2a2a3a 0%, transparent 60%);
}
.scn-widow-weep .bg-dark {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%);
  animation: ww-bg 30s ease-in-out infinite alternate;
}
.scn-widow-weep .window {
  position:absolute; top:10%; right:20%; width:60px; height:80px;
  background: radial-gradient(ellipse at 50% 50%, #4a6a8a 0%, #1a2a3a 70%);
  border: 4px solid #2a2a3a;
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(100,150,200,.1);
}
.scn-widow-weep .moonlight {
  position:absolute; bottom:0; right:20%; width:80px; height:40%;
  background: linear-gradient(180deg, rgba(100,150,200,.08) 0%, transparent 100%);
  transform: skewX(-10deg);
  filter: blur(10px);
  animation: ww-moon 15s ease-in-out infinite alternate;
}
.scn-widow-weep .figure {
  position:absolute; bottom:10%; left:40%; width:22px; height:70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ww-figure 10s ease-in-out infinite;
}
.scn-widow-weep .tears {
  position:absolute; bottom:38%; left:40%; width:4px; height:6px;
  background: radial-gradient(circle, #7090b0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(112,144,176,.5);
  animation: ww-tears 4s ease-in-out infinite;
}
.scn-widow-weep .veil {
  position:absolute; bottom:10%; left:36%; width:30px; height:40px;
  background: linear-gradient(180deg, rgba(30,30,40,.6) 0%, transparent 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(4px);
  animation: ww-veil 12s ease-in-out infinite alternate;
}
@keyframes ww-bg     { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ww-moon   { 0% { opacity:.3; transform: skewX(-10deg) translateY(0) } 50% { opacity:.5; transform: skewX(-12deg) translateY(-4px) } 100% { opacity:.4; transform: skewX(-10deg) translateY(0) } }
@keyframes ww-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ww-tears  { 0% { transform: translateY(0) scale(1); opacity:.6 } 50% { transform: translateY(10px) scale(.8); opacity:.2 } 100% { transform: translateY(0) scale(1); opacity:.6 } }
@keyframes ww-veil   { 0% { transform: scaleY(1) rotate(0deg) } 50% { transform: scaleY(1.1) rotate(2deg) } 100% { transform: scaleY(1) rotate(-1deg) } }

/* for-shame-denial – tense, dim interior */
.scn-for-shame-denial {
  background:
    linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 30% 20%, #2a2a4a 0%, transparent 60%);
}
.scn-for-shame-denial .bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 70%, #1a1a2a 100%);
  animation: fsd-bg 8s ease-in-out infinite alternate;
}
.scn-for-shame-denial .light-shaft {
  position:absolute; top:0; left:20%; width:30px; height:100%;
  background: linear-gradient(180deg, rgba(200,180,120,.15) 0%, transparent 100%);
  transform: skewX(-15deg);
  filter: blur(5px);
  animation: fsd-shaft 2s ease-in-out infinite alternate;
}
.scn-for-shame-denial .shadow-wall {
  position:absolute; bottom:0; left:15%; width:70%; height:60%;
  background: linear-gradient(135deg, rgba(0,0,0,.6) 0%, transparent 80%);
  clip-path: polygon(0 100%, 50% 10%, 100% 100%);
  opacity:.5;
  animation: fsd-shadow 4s ease-in-out infinite alternate;
}
.scn-for-shame-denial .figure-a {
  position:absolute; bottom:20%; left:35%; width:18px; height:70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fsd-figa 3s ease-in-out infinite;
}
.scn-for-shame-denial .figure-b {
  position:absolute; bottom:20%; left:55%; width:18px; height:70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fsd-figb 3.5s ease-in-out infinite;
}
.scn-for-shame-denial .dagger {
  position:absolute; bottom:38%; left:45%; width:4px; height:20px;
  background: linear-gradient(180deg, #a0a0b0 0%, #606080 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-30deg);
  box-shadow: 0 0 6px 2px rgba(160,160,176,.3);
  animation: fsd-dagger 1.5s ease-in-out infinite alternate;
}
.scn-for-shame-denial .table {
  position:absolute; bottom:15%; left:30%; width:60px; height:8px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0;
  animation: fsd-table 5s ease-in-out infinite alternate;
}
@keyframes fsd-bg     { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes fsd-shaft  { 0% { opacity:.2; transform: skewX(-15deg) } 50% { opacity:.4; transform: skewX(-20deg) } 100% { opacity:.2; transform: skewX(-15deg) } }
@keyframes fsd-shadow { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) translateX(-5px) } 100% { transform: scaleY(.95) } }
@keyframes fsd-figa   { 0% { transform: rotate(-3deg) translateX(0) } 25% { transform: rotate(2deg) translateX(3px) } 50% { transform: rotate(-2deg) translateX(-2px) } 75% { transform: rotate(1deg) translateX(4px) } 100% { transform: rotate(-3deg) translateX(0) } }
@keyframes fsd-figb   { 0% { transform: rotate(2deg) translateX(0) } 25% { transform: rotate(-1deg) translateX(-3px) } 50% { transform: rotate(3deg) translateX(2px) } 75% { transform: rotate(-2deg) translateX(-4px) } 100% { transform: rotate(2deg) translateX(0) } }
@keyframes fsd-dagger { 0% { transform: rotate(-30deg) scale(1) } 50% { transform: rotate(-40deg) scaleY(1.1) } 100% { transform: rotate(-30deg) scale(1) } }
@keyframes fsd-table  { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }

.scn-live-supposing-true { 
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a2a2a 100%), radial-gradient(ellipse at 50% 100%, #4a3a3a 0%, transparent 70%);
}
.scn-live-supposing-true .bg-room { 
  position:absolute; inset:0; background: linear-gradient(180deg, #1e1e32 0%, #2c2c40 60%, #1a1a2a 100%); 
  animation: lst-bg 12s ease-in-out infinite alternate;
}
.scn-live-supposing-true .window { 
  position:absolute; top:15%; left:12%; width:30%; height:40%; background: linear-gradient(135deg, #3a4a6e 0%, #2a3a5e 100%); 
  border-radius: 4px; box-shadow: inset 0 0 20px #1a2a4e; 
  animation: lst-window 8s ease-in-out infinite alternate;
}
.scn-live-supposing-true .table { 
  position:absolute; bottom:20%; left:35%; width:35%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); 
  border-radius: 2px 2px 0 0; 
  animation: lst-table 6s ease-in-out infinite;
}
.scn-live-supposing-true .candle { 
  position:absolute; bottom:28%; left:45%; width:10px; height:45px; background: linear-gradient(180deg, #e8d8b0 0%, #c8a880 50%, #a08060 100%); 
  border-radius: 5px 5px 2px 2px; box-shadow: 0 0 30px #ffd080; 
  animation: lst-candle 3s ease-in-out infinite alternate;
}
.scn-live-supposing-true .figure { 
  position:absolute; bottom:20%; left:52%; width:40px; height:100px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); 
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; 
  animation: lst-figure 5s ease-in-out infinite;
}
.scn-live-supposing-true .portrait { 
  position:absolute; top:12%; right:15%; width:50px; height:70px; background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2a 100%); 
  border: 4px solid #5a4a3a; border-radius: 20% 20% 10% 10%; 
  animation: lst-portrait 7s ease-in-out infinite alternate;
}
.scn-live-supposing-true .shadow { 
  position:absolute; bottom:18%; left:40%; width:80px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); 
  animation: lst-shadow 5s ease-in-out infinite alternate;
}
@keyframes lst-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes lst-window { 0% { transform:scale(1) } 50% { transform:scale(1.02) } 100% { transform:scale(0.98) } }
@keyframes lst-table { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes lst-candle { 0% { transform:scaleY(1) translateY(0); box-shadow:0 0 20px #ffd080; } 50% { transform:scaleY(1.05) translateY(-2px); box-shadow:0 0 40px #ffd080; } 100% { transform:scaleY(1) translateY(0); box-shadow:0 0 25px #ffd080; } }
@keyframes lst-figure { 0% { transform:translateX(0) rotate(-2deg) } 30% { transform:translateX(4px) rotate(1deg) } 60% { transform:translateX(0) rotate(-1deg) } 100% { transform:translateX(-3px) rotate(2deg) } }
@keyframes lst-portrait { 0% { transform:rotate(-3deg) } 50% { transform:rotate(3deg) } 100% { transform:rotate(-1deg) } }
@keyframes lst-shadow { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }

.scn-power-to-hurt { 
  background: linear-gradient(180deg, #1c1c2c 0%, #282840 50%, #1e1e30 100%), radial-gradient(ellipse at 50% 0%, #3a3a5e 0%, transparent 70%);
}
.scn-power-to-hurt .bg-deep { 
  position:absolute; inset:0; background: linear-gradient(180deg, #1e1e32 0%, #2a2a44 60%, #16162a 100%); 
  animation: pth-bg 15s ease-in-out infinite alternate;
}
.scn-power-to-hurt .bg-mid { 
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a44 0%, #1a1a30 100%); 
  border-radius: 20% 20% 0 0; 
  animation: pth-floor 10s ease-in-out infinite alternate;
}
.scn-power-to-hurt .column-left { 
  position:absolute; top:0; left:12%; width:6%; height:100%; background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%); 
  border-radius: 6px; box-shadow: inset -4px 0 8px rgba(0,0,0,0.5); 
  animation: pth-column 20s ease-in-out infinite alternate;
}
.scn-power-to-hurt .column-right { 
  position:absolute; top:0; right:12%; width:6%; height:100%; background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%); 
  border-radius: 6px; box-shadow: inset 4px 0 8px rgba(0,0,0,0.5); 
  animation: pth-column 20s ease-in-out infinite alternate-reverse;
}
.scn-power-to-hurt .statue { 
  position:absolute; bottom:30%; left:50%; width:60px; height:130px; transform:translateX(-50%); 
  background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3e 50%, #1a1a2e 100%); 
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; 
  box-shadow: inset -6px 0 12px rgba(0,0,0,0.6); 
  animation: pth-statue 8s ease-in-out infinite alternate;
}
.scn-power-to-hurt .light-beam { 
  position:absolute; top:0; left:40%; width:20%; height:70%; 
  background: linear-gradient(180deg, rgba(255,220,150,0.15) 0%, rgba(255,220,150,0) 100%); 
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%); 
  animation: pth-light 6s ease-in-out infinite alternate;
}
.scn-power-to-hurt .dust-mote { 
  position:absolute; top:20%; left:45%; width:4px; height:4px; background: rgba(255,220,150,0.6); border-radius:50%; 
  filter: blur(2px); 
  animation: pth-dust 18s linear infinite;
}
@keyframes pth-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pth-floor { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes pth-column { 0% { transform:scaleY(1) } 50% { transform:scaleY(0.98) } 100% { transform:scaleY(1) } }
@keyframes pth-statue { 0% { transform:translateX(-50%) rotate(-1deg) } 50% { transform:translateX(-50%) rotate(1deg) translateY(-2px) } 100% { transform:translateX(-50%) rotate(0) } }
@keyframes pth-light { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }
@keyframes pth-dust { 0% { transform:translate(0,0) scale(1) } 25% { transform:translate(10px,-20px) scale(1.5) } 50% { transform:translate(-5px,-40px) scale(0.8) } 75% { transform:translate(8px,-60px) scale(1.2) } 100% { transform:translate(0,-80px) scale(1) opacity:0 } }

.scn-sweet-and-lovely-shame { 
  background: linear-gradient(180deg, #1a1a24 0%, #2c1c20 50%, #1a1018 100%), radial-gradient(ellipse at 50% 80%, #3a2028 0%, transparent 70%);
}
.scn-sweet-and-lovely-shame .bg-dark { 
  position:absolute; inset:0; background: linear-gradient(135deg, #1c1820 0%, #2a1a22 100%); 
  animation: sals-bg 6s ease-in-out infinite alternate;
}
.scn-sweet-and-lovely-shame .stem { 
  position:absolute; bottom:10%; left:50%; width:6px; height:30%; transform:translateX(-50%); 
  background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%); border-radius: 2px; 
  animation: sals-stem 5s ease-in-out infinite;
}
.scn-sweet-and-lovely-shame .leaf { 
  position:absolute; bottom:30%; left:45%; width:40px; height:18px; 
  background: linear-gradient(90deg, #3a4a2a 0%, #4a5a3a 100%); border-radius: 50% 50% 50% 0; 
  transform-origin: right center; 
  animation: sals-leaf 4s ease-in-out infinite alternate;
}
.scn-sweet-and-lovely-shame .petal-outer { 
  position:absolute; bottom:40%; left:50%; width:60px; height:60px; transform:translateX(-50%); 
  background: radial-gradient(ellipse, #784a3a 0%, #5a2a1a 100%); border-radius: 60% 40% 50% 50%; 
  animation: sals-petal-outer 3s ease-in-out infinite alternate;
}
.scn-sweet-and-lovely-shame .petal-inner { 
  position:absolute; bottom:42%; left:50%; width:40px; height:40px; transform:translateX(-50%); 
  background: radial-gradient(ellipse, #b86858 0%, #9a4838 100%); border-radius: 60% 40% 50% 50%; 
  animation: sals-petal-inner 3s ease-in-out infinite alternate-reverse;
}
.scn-sweet-and-lovely-shame .canker { 
  position:absolute; bottom:45%; left:52%; width:16px; height:16px; 
  background: radial-gradient(circle, #1a0a0a 0%, #2c1414 50%, transparent 100%); border-radius:50%; 
  box-shadow: 0 0 10px #2c1414; 
  animation: sals-canker 2s ease-in-out infinite alternate;
}
.scn-sweet-and-lovely-shame .glint { 
  position:absolute; bottom:48%; left:48%; width:6px; height:6px; 
  background: radial-gradient(circle, rgba(255,200,150,0.8) 0%, transparent 100%); border-radius:50%; 
  animation: sals-glint 2.5s ease-in-out infinite;
}
@keyframes sals-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sals-stem { 0% { transform:translateX(-50%) rotate(-2deg) } 50% { transform:translateX(-50%) rotate(2deg) } 100% { transform:translateX(-50%) rotate(-1deg) } }
@keyframes sals-leaf { 0% { transform:rotate(-20deg) } 50% { transform:rotate(0deg) } 100% { transform:rotate(20deg) } }
@keyframes sals-petal-outer { 0% { transform:translateX(-50%) scale(1) rotate(-5deg) } 50% { transform:translateX(-50%) scale(1.05) rotate(0) } 100% { transform:translateX(-50%) scale(0.95) rotate(5deg) } }
@keyframes sals-petal-inner { 0% { transform:translateX(-50%) scale(1) rotate(3deg) } 50% { transform:translateX(-50%) scale(0.95) rotate(-3deg) } 100% { transform:translateX(-50%) scale(1) rotate(0) } }
@keyframes sals-canker { 0% { transform:scale(1); opacity:0.7 } 50% { transform:scale(1.3); opacity:1 } 100% { transform:scale(1); opacity:0.8 } }
@keyframes sals-glint { 0% { opacity:0; transform:scale(0.5) } 30% { opacity:1; transform:scale(1.2) } 60% { opacity:0.6; transform:scale(1) } 100% { opacity:0; transform:scale(0.5) } }

.scn-fault-youth-wantonness { 
  background: linear-gradient(180deg, #1e1e2a 0%, #2a2a38 50%, #1a1a24 100%), radial-gradient(ellipse at 50% 0%, #3a2a3e 0%, transparent 70%);
}
.scn-fault-youth-wantonness .bg-curtain { 
  position:absolute; inset:0; background: linear-gradient(135deg, #1c1822 0%, #2a2030 100%); 
  animation: fyw-bg 15s ease-in-out infinite alternate;
}
.scn-fault-youth-wantonness .hand { 
  position:absolute; bottom:20%; left:50%; width:80px; height:100px; transform:translateX(-50%); 
  background: linear-gradient(180deg, #2a1a18 0%, #1a0e0c 100%); 
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; 
  transform-origin: bottom center; 
  animation: fyw-hand 8s ease-in-out infinite alternate;
}
.scn-fault-youth-wantonness .ring-band { 
  position:absolute; bottom:55%; left:50%; width:30px; height:8px; transform:translateX(-50%); 
  background: linear-gradient(90deg, #5a4a3a 0%, #8a6a4a 50%, #5a4a3a 100%); 
  border-radius: 4px; 
  animation: fyw-ring 6s ease-in-out infinite alternate;
}
.scn-fault-youth-wantonness .jewel { 
  position:absolute; bottom:60%; left:50%; width:18px; height:18px; transform:translateX(-50%); 
  background: radial-gradient(circle at 40% 40%, #c8a0e0 0%, #7040a0 50%, #402060 100%); 
  border-radius: 50%; box-shadow: 0 0 20px rgba(120,60,160,0.8), 0 0 40px rgba(120,60,160,0.4); 
  animation: fyw-jewel 3s ease-in-out infinite alternate;
}
.scn-fault-youth-wantonness .spotlight { 
  position:absolute; top:0; left:30%; width:40%; height:60%; 
  background: linear-gradient(180deg, rgba(200,180,240,0.1) 0%, transparent 100%); 
  clip-path: polygon(30% 0, 70% 0, 60% 100%, 40% 100%); 
  animation: fyw-spotlight 10s ease-in-out infinite alternate;
}
.scn-fault-youth-wantonness .shadow-hand { 
  position:absolute; bottom:15%; left:45%; width:100px; height:30px; 
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); 
  animation: fyw-shadow 8s ease-in-out infinite alternate;
}
@keyframes fyw-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes fyw-hand { 0% { transform:translateX(-50%) rotate(-3deg) } 50% { transform:translateX(-50%) rotate(3deg) translateY(-2px) } 100% { transform:translateX(-50%) rotate(-1deg) } }
@keyframes fyw-ring { 0% { transform:translateX(-50%) scaleX(1) } 50% { transform:translateX(-50%) scaleX(1.05) } 100% { transform:translateX(-50%) scaleX(0.95) } }
@keyframes fyw-jewel { 0% { transform:translateX(-50%) scale(1) rotate(-5deg); box-shadow:0 0 15px rgba(120,60,160,0.6); } 50% { transform:translateX(-50%) scale(1.1) rotate(5deg); box-shadow:0 0 35px rgba(120,60,160,0.9); } 100% { transform:translateX(-50%) scale(1) rotate(0); box-shadow:0 0 20px rgba(120,60,160,0.7); } }
@keyframes fyw-spotlight { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.3 } }
@keyframes fyw-shadow { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.1) } 100% { transform:scaleX(0.9) } }

.scn-summer-day-compare {
  background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 30%, #f5deb3 60%, #f4a460 100%), radial-gradient(ellipse at 50% 0%, #ffd700 0%, transparent 60%);
}
.scn-summer-day-compare .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 70%);
  animation: sc1-sky 12s ease-in-out infinite alternate;
}
.scn-summer-day-compare .sun {
  position: absolute; top: 10%; left: 50%; width: 60px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd700 0%, #ffa500 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ffd700, 0 0 80px 40px rgba(255, 215, 0, 0.4);
  animation: sc1-sun-pulse 4s ease-in-out infinite alternate;
}
.scn-summer-day-compare .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #228b22 0%, #006400 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0, 0, 0, 0.3);
  animation: sc1-hills 18s ease-in-out infinite alternate;
}
.scn-summer-day-compare .tree-a,
.scn-summer-day-compare .tree-b {
  position: absolute; bottom: 35%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #8b4513 0%, #4a2e1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
}
.scn-summer-day-compare .tree-a { left: 20%; animation: sc1-tree-sway 6s ease-in-out infinite; }
.scn-summer-day-compare .tree-b { right: 25%; animation: sc1-tree-sway 7s ease-in-out infinite reverse; }
.scn-summer-day-compare .figure-shadow {
  position: absolute; bottom: 32%; left: 45%; width: 40px; height: 80px;
  background: rgba(0, 0, 0, 0.2);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sc1-shadow-slide 10s ease-in-out infinite alternate;
}
.scn-summer-day-compare .figure {
  position: absolute; bottom: 32%; left: 45%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2e1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(10px) scale(0.95);
  animation: sc1-figure-walk 8s ease-in-out infinite;
}
.scn-summer-day-compare .cloud-a,
.scn-summer-day-compare .cloud-b {
  position: absolute; width: 130px; height: 30px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.2) 100%);
  border-radius: 50%; filter: blur(8px);
}
.scn-summer-day-compare .cloud-a { top: 15%; left: -20%; animation: sc1-drift-a 45s linear infinite; }
.scn-summer-day-compare .cloud-b { top: 25%; right: -20%; width: 100px; height: 20px; animation: sc1-drift-b 55s linear infinite; }

@keyframes sc1-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes sc1-sun-pulse { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 30px 15px #ffd700; } 50% { transform: translateX(-50%) scale(1.08); box-shadow: 0 0 50px 25px #ffa500; } 100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 35px 18px #ffd700; } }
@keyframes sc1-hills { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes sc1-tree-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-2deg); } }
@keyframes sc1-shadow-slide { 0% { transform: translateX(-10px) scaleX(1); opacity: 0.4; } 50% { transform: translateX(10px) scaleX(0.9); opacity: 0.6; } 100% { transform: translateX(-10px) scaleX(1); opacity: 0.4; } }
@keyframes sc1-figure-walk { 0% { transform: translateX(10px) rotate(-1deg); } 25% { transform: translateX(16px) rotate(1deg); } 50% { transform: translateX(22px) rotate(-1deg); } 75% { transform: translateX(28px) rotate(1deg); } 100% { transform: translateX(34px) rotate(0deg); } }
@keyframes sc1-drift-a { 0% { transform: translateX(-100px); } 100% { transform: translateX(calc(100vw + 100px)); } }
@keyframes sc1-drift-b { 0% { transform: translateX(calc(100vw + 80px)); } 100% { transform: translateX(-80px); } }

.scn-devouring-time {
  background: linear-gradient(180deg, #1a1a2e 0%, #2d1b00 30%, #3a2a1a 50%, #0d0d0d 100%), radial-gradient(ellipse at 50% 0%, #ff8c00 0%, transparent 60%);
}
.scn-devouring-time .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #e88d1a 0%, #b05e0a 40%, #3a1a00 100%);
  animation: dt2-sky 15s ease-in-out infinite alternate;
}
.scn-devouring-time .sun-harsh {
  position: absolute; top: 10%; right: 30%; width: 70px; height: 70px;
  background: radial-gradient(circle, #ff4500 0%, #ff8c00 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 30px #ff4500, 0 0 100px 50px rgba(255, 69, 0, 0.5);
  animation: dt2-sun-pulse 5s ease-in-out infinite alternate;
}
.scn-devouring-time .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a120a 100%);
  box-shadow: inset 0 20px 40px rgba(0, 0, 0, 0.6);
  animation: dt2-ground-crack 20s ease-in-out infinite;
}
.scn-devouring-time .sundial {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 80px;
  background: radial-gradient(circle, #6b5b4b 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.5), 0 10px 20px rgba(0,0,0,0.8);
}
.scn-devouring-time .shadow-hand {
  position: absolute; bottom: 35%; left: 55%; width: 10px; height: 50px;
  background: #1a1a1a;
  border-radius: 0 0 40% 40%;
  transform-origin: bottom center;
  animation: dt2-shadow-sweep 12s linear infinite;
}
.scn-devouring-time .lion-shadow {
  position: absolute; bottom: 20%; left: 20%; width: 100px; height: 60px;
  background: rgba(0, 0, 0, 0.4);
  border-radius: 50% 50% 40% 40%;
  filter: blur(6px);
  animation: dt2-lion-creep 14s ease-in-out infinite alternate;
}
.scn-devouring-time .dust {
  position: absolute; width: 4px; height: 4px;
  background: #c0c0c0; border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(192, 192, 192, 0.3);
}
.scn-devouring-time .motes { top: 30%; left: 30%; animation: dt2-dust-float 8s ease-in-out infinite; }
.scn-devouring-time .motes-b { top: 40%; left: 60%; animation: dt2-dust-float 12s ease-in-out infinite reverse; }

@keyframes dt2-sky { 0% { background: linear-gradient(180deg, #e88d1a 0%, #b05e0a 40%, #3a1a00 100%); } 50% { background: linear-gradient(180deg, #aa5500 0%, #7a3a00 40%, #1a0a00 100%); } 100% { background: linear-gradient(180deg, #ff7700 0%, #cc6600 40%, #442200 100%); } }
@keyframes dt2-sun-pulse { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: 0.9; } }
@keyframes dt2-ground-crack { 0% { transform: translateY(0); } 50% { transform: translateY(2px) scaleY(0.98); } 100% { transform: translateY(0); } }
@keyframes dt2-shadow-sweep { 0% { transform: rotate(-90deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(90deg); } }
@keyframes dt2-lion-creep { 0% { transform: translateX(-20px) scale(0.9); opacity: 0.3; } 50% { transform: translateX(0) scale(1.1); opacity: 0.6; } 100% { transform: translateX(20px) scale(0.9); opacity: 0.3; } }
@keyframes dt2-dust-float { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 50% { transform: translate(20px, -30px) scale(1.5); opacity: 1; } 100% { transform: translate(40px, -60px) scale(0.5); opacity: 0; } }

.scn-woman's-face {
  background: linear-gradient(180deg, #f5e6d3 0%, #e3d1b9 40%, #c6b097 100%), radial-gradient(ellipse at 50% 50%, #ffd9b3 0%, transparent 70%);
}
.scn-woman's-face .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8d5b8 0%, #d4bfa0 100%);
  box-shadow: inset 0 0 50px rgba(0, 0, 0, 0.2);
  animation: wf3-wall-fade 8s ease-in-out infinite alternate;
}
.scn-woman's-face .window {
  position: absolute; top: 10%; right: 15%; width: 120px; height: 150px;
  background: linear-gradient(180deg, #b0d4f0 0%, #7bade0 100%);
  border: 6px solid #6b4226;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3), 0 4px 8px rgba(0,0,0,0.2);
  animation: wf3-window-light 6s ease-in-out infinite alternate;
}
.scn-woman's-face .easel {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 120px;
  background: linear-gradient(180deg, #8b6040 0%, #5a3820 100%);
  border-radius: 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-woman's-face .canvas {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 90px;
  background: linear-gradient(180deg, #faf0e6 0%, #eaddc5 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.1), 0 4px 8px rgba(0,0,0,0.2);
  animation: wf3-canvas-glow 5s ease-in-out infinite alternate;
}
.scn-woman's-face .palette {
  position: absolute; bottom: 20%; left: 55%; width: 50px; height: 30px;
  background: radial-gradient(circle, #c08a64 0%, #8b6040 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: wf3-palette-shake 7s ease-in-out infinite;
}
.scn-woman's-face .figure-profile {
  position: absolute; bottom: 28%; left: 50%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-70px) scaleX(-1);
  animation: wf3-figure-breathe 4s ease-in-out infinite;
}
.scn-woman's-face .mirror {
  position: absolute; top: 15%; left: 20%; width: 80px; height: 100px;
  background: radial-gradient(circle, #c0c0c0 0%, #808080 100%);
  border: 4px solid #6b4226;
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  opacity: 0.4;
  animation: wf3-mirror-flicker 12s ease-in-out infinite;
}
.scn-woman's-face .brush {
  position: absolute; bottom: 30%; left: 58%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #8b6040 0%, #4a2e1a 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  animation: wf3-brush-stroke 6s ease-in-out infinite alternate;
}

@keyframes wf3-wall-fade { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes wf3-window-light { 0% { background: linear-gradient(180deg, #b0d4f0 0%, #7bade0 100%); } 50% { background: linear-gradient(180deg, #d0e8ff 0%, #9ac0e8 100%); } 100% { background: linear-gradient(180deg, #b0d4f0 0%, #7bade0 100%); } }
@keyframes wf3-canvas-glow { 0% { box-shadow: inset 0 0 10px rgba(0,0,0,0.1), 0 4px 8px rgba(0,0,0,0.2); } 50% { box-shadow: inset 0 0 20px rgba(255, 215, 0, 0.2), 0 8px 16px rgba(0,0,0,0.3); } 100% { box-shadow: inset 0 0 10px rgba(0,0,0,0.1), 0 4px 8px rgba(0,0,0,0.2); } }
@keyframes wf3-palette-shake { 0% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(-2deg); } 75% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes wf3-figure-breathe { 0% { transform: translateX(-70px) scaleX(-1) scale(1); } 50% { transform: translateX(-70px) scaleX(-1) scale(1.03); } 100% { transform: translateX(-70px) scaleX(-1) scale(1); } }
@keyframes wf3-mirror-flicker { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes wf3-brush-stroke { 0% { transform: rotate(20deg) translate(0,0); } 50% { transform: rotate(25deg) translate(2px, -2px); } 100% { transform: rotate(20deg) translate(0,0); } }

.scn-muse-compare {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a1008 30%, #0d0804 100%), radial-gradient(ellipse at 50% 50%, #6b4226 0%, transparent 70%);
}
.scn-muse-compare .wall-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1008 0%, #0d0804 100%);
  box-shadow: inset 0 0 80px rgba(0, 0, 0, 0.8);
  animation: mc4-wall-pulse 10s ease-in-out infinite alternate;
}
.scn-muse-compare .desk {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 200px; height: 30px;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0e 100%);
  border-radius: 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-muse-compare .lamp {
  position: absolute; bottom: 35%; left: 45%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #8b6040 0%, #5a3820 100%);
  border-radius: 4px;
  transform-origin: bottom center;
}
.scn-muse-compare .book-a,
.scn-muse-compare .book-b {
  position: absolute; bottom: 22%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6b4226 0%, #4a2e1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-muse-compare .book-a { left: 60%; transform: rotate(-5deg); animation: mc4-book-open 8s ease-in-out infinite alternate; }
.scn-muse-compare .book-b { left: 50%; width: 30px; height: 40px; background: linear-gradient(180deg, #5a3820 0%, #3a200a 100%); transform: rotate(3deg); animation: mc4-book-open 9s ease-in-out infinite reverse; }
.scn-muse-compare .inkwell {
  position: absolute; bottom: 23%; left: 55%;
  width: 16px; height: 20px;
  background: radial-gradient(circle, #1a0e06 0%, #0a0402 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-muse-compare .shadow-reader {
  position: absolute; bottom: 20%; left: 45%; width: 60px; height: 100px;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(8px);
  animation: mc4-shadow-breathe 6s ease-in-out infinite;
}
.scn-muse-compare .candle {
  position: absolute; bottom: 30%; left: 35%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #d4b060 0%, #8a6a30 100%);
  border-radius: 4px;
  box-shadow: 0 0 10px 4px rgba(255, 200, 100, 0.3);
  animation: mc4-candle-flicker 3s ease-in-out infinite;
}
.scn-muse-compare .flame {
  position: absolute; bottom: 65%; left: 36%; width: 8px; height: 16px;
  background: radial-gradient(circle, #ffd700 0%, #ffa500 50%, transparent 70%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(2px);
  animation: mc4-flame-dance 2s ease-in-out infinite alternate;
  box-shadow: 0 0 20px 8px #ffa500;
}

@keyframes mc4-wall-pulse { 0% { box-shadow: inset 0 0 80px rgba(0,0,0,0.8); } 50% { box-shadow: inset 0 0 60px rgba(0,0,0,0.6); } 100% { box-shadow: inset 0 0 80px rgba(0,0,0,0.8); } }
@keyframes mc4-book-open { 0% { transform: rotate(-5deg) scale(0.95); } 50% { transform: rotate(0deg) scale(1.05); } 100% { transform: rotate(-5deg) scale(0.95); } }
@keyframes mc4-shadow-breathe { 0% { transform: scale(0.95); opacity: 0.4; } 50% { transform: scale(1.05); opacity: 0.6; } 100% { transform: scale(0.95); opacity: 0.4; } }
@keyframes mc4-candle-flicker { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes mc4-flame-dance { 0% { transform: translate(0,0) rotate(-3deg) scale(1); } 25% { transform: translate(1px,-2px) rotate(2deg) scale(1.1); } 50% { transform: translate(-1px,-1px) rotate(-2deg) scale(0.95); } 75% { transform: translate(1px,0) rotate(3deg) scale(1.05); } 100% { transform: translate(0,0) rotate(0deg) scale(1); } }

/* never‑say‑false – warm dim‑interior */
.scn-never-say-false {
  background: linear-gradient(180deg, #4a2a1a 0%, #2c1810 50%, #1a0f0a 100%), radial-gradient(ellipse at 50% 100%, #3a1a0a 0%, transparent 70%);
}
.scn-never-say-false .walls { position:absolute; inset:0 0 28% 0; background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 60%, #2a1a10 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; animation: nsf-walls 12s ease-in-out infinite; }
.scn-never-say-false .floor { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(0deg, #2a1a0a 0%, #3a2a1a 40%, #5a4a3a 100%); border-radius: 60% 40% 0 0 / 20% 15% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); }
.scn-never-say-false .window { position:absolute; top:12%; left:25%; width:30%; height:40%; background: linear-gradient(180deg, #c8a060 0%, #8a6a40 60%, #5a3a20 100%); border-radius: 15% 15% 5% 5%; box-shadow: inset 0 0 30px #a08040, 0 0 40px 10px rgba(160,128,64,0.3); animation: nsf-window 6s ease-in-out infinite alternate; }
.scn-never-say-false .table { position:absolute; bottom:24%; left:35%; width:28%; height:10%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.5); }
.scn-never-say-false .candle { position:absolute; bottom:32%; left:42%; width:4%; height:12%; background: linear-gradient(180deg, #f0e0c0 0%, #c8a060 60%, #8a6a40 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 16px 4px #f0c080, 0 0 32px 8px rgba(240,192,128,0.4); animation: nsf-candle 3s ease-in-out infinite alternate; }
.scn-never-say-false .figure { position:absolute; bottom:20%; left:55%; width:14%; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nsf-figure 5s ease-in-out infinite; }
.scn-never-say-false .hearth { position:absolute; bottom:10%; left:8%; width:20%; height:15%; background: radial-gradient(ellipse at 50% 20%, #e05020 0%, #802010 50%, #1a0a00 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 20px #e05020, 0 0 80px 40px rgba(224,80,32,0.3); animation: nsf-hearth 4s ease-in-out infinite alternate; }
@keyframes nsf-walls   { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes nsf-window  { 0% { filter: brightness(0.9); } 50% { filter: brightness(1.1) saturate(1.2); } 100% { filter: brightness(0.95); } }
@keyframes nsf-candle  { 0% { transform: scaleY(1) scaleX(1); opacity:0.9; } 50% { transform: scaleY(1.1) scaleX(0.95); opacity:1; } 100% { transform: scaleY(0.95) scaleX(1.05); opacity:0.95; } }
@keyframes nsf-figure  { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(0.5deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-4px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes nsf-hearth  { 0% { transform: scale(1); box-shadow: 0 0 40px 20px #e05020, 0 0 80px 40px rgba(224,80,32,0.3); } 50% { transform: scale(1.05); box-shadow: 0 0 60px 30px #f06030, 0 0 100px 50px rgba(240,96,48,0.4); } 100% { transform: scale(0.95); box-shadow: 0 0 30px 15px #d04018, 0 0 60px 30px rgba(208,64,24,0.25); } }

/* alas‑true‑gone‑here – dark dim‑interior */
.scn-alas-true-gone-here {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1f 50%, #050510 100%), radial-gradient(ellipse at 50% 30%, #2a2a4e 0%, transparent 70%);
}
.scn-alas-true-gone-here .bg-deep { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a1a 0%, #15152a 60%, #0f0f1f 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; animation: ath-bg 18s ease-in-out infinite alternate; }
.scn-alas-true-gone-here .drapes-left { position:absolute; top:0; left:0; width:25%; height:100%; background: linear-gradient(180deg, #3a1a2a 0%, #5e1a1d 40%, #2a0a10 100%); border-radius: 0 40% 40% 0; transform-origin: left center; animation: ath-drape 12s ease-in-out infinite; }
.scn-alas-true-gone-here .drapes-right { position:absolute; top:0; right:0; width:25%; height:100%; background: linear-gradient(180deg, #3a1a2a 0%, #5e1a1d 40%, #2a0a10 100%); border-radius: 40% 0 0 40%; transform-origin: right center; animation: ath-drape 12s ease-in-out infinite 3s; }
.scn-alas-true-gone-here .mirror { position:absolute; top:15%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 60%, #1a1a2a 100%); border-radius: 50% 50% 10% 10%; box-shadow: inset 0 0 20px rgba(100,100,120,0.3), 0 0 30px rgba(0,0,0,0.5); animation: ath-mirror 9s ease-in-out infinite alternate; }
.scn-alas-true-gone-here .figure { position:absolute; bottom:20%; left:45%; width:15%; height:40%; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ath-figure 4s ease-in-out infinite; }
.scn-alas-true-gone-here .hat { position:absolute; top:28%; left:44%; width:18%; height:12%; background: linear-gradient(135deg, #702243 0%, #4a152a 60%, #1a0a15 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform: rotate(-5deg); animation: ath-hat 6s ease-in-out infinite; }
.scn-alas-true-gone-here .spotlight { position:absolute; top:0; left:30%; width:40%; height:100%; background: radial-gradient(ellipse at 50% 0%, rgba(200,180,160,0.15) 0%, transparent 70%); pointer-events:none; animation: ath-spot 5s ease-in-out infinite alternate; }
@keyframes ath-bg     { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ath-drape  { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.95); } }
@keyframes ath-mirror { 0% { background-position: 0% 0%; } 50% { background-position: 100% 100%; } 100% { background-position: 50% 50%; } }
@keyframes ath-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(7px) rotate(1deg); } 50% { transform: translateX(14px) rotate(-2deg); } 75% { transform: translateX(7px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ath-hat    { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ath-spot   { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

/* for‑my‑sake‑chide – dark dim‑interior vertical shaft */
.scn-for-my-sake-chide {
  background: linear-gradient(0deg, #0a0a0f 0%, #1a1a2e 40%, #2a2a4e 100%), radial-gradient(ellipse at 50% 0%, #2a2a4e 0%, transparent 80%);
}
.scn-for-my-sake-chide .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0f0f1f 0%, #1f1f3a 60%, #0a0a15 100%); animation: fms-bg 15s ease-in-out infinite alternate; }
.scn-for-my-sake-chide .goddess { position:absolute; top:5%; left:25%; width:50%; height:60%; background: linear-gradient(180deg, #4a3a5e 0%, #2a1a3e 60%, #1a0a2a 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; transform-origin: center top; animation: fms-goddess 10s ease-in-out infinite; }
.scn-for-my-sake-chide .wheel { position:absolute; top:25%; left:40%; width:20%; height:20%; background: radial-gradient(circle, #806040 0%, #5a3a20 50%, #2a1a0a 100%); border-radius: 50%; animation: fms-wheel 8s linear infinite; }
.scn-for-my-sake-chide .figure { position:absolute; bottom:15%; left:40%; width:20%; height:25%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fms-figure 3s ease-in-out infinite; }
.scn-for-my-sake-chide .ground { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(0deg, #0a0a0a 0%, #1a1a2a 60%, #2a2a3e 100%); border-radius: 40% 60% 0 0 / 20% 30% 0 0; }
.scn-for-my-sake-chide .light { position:absolute; top:0; left:35%; width:30%; height:100%; background: radial-gradient(ellipse at 50% 0%, rgba(220,200,140,0.12) 0%, transparent 70%); pointer-events:none; animation: fms-light 6s ease-in-out infinite alternate; }
@keyframes fms-bg      { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes fms-goddess { 0% { transform: rotate(-1deg) scale(1); } 50% { transform: rotate(1deg) scale(1.02); } 100% { transform: rotate(-1deg) scale(0.98); } }
@keyframes fms-wheel   { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes fms-figure  { 0% { transform: translateY(0) scale(1); } 25% { transform: translateY(-2px) scale(1.02); } 50% { transform: translateY(0) scale(0.98); } 75% { transform: translateY(2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes fms-light   { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

/* love‑pity‑impression – calm dim‑interior close‑up */
.scn-love-pity-impression {
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 50%, #1a2a1a 100%), radial-gradient(ellipse at 50% 60%, #4a5a4a 0%, transparent 70%);
}
.scn-love-pity-impression .bg { position:absolute; inset:0; background: linear-gradient(135deg, #4a5a4a 0%, #2a3a2a 60%, #1a2a1a 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; animation: lpi-bg 20s ease-in-out infinite alternate; }
.scn-love-pity-impression .seat { position:absolute; bottom:10%; left:20%; width:30%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
.scn-love-pity-impression .figure-seated { position:absolute; bottom:20%; left:22%; width:20%; height:35%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lpi-seated 7s ease-in-out infinite; }
.scn-love-pity-impression .figure-standing { position:absolute; bottom:15%; left:48%; width:18%; height:45%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lpi-standing 9s ease-in-out infinite; }
.scn-love-pity-impression .hand { position:absolute; bottom:42%; left:52%; width:6%; height:4%; background: linear-gradient(180deg, #b8a898 0%, #8a7a6a 100%); border-radius: 40% 40% 30% 30%; transform: rotate(-20deg); animation: lpi-hand 5s ease-in-out infinite alternate; }
.scn-love-pity-impression .lamp { position:absolute; top:25%; left:60%; width:10%; height:15%; background: radial-gradient(circle, #f0e0c0 0%, #c8b080 40%, #8a7a5a 70%, #3a2a1a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px #c8b080, 0 0 60px 20px rgba(200,176,128,0.3); animation: lpi-lamp 4s ease-in-out infinite alternate; }
@keyframes lpi-bg      { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes lpi-seated  { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(0.5deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes lpi-standing{ 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes lpi-hand    { 0% { transform: rotate(-20deg) translate(0,0); opacity:0.8; } 50% { transform: rotate(-15deg) translate(2px,-2px); opacity:1; } 100% { transform: rotate(-20deg) translate(0,0); opacity:0.85; } }
@keyframes lpi-lamp    { 0% { filter: brightness(0.9); box-shadow: 0 0 20px 6px #c8b080, 0 0 40px 12px rgba(200,176,128,0.25); } 50% { filter: brightness(1.1); box-shadow: 0 0 40px 15px #f0d0a0, 0 0 80px 30px rgba(240,208,160,0.4); } 100% { filter: brightness(0.95); box-shadow: 0 0 25px 8px #c8b080, 0 0 50px 18px rgba(200,176,128,0.3); } }

.scn-beauteous-day-promise { background: linear-gradient(180deg, #4a5058 0%, #6a7078 30%, #8a8f94 60%, #5a5f64 100%), radial-gradient(ellipse at 30% 0%, #a0a8b0 0%, transparent 60%); }
.scn-beauteous-day-promise .sky-overcast { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #3a4048 0%, #5a6068 40%, #7a8088 70%, #8a8f94 100%); animation: tns-sky 14s ease-in-out infinite alternate; }
.scn-beauteous-day-promise .hills-dim { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #4e544a 0%, #2e342a 100%); border-radius: 30% 70% 40% 60% / 60% 40% 60% 40%; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); animation: tns-hills 20s ease-in-out infinite alternate; }
.scn-beauteous-day-promise .muddy-path { position:absolute; bottom:0; left:20%; right:20%; height:35%; background: linear-gradient(180deg, #5a4e3e 0%, #3a2e1e 100%); border-radius: 60% 40% 0 0 / 100% 100% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation: tns-path 16s ease-in-out infinite alternate; }
.scn-beauteous-day-promise .cloaked-figure { position:absolute; bottom:22%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #2a2018 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: tns-figure 4s ease-in-out infinite; }
.scn-beauteous-day-promise .light-beam { position:absolute; top:0; left:35%; width:30%; height:90%; background: linear-gradient(180deg, rgba(220,220,200,.4) 0%, rgba(220,220,200,.1) 40%, transparent 100%); clip-path: polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%); animation: tns-beam 8s ease-in-out infinite alternate; }
.scn-beauteous-day-promise .blowing-leaf { position:absolute; width:12px; height:6px; background: #6a5030; border-radius: 50% 0 50% 0; opacity:.7; }
.scn-beauteous-day-promise .leaf-a { top:50%; left:0%; animation: tns-leaf-a 6s linear infinite; }
.scn-beauteous-day-promise .leaf-b { top:65%; left:0%; animation: tns-leaf-b 9s linear infinite; animation-delay: 2s; }
@keyframes tns-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes tns-hills { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes tns-path { 0% { transform: translateX(-2px) } 50% { transform: translateX(2px) } 100% { transform: translateX(-1px) } }
@keyframes tns-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(0) translateY(-1px) rotate(0deg) } 75% { transform: translateX(-4px) translateY(-2px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes tns-beam { 0% { opacity:.3; transform: translateX(-10px) } 50% { opacity:.7; transform: translateX(0) } 100% { opacity:.4; transform: translateX(10px) } }
@keyframes tns-leaf-a { 0% { transform: translateX(-20px) translateY(0) rotate(0deg) } 25% { transform: translateX(30vw) translateY(-30px) rotate(90deg) } 50% { transform: translateX(60vw) translateY(10px) rotate(180deg) } 75% { transform: translateX(90vw) translateY(-20px) rotate(270deg) } 100% { transform: translateX(120vw) translateY(0) rotate(360deg) } }
@keyframes tns-leaf-b { 0% { transform: translateX(-20px) translateY(0) rotate(0deg) } 33% { transform: translateX(40vw) translateY(-20px) rotate(120deg) } 66% { transform: translateX(80vw) translateY(10px) rotate(240deg) } 100% { transform: translateX(120vw) translateY(0) rotate(360deg) } }

.scn-roses-thorns { background: linear-gradient(180deg, #f8f4e8 0%, #e8e0c8 40%, #d8c8a0 100%), radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 60%); }
.scn-roses-thorns .garden-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b8d4b0 0%, #a0c498 40%, #88b480 100%); animation: rth-bg 20s ease-in-out infinite alternate; }
.scn-roses-thorns .fountain-base { position:absolute; bottom:15%; left:30%; width:40%; height:50%; background: linear-gradient(180deg, #b0b0b0 0%, #808080 50%, #606060 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; box-shadow: inset 0 -20px 30px rgba(0,0,0,.3); }
.scn-roses-thorns .fountain-water { position:absolute; bottom:20%; left:35%; width:30%; height:40%; background: radial-gradient(circle at 50% 30%, #d0e8f0 0%, #a0c0d0 50%, #8090a0 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; animation: rth-water 6s ease-in-out infinite alternate; }
.scn-roses-thorns .rose-bush { position:absolute; bottom:5%; right:15%; width:30%; height:60%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 60% 40% 60% 40% / 70% 50% 50% 30%; clip-path: polygon(20% 0%, 80% 10%, 70% 40%, 90% 70%, 50% 100%, 10% 80%, 30% 50%, 0% 20%); }
.scn-roses-thorns .rose-bloom { position:absolute; bottom:45%; right:25%; width:20px; height:20px; background: radial-gradient(circle, #c8553d 0%, #a0461a 60%, #702243 100%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(200,85,61,.4), 0 0 24px 8px rgba(200,85,61,.2); animation: rth-bloom 4s ease-in-out infinite alternate; }
.scn-roses-thorns .sun-dapple { position:absolute; inset:0; background: radial-gradient(circle at 60% 20%, rgba(255,240,200,.4) 0%, transparent 50%), radial-gradient(circle at 30% 60%, rgba(255,240,200,.2) 0%, transparent 40%); animation: rth-dapple 12s ease-in-out infinite alternate; }
.scn-roses-thorns .floating-moth { position:absolute; top:40%; left:20%; width:16px; height:10px; background: #d8c8a0; border-radius: 50% 50% 40% 40%; box-shadow: 0 0 4px rgba(200,180,140,.5); animation: rth-moth 9s ease-in-out infinite; }
@keyframes rth-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes rth-water { 0% { transform: scale(1) translateY(0); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60% } 50% { transform: scale(1.02) translateY(-2px); border-radius: 35% 35% 55% 55% / 45% 45% 65% 65% } 100% { transform: scale(1) translateY(0); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60% } }
@keyframes rth-bloom { 0% { transform: scale(1); box-shadow: 0 0 12px 4px rgba(200,85,61,.4), 0 0 24px 8px rgba(200,85,61,.2) } 50% { transform: scale(1.1); box-shadow: 0 0 18px 6px rgba(200,85,61,.5), 0 0 36px 12px rgba(200,85,61,.3) } 100% { transform: scale(1); box-shadow: 0 0 12px 4px rgba(200,85,61,.4), 0 0 24px 8px rgba(200,85,61,.2) } }
@keyframes rth-dapple { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes rth-moth { 0% { transform: translate(0, 0) rotate(-10deg) scale(1) } 25% { transform: translate(20px, -30px) rotate(5deg) scale(1.1) } 50% { transform: translate(40px, 5px) rotate(-5deg) scale(1) } 75% { transform: translate(60px, -20px) rotate(10deg) scale(1.05) } 100% { transform: translate(80px, 0) rotate(-10deg) scale(1) } }

.scn-confess-twain { background: linear-gradient(180deg, #141820 0%, #1a2028 30%, #242830 60%, #101418 100%), radial-gradient(ellipse at 50% 0%, #2a3038 0%, transparent 60%); }
.scn-confess-twain .deep-shadow-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #101418 0%, #1a2028 60%, #242830 100%); box-shadow: inset 0 40px 60px rgba(0,0,0,.6); animation: cnf-wall 16s ease-in-out infinite alternate; }
.scn-confess-twain .receding-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #282c34 0%, #141820 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); }
.scn-confess-twain .heavy-desk { position:absolute; bottom:12%; left:35%; width:30%; height:15%; background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 8px 20px rgba(0,0,0,.7); }
.scn-confess-twain .candle-light { position:absolute; bottom:24%; left:48%; width:8px; height:20px; background: linear-gradient(180deg, #ffd680 0%, #c08040 60%, #5a2a0a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 6px rgba(255,214,128,.6), 0 0 60px 20px rgba(255,214,128,.3); animation: cnf-candle 3s ease-in-out infinite alternate; }
.scn-confess-twain .confess-figure { position:absolute; bottom:22%; left:45%; width:24px; height:50px; background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -4px 0 20px rgba(0,0,0,.5); animation: cnf-figure 5s ease-in-out infinite; }
.scn-confess-twain .ink-blot { position:absolute; background: radial-gradient(circle, #0a0a12 0%, transparent 70%); filter: blur(2px); animation: cnf-blot 8s ease-in-out infinite alternate; }
.scn-confess-twain .blot-a { bottom:10%; left:30%; width:80px; height:40px; animation-duration: 10s; }
.scn-confess-twain .blot-b { bottom:18%; right:25%; width:60px; height:30px; animation-duration: 12s; animation-delay: 3s; }
@keyframes cnf-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes cnf-candle { 0% { transform: scale(1) translateY(0); box-shadow: 0 0 20px 6px rgba(255,214,128,.6), 0 0 60px 20px rgba(255,214,128,.3) } 50% { transform: scale(1.05) translateY(-1px); box-shadow: 0 0 28px 10px rgba(255,214,128,.7), 0 0 80px 30px rgba(255,214,128,.4) } 100% { transform: scale(1) translateY(0); box-shadow: 0 0 20px 6px rgba(255,214,128,.6), 0 0 60px 20px rgba(255,214,128,.3) } }
@keyframes cnf-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(-2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(0deg) } 75% { transform: translateX(2px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes cnf-blot { 0% { transform: scale(1) translateX(0) rotate(0deg); opacity:.4 } 50% { transform: scale(1.3) translateX(10px) rotate(5deg); opacity:.7 } 100% { transform: scale(1) translateX(0) rotate(0deg); opacity:.5 } }

.scn-decrepit-father { background: linear-gradient(180deg, #d8c8a8 0%, #c8b898 30%, #b8a888 60%, #a89878 100%), radial-gradient(ellipse at 50% 30%, #e8d8b8 0%, transparent 70%); }
.scn-decrepit-father .dusty-room-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #c8b898 0%, #b8a888 50%, #a89878 100%); box-shadow: inset 0 40px 60px rgba(80,60,40,.3); animation: dcf-bg 20s ease-in-out infinite alternate; }
.scn-decrepit-father .warm-window { position:absolute; right:10%; top:10%; width:40%; height:60%; background: radial-gradient(ellipse at 50% 50%, #f0e0c8 0%, #d8c8a8 60%, #b8a888 100%); border: 8px solid #6a5a3a; border-radius: 4% 4% 8% 8%; box-shadow: inset 0 0 40px rgba(240,224,200,.6), 0 0 30px rgba(200,180,140,.4); }
.scn-decrepit-father .father-silhouette { position:absolute; bottom:0; left:10%; width:30%; height:70%; background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%); border-radius: 60% 40% 40% 40% / 80% 60% 20% 20%; box-shadow: -10px 0 30px rgba(0,0,0,.4); animation: dcf-father 8s ease-in-out infinite alternate; }
.scn-decrepit-father .active-child { position:absolute; bottom:15%; left:45%; width:20px; height:40px; background: radial-gradient(circle at 50% 30%, #e8d8b8 0%, #c8b898 60%, #a89878 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,.2); animation: dcf-child 4s ease-in-out infinite; }
.scn-decrepit-father .dust-mote { position:absolute; width:6px; height:6px; background: rgba(240,224,200,.6); border-radius: 50%; filter: blur(1px); }
.scn-decrepit-father .mote-a { top:20%; left:40%; animation: dcf-mote-a 18s linear infinite; }
.scn-decrepit-father .mote-b { top:35%; left:60%; animation: dcf-mote-b 22s linear infinite; animation-delay: 6s; }
.scn-decrepit-father .mote-c { top:50%; left:30%; animation: dcf-mote-c 15s linear infinite; animation-delay: 12s; }
@keyframes dcf-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes dcf-father { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(0deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes dcf-child { 0% { transform: translateX(0) translateY(0) rotate(-5deg) } 25% { transform: translateX(8px) translateY(-3px) rotate(3deg) } 50% { transform: translateX(16px) translateY(0) rotate(-2deg) } 75% { transform: translateX(24px) translateY(-3px) rotate(4deg) } 100% { transform: translateX(32px) translateY(0) rotate(-5deg) } }
@keyframes dcf-mote-a { 0% { transform: translate(0, 0) scale(1); opacity:0 } 10% { opacity:.8 } 90% { opacity:.6 } 100% { transform: translate(40px, -80px) scale(0.5); opacity:0 } }
@keyframes dcf-mote-b { 0% { transform: translate(0, 0) scale(0.8); opacity:0 } 15% { opacity:.7 } 85% { opacity:.5 } 100% { transform: translate(-30px, -60px) scale(0.3); opacity:0 } }
@keyframes dcf-mote-c { 0% { transform: translate(0, 0) scale(1.2); opacity:0 } 20% { opacity:.9 } 80% { opacity:.7 } 100% { transform: translate(20px, -100px) scale(0.4); opacity:0 } }

.scn-eye-heart-war {
  background: linear-gradient(180deg, #2c1a0e 0%, #1a0e05 100%), radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.5);
}
.scn-eye-heart-war .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3a2a, #1a0e05);
}
.scn-eye-heart-war .frame {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 150px;
  background: linear-gradient(135deg, #6a4a2a, #3a2a1a);
  border-radius: 10% 10% 8% 8%;
  box-shadow: 0 8px 20px rgba(0,0,0,.6), inset 0 0 10px rgba(200,150,100,.2);
  animation: ehw-frame 6s ease-in-out infinite alternate;
}
.scn-eye-heart-war .portrait {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 100px;
  background: linear-gradient(180deg, #c8a880, #a08060);
  border-radius: 8%;
  box-shadow: 0 0 30px rgba(150,100,50,.4);
  animation: ehw-glow 4s ease-in-out infinite alternate;
}
.scn-eye-heart-war .heart {
  position: absolute; bottom: 38%; left: 30%; width: 60px; height: 50px;
  background: radial-gradient(ellipse at 30% 20%, #c8553d, #8a2a1a);
  border-radius: 50% 50% 0 0;
  transform: rotate(45deg);
  animation: ehw-heartbeat 1.8s ease-in-out infinite;
}
.scn-eye-heart-war .eye {
  position: absolute; bottom: 40%; right: 25%; width: 40px; height: 24px;
  background: radial-gradient(circle at 50% 50%, #fff, #a08060);
  border-radius: 50%;
  box-shadow: 0 0 12px rgba(200,150,100,.5);
  animation: ehw-blink 3s ease-in-out infinite;
}
.scn-eye-heart-war .chest {
  position: absolute; bottom: 8%; left: 20%; width: 70px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a, #2a1a0e);
  border-radius: 6% 6% 8% 8%;
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
  animation: ehw-shake 1.2s ease-in-out infinite;
}
.scn-eye-heart-war .candle {
  position: absolute; bottom: 15%; right: 12%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #e0c070, #8a7020);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 40px #d09040, 0 0 80px rgba(200,120,40,.3);
  animation: ehw-flicker .3s linear infinite;
}
@keyframes ehw-frame {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-0.5deg); }
}
@keyframes ehw-glow {
  0% { box-shadow: 0 0 20px rgba(150,100,50,.3); opacity: .7; }
  50% { box-shadow: 0 0 60px rgba(200,160,80,.6); opacity: 1; }
  100% { box-shadow: 0 0 30px rgba(150,100,50,.4); opacity: .8; }
}
@keyframes ehw-heartbeat {
  0% { transform: rotate(45deg) scale(1); }
  50% { transform: rotate(45deg) scale(1.15); }
  100% { transform: rotate(45deg) scale(1); }
}
@keyframes ehw-blink {
  0% { height: 24px; opacity: 1; }
  45% { height: 24px; }
  50% { height: 4px; }
  55% { height: 24px; }
  100% { height: 24px; }
}
@keyframes ehw-shake {
  0% { transform: translateX(0); }
  25% { transform: translateX(-2px); }
  50% { transform: translateX(2px); }
  75% { transform: translateX(-1px); }
  100% { transform: translateX(0); }
}
@keyframes ehw-flicker {
  0% { opacity: .7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: .8; transform: scaleY(0.98); }
}

.scn-eye-heart-league {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.3);
}
.scn-eye-heart-league .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a4a3a, #2a1a0e);
}
.scn-eye-heart-league .table {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #6a5a4a, #3a2a1a);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -8px 30px rgba(0,0,0,.4);
}
.scn-eye-heart-league .pact {
  position: absolute; bottom: 20%; left: 28%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #d0c0a0, #a09070);
  border-radius: 4%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: ehl-float 8s ease-in-out infinite alternate;
}
.scn-eye-heart-league .seal {
  position: absolute; bottom: 28%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, #c8553d, #8a2a1a);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(200,80,60,.4);
  animation: ehl-breathe 4s ease-in-out infinite;
}
.scn-eye-heart-league .eyeheart {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 50px;
  background: radial-gradient(circle at 40% 30%, #f0d0a0, #b09070);
  border-radius: 50%;
  box-shadow: 0 0 30px rgba(200,160,100,.3);
  animation: ehl-merge 6s ease-in-out infinite;
}
.scn-eye-heart-league .eyeheart::after {
  content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 20px; height: 20px;
  background: radial-gradient(circle, #c8553d, transparent);
  border-radius: 50%;
  animation: ehl-heartbeat 3s ease-in-out infinite;
}
.scn-eye-heart-league .candle {
  position: absolute; bottom: 12%; right: 20%; width: 5px; height: 25px;
  background: linear-gradient(180deg, #e0c070, #8a7020);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 50px #d09040, 0 0 100px rgba(200,120,40,.2);
  animation: ehl-flicker 2s ease-in-out infinite alternate;
}
@keyframes ehl-float {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes ehl-breathe {
  0% { transform: scale(1); opacity: .8; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); opacity: .8; }
}
@keyframes ehl-merge {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.05); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes ehl-heartbeat {
  0% { transform: translate(-50%, -50%) scale(1); }
  50% { transform: translate(-50%, -50%) scale(1.3); }
  100% { transform: translate(-50%, -50%) scale(1); }
}
@keyframes ehl-flicker {
  0% { opacity: .6; }
  50% { opacity: .9; }
  100% { opacity: .7; }
}

.scn-careful-way {
  background: linear-gradient(180deg, #1a0a05 0%, #0e0500 100%), radial-gradient(ellipse at 50% 20%, #2a1a0e 0%, transparent 80%);
  box-shadow: inset 0 0 100px rgba(0,0,0,.7);
}
.scn-careful-way .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a0e, #1a0a05);
}
.scn-careful-way .chest {
  position: absolute; bottom: 10%; left: 25%; width: 90px; height: 60px;
  background: linear-gradient(135deg, #5a3a2a, #2a1a0e);
  border-radius: 8% 8% 6% 6%;
  box-shadow: 0 8px 20px rgba(0,0,0,.8), inset 0 0 10px #a0461a;
  animation: cw-shift 2s ease-in-out infinite alternate;
}
.scn-careful-way .keys {
  position: absolute; bottom: 18%; left: 40%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 30%, #d0b080, #8a7020);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 15px rgba(200,150,80,.5);
  animation: cw-keys 1.5s ease-in-out infinite;
}
.scn-careful-way .jewel {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 14px; height: 14px;
  background: radial-gradient(circle, #b08040, #5a3a10);
  border-radius: 50%;
  box-shadow: 0 0 40px #c09050, 0 0 80px rgba(180,120,60,.3);
  animation: cw-glimmer .8s ease-in-out infinite alternate;
}
.scn-careful-way .guard {
  position: absolute; bottom: 22%; right: 15%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px rgba(0,0,0,.5);
  animation: cw-watch 3s ease-in-out infinite;
}
.scn-careful-way .candle {
  position: absolute; bottom: 8%; left: 10%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #e0c070, #8a7020);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 30px #d09040, 0 0 60px rgba(200,120,40,.3);
  animation: cw-flame .4s linear infinite;
}
.scn-careful-way .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.6));
  pointer-events: none;
}
@keyframes cw-shift {
  0% { transform: translateX(0); }
  100% { transform: translateX(-3px); }
}
@keyframes cw-keys {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(0deg); }
}
@keyframes cw-glimmer {
  0% { box-shadow: 0 0 30px #c09050; opacity: .6; }
  100% { box-shadow: 0 0 60px #e0b070; opacity: 1; }
}
@keyframes cw-watch {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cw-flame {
  0% { transform: scaleY(1); opacity: .8; }
  25% { transform: scaleY(1.1); opacity: .9; }
  50% { transform: scaleY(0.95); opacity: .7; }
  75% { transform: scaleY(1.05); opacity: .85; }
  100% { transform: scaleY(1); opacity: .8; }
}

.scn-against-that-time {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 50%, #0a0a12 100%), radial-gradient(ellipse at 50% 0%, #2a2a3e 0%, transparent 60%);
  box-shadow: inset 0 0 120px rgba(0,0,0,.8);
}
.scn-against-that-time .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a3e, #1a1a2e);
  animation: att-day 20s ease-in-out infinite alternate;
}
.scn-against-that-time .sun {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 50px;
  background: radial-gradient(circle, #8a8aaa, #4a4a6a);
  border-radius: 50%;
  box-shadow: 0 0 40px rgba(138,138,170,.3);
  animation: att-sun 15s ease-in-out infinite alternate;
}
.scn-against-that-time .figure {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a2a3e, #1a1a2e);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px rgba(0,0,0,.6);
  animation: att-leave 8s ease-in-out infinite;
}
.scn-against-that-time .hourglass {
  position: absolute; bottom: 10%; right: 15%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #6a6a8a, #3a3a5a);
  border-radius: 40% 40% 8% 8%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: att-sand 10s linear infinite;
}
.scn-against-that-time .hand {
  position: absolute; bottom: 30%; left: 12%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #8a8aaa, #4a4a6a);
  border-radius: 10% 10% 30% 30%;
  animation: att-point 6s ease-in-out infinite alternate;
}
.scn-against-that-time .dust {
  position: absolute; top: 20%; left: 0; right: 0; height: 60%;
  background: radial-gradient(ellipse at 30% 50%, rgba(150,150,180,.1), transparent);
  animation: att-drift 50s linear infinite;
}
@keyframes att-day {
  0% { background: linear-gradient(180deg, #2a2a3e, #1a1a2e); }
  50% { background: linear-gradient(180deg, #3a3a4e, #2a2a3e); }
  100% { background: linear-gradient(180deg, #1a1a2e, #0e0e1a); }
}
@keyframes att-sun {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 30px rgba(138,138,170,.2); }
  50% { transform: translateX(-50%) scale(0.95); box-shadow: 0 0 10px rgba(138,138,170,.1); }
  100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 30px rgba(138,138,170,.2); }
}
@keyframes att-leave {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(-1); }
  100% { transform: translateX(-50%) scaleX(1); }
}
@keyframes att-sand {
  0% { opacity: .6; }
  50% { opacity: 1; }
  100% { opacity: .6; }
}
@keyframes att-point {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(-30deg); }
}
@keyframes att-drift {
  0% { background-position: 0% 50%; }
  100% { background-position: 100% 50%; }
}

.scn-expense-spirit-shame {
  background:
    linear-gradient(180deg, #2b1a1a 0%, #3a2626 40%, #4a3232 100%),
    radial-gradient(ellipse at 50% 0%, #5a4040 0%, transparent 70%);
}
.scn-expense-spirit-shame .wall-left {
  position: absolute; left: 0; top: 0; width: 20%; height: 70%;
  background: linear-gradient(180deg, #4a3232 0%, #2b1a1a 100%);
  border-radius: 0 0 20% 0; box-shadow: inset -10px 0 20px rgba(0,0,0,0.6);
  animation: ess-wall-pulse 12s ease-in-out infinite alternate;
}
.scn-expense-spirit-shame .wall-right {
  position: absolute; right: 0; top: 0; width: 15%; height: 65%;
  background: linear-gradient(180deg, #3a2626 0%, #1a0e0e 100%);
  border-radius: 0 0 0 30%; box-shadow: inset 10px 0 25px rgba(0,0,0,0.7);
  animation: ess-wall-pulse 15s ease-in-out infinite alternate-reverse;
}
.scn-expense-spirit-shame .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a3232 0%, #3a2222 40%, #2a1414 100%);
  border-radius: 30% 20% 0 0; box-shadow: inset 0 -8px 20px rgba(0,0,0,0.8);
  animation: ess-floor-shift 20s ease-in-out infinite;
}
.scn-expense-spirit-shame .window-glow {
  position: absolute; left: 50%; top: 12%; width: 16%; height: 30%;
  background: radial-gradient(ellipse at center, #c8a060 0%, #a08040 40%, transparent 70%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 0 30px 10px rgba(200,160,96,0.3);
  animation: ess-glow-breathe 4s ease-in-out infinite alternate;
}
.scn-expense-spirit-shame .figure-shame {
  position: absolute; bottom: 30%; left: 50%; width: 20%; height: 45%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 20%, #2a1a1a 0%, #0e0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 15px 25px rgba(0,0,0,0.8);
  animation: ess-figure-sink 8s ease-in-out infinite alternate;
}
.scn-expense-spirit-shame .shadow-bed {
  position: absolute; bottom: 10%; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #1a0e0e 100%);
  border-radius: 20% 20% 0 0; filter: blur(4px);
  animation: ess-bed-rock 14s ease-in-out infinite;
}
.scn-expense-spirit-shame .motes {
  position: absolute; top: 20%; left: 10%; width: 4px; height: 4px;
  background: #ffd080; border-radius: 50%;
  box-shadow:
    30px 40px 0 2px rgba(255,208,128,0.5),
    80px 10px 0 3px rgba(255,208,128,0.3),
    120px 60px 0 1px rgba(255,208,128,0.6);
  animation: ess-motes-drift 25s linear infinite;
}
@keyframes ess-wall-pulse { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ess-floor-shift { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes ess-glow-breathe { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes ess-figure-sink { 0% { transform: translateX(-50%) translateY(0) rotate(0); } 50% { transform: translateX(-50%) translateY(4px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } }
@keyframes ess-bed-rock { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.02); } 100% { opacity: 0.6; transform: scale(0.98); } }
@keyframes ess-motes-drift { 0% { transform: translateY(0) translateX(0); } 25% { transform: translateY(-8px) translateX(5px); } 50% { transform: translateY(2px) translateX(-3px); } 75% { transform: translateY(-5px) translateX(7px); } 100% { transform: translateY(0) translateX(0); } }

.scn-mistress-eyes-sun {
  background:
    linear-gradient(180deg, #f7e6c4 0%, #d9c095 30%, #b8a088 70%, #8c7a68 100%),
    radial-gradient(ellipse at 50% 100%, #a09080 0%, transparent 70%);
}
.scn-mistress-eyes-sun .sky-sun {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #9bbae0 0%, #b8d4f0 40%, #d4e8f8 100%);
  animation: mes-sky-warm 16s ease-in-out infinite alternate;
}
.scn-mistress-eyes-sun .sun-disk {
  position: absolute; top: 6%; left: 70%; width: 12%; height: 12%;
  background: radial-gradient(circle, #ffd080 0%, #f5b84a 40%, #e8a030 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 15px rgba(245,184,74,0.4);
  animation: mes-sun-glare 6s ease-in-out infinite alternate;
}
.scn-mistress-eyes-sun .ground-field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #a09068 0%, #7a6e50 50%, #5c533a 100%);
  border-radius: 30% 40% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.3);
  animation: mes-field-sway 20s ease-in-out infinite;
}
.scn-mistress-eyes-sun .rose-bush-left {
  position: absolute; bottom: 35%; left: 15%; width: 18%; height: 30%;
  background: radial-gradient(ellipse at 50% 80%, #a85a3a 0%, #6a3a22 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 10px 15px rgba(0,0,0,0.4);
  animation: mes-bush-bend 8s ease-in-out infinite alternate;
}
.scn-mistress-eyes-sun .rose-bush-right {
  position: absolute; bottom: 38%; right: 10%; width: 20%; height: 28%;
  background: radial-gradient(ellipse at 50% 70%, #b87878 0%, #8a5a5a 60%);
  border-radius: 50% 50% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.3);
  animation: mes-bush-bend 10s ease-in-out infinite alternate-reverse;
}
.scn-mistress-eyes-sun .figure-profile {
  position: absolute; bottom: 20%; left: 45%; width: 14%; height: 50%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 40% 20%, #c8b090 0%, #8a7a66 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 15px 20px rgba(0,0,0,0.5);
  clip-path: polygon(30% 0%, 70% 0%, 80% 20%, 90% 60%, 85% 100%, 15% 100%, 10% 60%, 20% 20%);
  animation: mes-figure-turn 7s ease-in-out infinite;
}
.scn-mistress-eyes-sun .coral-drop {
  position: absolute; bottom: 22%; left: 35%; width: 4%; height: 4%;
  background: radial-gradient(circle, #e07060 0%, #b05040 100%);
  border-radius: 50%; box-shadow: 0 0 10px 3px rgba(224,112,96,0.6);
  animation: mes-coral-glow 3s ease-in-out infinite alternate;
}
.scn-mistress-eyes-sun .cloud-silk {
  position: absolute; top: 18%; left: 20%; width: 30%; height: 8%;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: mes-cloud-drift 40s linear infinite reverse;
}
@keyframes mes-sky-warm { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mes-sun-glare { 0% { box-shadow: 0 0 30px 10px rgba(245,184,74,0.3); } 50% { box-shadow: 0 0 60px 20px rgba(245,184,74,0.6); } 100% { box-shadow: 0 0 40px 15px rgba(245,184,74,0.4); } }
@keyframes mes-field-sway { 0% { transform: translateY(0); } 50% { transform: translateY(2px) scale(1.005); } 100% { transform: translateY(-1px) scale(0.995); } }
@keyframes mes-bush-bend { 0% { transform: rotate(0); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(-2deg) scale(0.98); } }
@keyframes mes-figure-turn { 0% { transform: translateX(-50%) rotate(0) scale(1); } 50% { transform: translateX(-50%) rotate(2deg) scale(1.01); } 100% { transform: translateX(-50%) rotate(-1deg) scale(0.99); } }
@keyframes mes-coral-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.7; transform: scale(0.9); } }
@keyframes mes-cloud-drift { 0% { transform: translateX(-10%); } 50% { transform: translateX(20%); } 100% { transform: translateX(-10%); } }

.scn-tyrannous-as-you-art {
  background:
    linear-gradient(180deg, #2a1a2a 0%, #3a2a3a 40%, #4a3a4a 100%),
    radial-gradient(ellipse at 50% 20%, #5a4a5a 0%, transparent 80%);
}
.scn-tyrannous-as-you-art .chamber-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a4a 0%, #3a2a3a 60%, #2a1a2a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
  animation: tya-wall-shadow 15s ease-in-out infinite alternate;
}
.scn-tyrannous-as-you-art .chamber-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 60%, #1a0e1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.8);
}
.scn-tyrannous-as-you-art .mirror-oval {
  position: absolute; top: 15%; left: 50%; width: 30%; height: 45%;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #8a7a7a 0%, #b0a0a0 30%, #c8b8b8 50%, #a09090 70%, #7a6a6a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 50% 50%;
  box-shadow: 0 0 30px 5px rgba(180,160,160,0.3), inset 0 0 20px 5px rgba(200,180,180,0.3);
  animation: tya-mirror-sway 12s ease-in-out infinite alternate;
}
.scn-tyrannous-as-you-art .figure-back {
  position: absolute; bottom: 20%; left: 50%; width: 18%; height: 50%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 20%, #3a2a3a 0%, #1a0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 15px 25px rgba(0,0,0,0.8);
  animation: tya-figure-tilt 7s ease-in-out infinite;
}
.scn-tyrannous-as-you-art .jewel-light {
  position: absolute; top: 55%; left: 50%; width: 6%; height: 6%;
  margin-left: -3%; margin-top: -3%;
  background: radial-gradient(circle, #ffd080 0%, #d09050 40%, #704020 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 10px rgba(255,208,128,0.5);
  animation: tya-jewel-pulse 3s ease-in-out infinite alternate;
}
.scn-tyrannous-as-you-art .hand-reaching {
  position: absolute; bottom: 30%; left: 55%; width: 10%; height: 12%;
  background: radial-gradient(ellipse at 50% 30%, #5a4a4a 0%, #3a2a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(-20deg);
  animation: tya-hand-reach 5s ease-in-out infinite alternate;
}
@keyframes tya-wall-shadow { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes tya-mirror-sway { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(2deg) scale(1.01); } 100% { transform: translateX(-50%) rotate(-2deg) scale(0.99); } }
@keyframes tya-figure-tilt { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(3deg) translateY(2px); } 100% { transform: translateX(-50%) rotate(-1deg) translateY(-1px); } }
@keyframes tya-jewel-pulse { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.15); } 100% { opacity: 0.8; transform: scale(0.9); } }
@keyframes tya-hand-reach { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(5px) scale(1.02); } 100% { transform: rotate(-25deg) translateX(-3px) scale(0.98); } }

.scn-eyes-i-love {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 100%),
    radial-gradient(ellipse at 50% 80%, #4a4a5a 0%, transparent 70%);
}
.scn-eyes-i-love .bg-room {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 60%, #1a1a2a 100%);
  border-radius: 0 0 5% 5%;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.5);
  animation: eil-room-dim 10s ease-in-out infinite alternate;
}
.scn-eyes-i-love .window-pane {
  position: absolute; top: 15%; right: 12%; width: 20%; height: 35%;
  background: radial-gradient(ellipse at center, #b8b8d0 0%, #8888a0 50%, transparent 80%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: inset 0 0 30px 5px rgba(180,180,200,0.3);
  animation: eil-window-glow 8s ease-in-out infinite alternate;
}
.scn-eyes-i-love .curtain-shade {
  position: absolute; top: 10%; right: 10%; width: 22%; height: 42%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: eil-curtain-sway 14s ease-in-out infinite alternate;
}
.scn-eyes-i-love .figure-veiled {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 55%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 20px 30px rgba(0,0,0,0.7);
  animation: eil-figure-bow 9s ease-in-out infinite;
}
.scn-eyes-i-love .eye-left {
  position: absolute; bottom: 48%; left: 42%; width: 4%; height: 5%;
  background: radial-gradient(circle at 40% 40%, #f0f0f0 0%, #c0c0d0 40%, #404060 100%);
  border-radius: 50%; box-shadow: 0 0 15px 3px rgba(200,200,220,0.5);
  animation: eil-eye-blink 4s ease-in-out infinite alternate;
}
.scn-eyes-i-love .eye-right {
  position: absolute; bottom: 48%; left: 54%; width: 4%; height: 5%;
  background: radial-gradient(circle at 60% 40%, #f0f0f0 0%, #c0c0d0 40%, #404060 100%);
  border-radius: 50%; box-shadow: 0 0 15px 3px rgba(200,200,220,0.5);
  animation: eil-eye-blink 4s ease-in-out infinite alternate 0.3s;
}
.scn-eyes-i-love .morning-beam {
  position: absolute; top: 10%; right: 20%; width: 8%; height: 60%;
  background: linear-gradient(180deg, rgba(220,220,240,0.4) 0%, transparent 100%);
  border-radius: 20% 20% 0 0;
  transform: rotate(-8deg);
  filter: blur(4px);
  animation: eil-beam-sweep 20s ease-in-out infinite;
}
@keyframes eil-room-dim { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes eil-window-glow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 1; transform: scale(1.03); } 100% { opacity: 0.7; transform: scale(0.97); } }
@keyframes eil-curtain-sway { 0% { transform: rotate(0); } 50% { transform: rotate(2deg) translateX(3px); } 100% { transform: rotate(-2deg) translateX(-2px); } }
@keyframes eil-figure-bow { 0% { transform: translateX(-50%) rotate(0) translateY(0); } 50% { transform: translateX(-50%) rotate(-4deg) translateY(5px); } 100% { transform: translateX(-50%) rotate(2deg) translateY(-3px); } }
@keyframes eil-eye-blink { 0% { transform: scaleY(1); } 5% { transform: scaleY(0.1); } 10% { transform: scaleY(1); } 100% { transform: scaleY(1); } }
@keyframes eil-beam-sweep { 0% { left: 15%; opacity: 0.3; } 50% { left: 30%; opacity: 0.7; } 100% { left: 15%; opacity: 0.4; } }

.scn-muse-subject-invent {
  background: 
    linear-gradient(180deg, #2a1a1a 0%, #1a0e0a 40%, #0e0806 100%),
    radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, transparent 60%);
}
.scn-muse-subject-invent .room-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
  animation: msi-ambient 12s ease-in-out infinite alternate;
}
.scn-muse-subject-invent .window-light {
  position: absolute; bottom: 55%; left: 65%; width: 80px; height: 100px;
  background: radial-gradient(circle at 50% 50%, #8a6a3a 0%, transparent 70%);
  border-radius: 4px; box-shadow: 0 0 40px 20px rgba(138,106,58,0.3);
  animation: msi-window 8s ease-in-out infinite alternate;
}
.scn-muse-subject-invent .desk {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: msi-desk 6s ease-in-out infinite alternate;
}
.scn-muse-subject-invent .figure-torso {
  position: absolute; bottom: 30%; left: 30%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: msi-breathe 4s ease-in-out infinite alternate;
}
.scn-muse-subject-invent .figure-head {
  position: absolute; bottom: 65%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: msi-nod 6s ease-in-out infinite;
}
.scn-muse-subject-invent .candle {
  position: absolute; bottom: 38%; left: 55%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 60%, #6a4a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(200,160,96,0.4), 0 0 60px 16px rgba(200,160,96,0.2);
  animation: msi-candle 3s ease-in-out infinite alternate;
}
.scn-muse-subject-invent .inkwell {
  position: absolute; bottom: 32%; left: 45%; width: 22px; height: 18px;
  background: radial-gradient(circle at 50% 60%, #2a1a0a 0%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: msi-ink-bob 5s ease-in-out infinite alternate;
}
.scn-muse-subject-invent .paper {
  position: absolute; bottom: 25%; left: 35%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #c8b898 0%, #a89878 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: msi-paper 7s ease-in-out infinite alternate;
}
@keyframes msi-ambient { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes msi-window { 0% { opacity:0.6; box-shadow: 0 0 30px 10px rgba(138,106,58,0.2); } 100% { opacity:1; box-shadow: 0 0 50px 20px rgba(138,106,58,0.4); } }
@keyframes msi-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes msi-breathe { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.02) scaleX(0.98); } 100% { transform: scaleY(1) scaleX(1); } }
@keyframes msi-nod { 0% { transform: rotate(0deg); } 25% { transform: rotate(-2deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes msi-candle { 0% { transform: translateY(0) scale(1); opacity:0.9; } 50% { transform: translateY(-2px) scale(1.02); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:0.9; } }
@keyframes msi-ink-bob { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes msi-paper { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }

.scn-worth-manners-sing {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 40%, #06060e 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a4a 0%, transparent 80%);
}
.scn-worth-manners-sing .stage-curtain-l {
  position: absolute; inset: 0 60% 0 0;
  background: linear-gradient(90deg, #4a2a3a 0%, #2a1a2a 100%);
  border-radius: 0 40% 0 80%; box-shadow: 2px 0 20px rgba(0,0,0,0.6);
  animation: wms-curtain-l 8s ease-in-out infinite alternate;
}
.scn-worth-manners-sing .stage-curtain-r {
  position: absolute; inset: 0 0 0 60%;
  background: linear-gradient(90deg, #2a1a2a 0%, #4a2a3a 100%);
  border-radius: 40% 0 80% 0; box-shadow: -2px 0 20px rgba(0,0,0,0.6);
  animation: wms-curtain-r 8s ease-in-out infinite alternate;
}
.scn-worth-manners-sing .figure-body {
  position: absolute; bottom: 30%; left: 45%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #2a1a3a 0%, #1a0e2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wms-body-sway 6s ease-in-out infinite alternate;
}
.scn-worth-manners-sing .arm-l {
  position: absolute; bottom: 50%; left: 35%; width: 40px; height: 14px;
  background: linear-gradient(90deg, #1a0e2a 0%, #2a1a3a 100%);
  border-radius: 40% 10% 10% 40%; transform-origin: right center;
  animation: wms-arm-l 4s ease-in-out infinite alternate;
}
.scn-worth-manners-sing .arm-r {
  position: absolute; bottom: 50%; right: 35%; width: 40px; height: 14px;
  background: linear-gradient(270deg, #1a0e2a 0%, #2a1a3a 100%);
  border-radius: 10% 40% 40% 10%; transform-origin: left center;
  animation: wms-arm-r 4s ease-in-out infinite alternate;
}
.scn-worth-manners-sing .halo {
  position: absolute; bottom: 75%; left: 48%; width: 40px; height: 40px;
  background: radial-gradient(circle at 50% 50%, #b09870 0%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(176,152,112,0.4);
  animation: wms-halo-pulse 5s ease-in-out infinite alternate;
}
.scn-worth-manners-sing .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: wms-ground 10s ease-in-out infinite alternate;
}
@keyframes wms-curtain-l { 0% { transform: translateX(0); } 50% { transform: translateX(-10px); } 100% { transform: translateX(0); } }
@keyframes wms-curtain-r { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(0); } }
@keyframes wms-body-sway { 0% { transform: rotate(-1deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes wms-arm-l { 0% { transform: rotate(5deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(5deg); } }
@keyframes wms-arm-r { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(-5deg); } }
@keyframes wms-halo-pulse { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.8; transform: scale(1.05); } }
@keyframes wms-ground { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }

.scn-take-all-my-loves {
  background: 
    linear-gradient(180deg, #1a122a 0%, #0e0a1a 40%, #06040e 100%),
    radial-gradient(ellipse at 50% 50%, #2a1a3a 0%, transparent 70%);
}
.scn-take-all-my-loves .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: tal-floor 12s ease-in-out infinite alternate;
}
.scn-take-all-my-loves .wall-l {
  position: absolute; inset: 0 60% 25% 0;
  background: linear-gradient(90deg, #2a1a3a 0%, #1a1230 100%);
  border-radius: 0 0 40% 0; box-shadow: 2px 0 20px rgba(0,0,0,0.5);
  animation: tal-wall-l 8s ease-in-out infinite alternate;
}
.scn-take-all-my-loves .wall-r {
  position: absolute; inset: 0 0 25% 60%;
  background: linear-gradient(90deg, #1a1230 0%, #2a1a3a 100%);
  border-radius: 0 0 0 40%; box-shadow: -2px 0 20px rgba(0,0,0,0.5);
  animation: tal-wall-r 8s ease-in-out infinite alternate;
}
.scn-take-all-my-loves .figure-back {
  position: absolute; bottom: 25%; left: 45%; width: 50px; height: 140px;
  background: linear-gradient(180deg, #2a1a3a 0%, #1a0e2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tal-figure 5s ease-in-out infinite alternate;
}
.scn-take-all-my-loves .lantern {
  position: absolute; bottom: 40%; left: 48%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 50%, #d0a050 0%, #b08030 60%, transparent 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(208,160,80,0.4), 0 0 80px 30px rgba(208,160,80,0.2);
  animation: tal-lantern-swing 4s ease-in-out infinite alternate;
}
.scn-take-all-my-loves .lantern-shadow {
  position: absolute; bottom: 30%; left: 43%; width: 80px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, rgba(208,160,80,0.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: tal-shadow 4s ease-in-out infinite alternate;
}
@keyframes tal-floor { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes tal-wall-l { 0% { transform: skewX(0deg); } 50% { transform: skewX(2deg); } 100% { transform: skewX(0deg); } }
@keyframes tal-wall-r { 0% { transform: skewX(0deg); } 50% { transform: skewX(-2deg); } 100% { transform: skewX(0deg); } }
@keyframes tal-figure { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(-3deg) scaleY(0.98); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes tal-lantern-swing { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(10deg) translateX(5px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes tal-shadow { 0% { transform: translateX(0) scale(1); opacity:0.5; } 50% { transform: translateX(10px) scale(1.2); opacity:0.8; } 100% { transform: translateX(0) scale(1); opacity:0.5; } }

.scn-petty-wrongs {
  background: 
    linear-gradient(180deg, #1a1020 0%, #0e0814 40%, #06040a 100%),
    radial-gradient(ellipse at 50% 80%, #2a1a30 0%, transparent 60%);
}
.scn-petty-wrongs .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a1a30 0%, #1a1020 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
  animation: ptw-wall 10s ease-in-out infinite alternate;
}
.scn-petty-wrongs .window {
  position: absolute; top: 20%; right: 15%; width: 80px; height: 100px;
  background: radial-gradient(circle at 50% 50%, #4a3a50 0%, transparent 80%);
  border-radius: 4px; box-shadow: 0 0 30px 10px rgba(74,58,80,0.3);
  animation: ptw-window-glow 7s ease-in-out infinite alternate;
}
.scn-petty-wrongs .figure-at-window {
  position: absolute; bottom: 20%; right: 18%; width: 40px; height: 130px;
  background: linear-gradient(180deg, #1a0e20 0%, #0a0610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ptw-figure-window 6s ease-in-out infinite alternate;
}
.scn-petty-wrongs .door-frame {
  position: absolute; bottom: 0; left: 10%; width: 60px; height: 80%;
  background: linear-gradient(180deg, #2a1a30 0%, #1a1020 100%);
  border-radius: 8px 8px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: ptw-door 9s ease-in-out infinite alternate;
}
.scn-petty-wrongs .figure-in-doorway {
  position: absolute; bottom: 20%; left: 15%; width: 30px; height: 110px;
  background: linear-gradient(180deg, #1a0e20 0%, #0a0610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ptw-figure-door 5s ease-in-out infinite alternate;
}
.scn-petty-wrongs .floor-line {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, transparent, #4a3a50, transparent);
  box-shadow: 0 0 10px 2px rgba(74,58,80,0.3);
  animation: ptw-floor-pulse 4s ease-in-out infinite alternate;
}
@keyframes ptw-wall { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ptw-window-glow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes ptw-figure-window { 0% { transform: rotate(0deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes ptw-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } 100% { transform: scaleX(1); } }
@keyframes ptw-figure-door { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ptw-floor-pulse { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.6; } }

/* item-glass-dial */
.scn-item-glass-dial { background: linear-gradient(180deg, #f5f0e1 0%, #e8dcc8 50%, #d4c8b4 100%), radial-gradient(ellipse at 75% 35%, #fff8f0 0%, transparent 60%); }
.scn-item-glass-dial .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,248,240,0.3) 0%, transparent 100%); }
.scn-item-glass-dial .table { position:absolute; bottom:8%; left:15%; right:15%; height:18%; background: linear-gradient(180deg, #c8b8a0 0%, #9a8a70 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.15); animation: igd-table 12s ease-in-out infinite alternate; }
.scn-item-glass-dial .mirror { position:absolute; top:18%; left:50%; width:90px; height:110px; transform:translateX(-50%); background: linear-gradient(135deg, #ded8cc 0%, #b0a898 50%, #d4c8b8 100%); border-radius: 50%; border: 5px solid #b0a090; box-shadow: inset 2px 2px 8px rgba(255,255,255,0.6), inset -2px -2px 6px rgba(0,0,0,0.2); animation: igd-mirror 5s ease-in-out infinite alternate; }
.scn-item-glass-dial .dial { position:absolute; top:35%; left:18%; width:44px; height:44px; border-radius:50%; background: #b8a888; border: 3px solid #8a7a68; box-shadow: 0 2px 6px rgba(0,0,0,0.3); }
.scn-item-glass-dial .dial::after { content:''; position:absolute; top:10%; left:48%; width:2px; height:40%; background: #4a3a28; transform-origin: 50% 100%; animation: igd-clock 60s linear infinite; }
.scn-item-glass-dial .book { position:absolute; bottom:20%; left:35%; width:70px; height:48px; background: #f5f0e1; border-radius: 2px; box-shadow: 2px 2px 8px rgba(0,0,0,0.15), inset 0 0 0 1px #c8b8a0; transform-origin: left center; animation: igd-book 10s ease-in-out infinite alternate; }
.scn-item-glass-dial .light-spot { position:absolute; top:15%; right:10%; width:160px; height:180px; background: radial-gradient(ellipse at 50% 50%, rgba(255,250,240,0.4) 0%, transparent 70%); animation: igd-light 7s ease-in-out infinite alternate; }
@keyframes igd-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes igd-mirror { 0% { box-shadow: inset 2px 2px 10px rgba(255,255,255,0.7), inset -2px -2px 8px rgba(0,0,0,0.2); } 50% { box-shadow: inset 4px 4px 14px rgba(255,255,255,0.9), inset -4px -4px 10px rgba(0,0,0,0.3); } 100% { box-shadow: inset 2px 2px 10px rgba(255,255,255,0.7), inset -2px -2px 8px rgba(0,0,0,0.2); } }
@keyframes igd-clock { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes igd-book { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.6); } 100% { transform: scaleX(1); } }
@keyframes igd-light { 0% { opacity:0.6; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.6; transform: scale(0.95); } }

/* invoked-muse */
.scn-invoked-muse { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0e04 100%), radial-gradient(ellipse at 50% 60%, #6a4a2a 0%, transparent 60%); }
.scn-invoked-muse .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,200,100,0.05) 0%, transparent 100%); }
.scn-invoked-muse .desk { position:absolute; bottom:10%; left:10%; right:20%; height:25%; background: linear-gradient(180deg, #4a3a28 0%, #2a1a10 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.5); }
.scn-invoked-muse .candle-base { position:absolute; bottom:28%; left:30%; width:16px; height:30px; background: linear-gradient(180deg, #c8a070 0%, #a08050 100%); border-radius: 4px 4px 2px 2px; }
.scn-invoked-muse .flame { position:absolute; bottom:43%; left:calc(30% + 4px); width:8px; height:24px; background: radial-gradient(ellipse at 50% 100%, #ffd060 0%, #ff8020 60%, transparent 80%); border-radius: 50% 50% 20% 20%; animation: im-flame 2s ease-in-out infinite alternate; }
.scn-invoked-muse .quill { position:absolute; bottom:40%; left:45%; width:6px; height:50px; background: linear-gradient(180deg, #ccbbaa 0%, #8a7a6a 100%); border-radius: 2px; transform-origin: 50% 100%; animation: im-quill 4s ease-in-out infinite; }
.scn-invoked-muse .quill::after { content:''; position:absolute; top:-10px; left:-4px; width:14px; height:16px; background: radial-gradient(ellipse at 50% 50%, #d0c0b0 0%, #a09080 100%); border-radius: 50% 50% 20% 20%; transform: rotate(-20deg); }
.scn-invoked-muse .poet-figure { position:absolute; bottom:22%; left:15%; width:60px; height:90px; background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; animation: im-figure 6s ease-in-out infinite alternate; }
.scn-invoked-muse .muse-shadow { position:absolute; top:10%; right:10%; width:100px; height:140px; background: radial-gradient(ellipse at 50% 60%, rgba(150,100,60,0.3) 0%, transparent 70%); animation: im-muse 8s ease-in-out infinite alternate; }
@keyframes im-flame { 0% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.3); opacity:1; } 100% { transform: scaleY(0.8); opacity:0.85; } }
@keyframes im-quill { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-3px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes im-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes im-muse { 0% { opacity:0.2; transform: scale(0.95); } 50% { opacity:0.5; transform: scale(1.05); } 100% { opacity:0.2; transform: scale(0.95); } }

/* alone-call-aid */
.scn-alone-call-aid { background: linear-gradient(180deg, #2c241c 0%, #1c1410 50%, #0e0a06 100%), radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 60%); }
.scn-alone-call-aid .room-back { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,200,100,0.03) 0%, transparent 100%); }
.scn-alone-call-aid .chair { position:absolute; bottom:12%; left:20%; width:70px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 2px 2px 8px rgba(0,0,0,0.6); }
.scn-alone-call-aid .small-desk { position:absolute; bottom:18%; left:40%; width:100px; height:40px; background: linear-gradient(180deg, #4a3828 0%, #2a1a10 100%); border-radius: 4px; box-shadow: 0 -2px 6px rgba(0,0,0,0.4); }
.scn-alone-call-aid .candle-glow { position:absolute; bottom:38%; left:42%; width:12px; height:28px; background: radial-gradient(ellipse at 50% 100%, #ffd060 0%, #ff8020 60%, transparent 80%); border-radius: 50% 50% 10% 10%; animation: aca-candle 5s ease-in-out infinite alternate; }
.scn-alone-call-aid .sitting-figure { position:absolute; bottom:24%; left:25%; width:50px; height:70px; background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: aca-figure 9s ease-in-out infinite alternate; }
.scn-alone-call-aid .open-book { position:absolute; bottom:22%; left:45%; width:50px; height:30px; background: #f0e8d8; border-radius: 2px; box-shadow: 1px 1px 4px rgba(0,0,0,0.2); transform-origin: left center; animation: aca-book 12s ease-in-out infinite alternate; }
@keyframes aca-candle { 0% { transform: scaleY(0.8); opacity:0.7; } 50% { transform: scaleY(1.2); opacity:1; } 100% { transform: scaleY(0.9); opacity:0.8; } }
@keyframes aca-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0); } }
@keyframes aca-book { 0% { transform: scaleX(0.8); } 50% { transform: scaleX(1); } 100% { transform: scaleX(0.7); } }
@keyframes aca-shadow { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.2; } }
/* note: used aca-shadow keyframe but no element? add to chair or figure? Adjust: add .chair animation? */
.scn-alone-call-aid .chair { animation: aca-shadow 15s ease-in-out infinite alternate; }

/* faint-write */
.scn-faint-write { background: linear-gradient(180deg, #1e1a1e 0%, #2a2224 40%, #1a1014 100%), radial-gradient(ellipse at 60% 40%, #2a1a1a 0%, transparent 60%); }
.scn-faint-write .dark-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%); }
.scn-faint-write .writing-desk { position:absolute; bottom:10%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 6px 6px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.6); }
.scn-faint-write .lamp-light { position:absolute; bottom:35%; left:50%; width:10px; height:20px; background: radial-gradient(ellipse at 50% 100%, #ffd060 0%, #aa6030 60%, transparent 80%); border-radius: 50% 50% 10% 10%; animation: fw-lamp 1.5s ease-in-out infinite alternate; }
.scn-faint-write .trembling-hand { position:absolute; bottom:20%; left:35%; width:20px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom left; animation: fw-hand 2.5s ease-in-out infinite; }
.scn-faint-write .paper-sheet { position:absolute; bottom:25%; left:45%; width:60px; height:45px; background: #f0e8d8; border-radius: 2px; box-shadow: 1px 1px 6px rgba(0,0,0,0.3); transform-origin: left center; animation: fw-paper 3s ease-in-out infinite alternate; }
.scn-faint-write .shadow-presence { position:absolute; top:5%; right:10%; width:100px; height:130px; background: radial-gradient(ellipse at 50% 50%, rgba(30,20,30,0.5) 0%, transparent 70%); animation: fw-shadow 7s ease-in-out infinite alternate; }
.scn-faint-write .ink-pot { position:absolute; bottom:28%; left:30%; width:18px; height:22px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 40% 40% 10% 10%; }
@keyframes fw-lamp { 0% { transform: scaleY(0.7); opacity:0.6; } 50% { transform: scaleY(1.4); opacity:1; } 100% { transform: scaleY(0.8); opacity:0.7; } }
@keyframes fw-hand { 0% { transform: rotate(-2deg) translate(0,0); } 25% { transform: rotate(2deg) translate(1px,-1px); } 50% { transform: rotate(-1deg) translate(-1px,0); } 75% { transform: rotate(3deg) translate(2px,1px); } 100% { transform: rotate(-2deg) translate(0,0); } }
@keyframes fw-paper { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(0.9); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes fw-shadow { 0% { opacity:0.2; transform: scale(0.9); } 50% { opacity:0.5; transform: scale(1.05); } 100% { opacity:0.3; transform: scale(0.95); } }

.scn-can-you-say-not-love {
  background:
    linear-gradient(180deg, #2b1b1a 0%, #1a100e 100%),
    radial-gradient(ellipse at 55% 65%, #4a3520 0%, transparent 70%);
}
.scn-can-you-say-not-love .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2f2020 0%, transparent 100%); animation: cynl-wall 20s ease-in-out infinite alternate; }
.scn-can-you-say-not-love .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1c1210 0%, #0b0706 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-can-you-say-not-love .table { position:absolute; bottom:25%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #5e4a3a 0%, #3a2a1e 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 -4px 8px rgba(0,0,0,.6); animation: cynl-table 12s ease-in-out infinite; }
.scn-can-you-say-not-love .candle { position:absolute; bottom:42%; left:48%; width:8px; height:22px; background: linear-gradient(180deg, #e6c980 0%, #b8984a 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom center; animation: cynl-flicker 1.5s ease-in-out infinite; }
.scn-can-you-say-not-love .glow { position:absolute; bottom:44%; left:48%; width:40px; height:40px; transform:translate(-50%,-50%); background: radial-gradient(circle, rgba(230,200,120,.5) 0%, transparent 70%); border-radius:50%; animation: cynl-glow 2s ease-in-out infinite alternate; }
.scn-can-you-say-not-love .figure { position:absolute; bottom:25%; left:42%; width:20px; height:50px; background: linear-gradient(180deg, #1a1816 0%, #0c0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cynl-sway 5s ease-in-out infinite; }
.scn-can-you-say-not-love .book { position:absolute; bottom:30%; left:44%; width:16px; height:10px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 2px; transform: rotate(-5deg); animation: cynl-book 8s ease-in-out infinite; }
.scn-can-you-say-not-love .shadow { position:absolute; bottom:22%; left:35%; width:30px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); animation: cynl-shadow 6s ease-in-out infinite alternate; }

@keyframes cynl-wall { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes cynl-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes cynl-flicker { 0% { transform: scaleY(1) scaleX(1) translateY(0); opacity:.9 } 50% { transform: scaleY(1.1) scaleX(0.9) translateY(-1px); opacity:1 } 100% { transform: scaleY(1) scaleX(1) translateY(0); opacity:.9 } }
@keyframes cynl-glow { 0% { box-shadow:0 0 20px 8px rgba(230,200,120,.5); opacity:.7 } 50% { box-shadow:0 0 35px 14px rgba(230,200,120,.7); opacity:1 } 100% { box-shadow:0 0 22px 10px rgba(230,200,120,.5); opacity:.8 } }
@keyframes cynl-sway { 0% { transform:translateX(0) translateY(0) rotate(-0.5deg) } 50% { transform:translateX(1px) translateY(-1px) rotate(0.5deg) } 100% { transform:translateX(0) translateY(0) rotate(-0.5deg) } }
@keyframes cynl-book { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-1px) } }
@keyframes cynl-shadow { 0% { transform: scaleX(1); opacity:.5 } 50% { transform: scaleX(1.2); opacity:.7 } 100% { transform: scaleX(0.9); opacity:.5 } }

.scn-from-what-power {
  background:
    linear-gradient(180deg, #1c1a2e 0%, #121020 100%),
    radial-gradient(ellipse at 50% 50%, #2a2a4e 0%, transparent 70%);
}
.scn-from-what-power .bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #23213a 0%, transparent 100%); }
.scn-from-what-power .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #13101e 0%, #0a0810 100%); border-radius: 20% 20% 0 0 / 15% 15% 0 0; }
.scn-from-what-power .figure { position:absolute; bottom:20%; left:42%; width:22px; height:56px; background: linear-gradient(180deg, #24223a 0%, #12101e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fwp-breath 6s ease-in-out infinite; }
.scn-from-what-power .glow { position:absolute; bottom:45%; left:50%; width:50px; height:50px; transform:translate(-50%,-50%); background: radial-gradient(circle, rgba(180,160,255,.4) 0%, transparent 70%); border-radius:50%; animation: fwp-glow 3s ease-in-out infinite alternate; }
.scn-from-what-power .orb { position:absolute; bottom:48%; left:50%; width:18px; height:18px; transform:translate(-50%,-50%); background: radial-gradient(circle, #c4b4ff 0%, #8a7acc 70%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(180,160,255,.6); animation: fwp-orb 4s ease-in-out infinite; }
.scn-from-what-power .beam { position:absolute; bottom:30%; left:50%; width:2px; height:20%; background: linear-gradient(180deg, rgba(180,160,255,.4) 0%, transparent 100%); transform:translateX(-50%); animation: fwp-beam 5s ease-in-out infinite alternate; }
.scn-from-what-power .shadow { position:absolute; bottom:15%; left:38%; width:35px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); animation: fwp-shadow 8s ease-in-out infinite alternate; }

@keyframes fwp-breath { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes fwp-glow { 0% { box-shadow:0 0 20px 6px rgba(180,160,255,.4); opacity:.6 } 50% { box-shadow:0 0 40px 14px rgba(180,160,255,.6); opacity:1 } 100% { box-shadow:0 0 25px 8px rgba(180,160,255,.4); opacity:.7 } }
@keyframes fwp-orb { 0% { transform:translate(-50%,-50%) scale(1) rotate(0deg) } 50% { transform:translate(-50%,-50%) scale(1.1) rotate(180deg) } 100% { transform:translate(-50%,-50%) scale(1) rotate(360deg) } }
@keyframes fwp-beam { 0% { opacity:.3; transform:translateX(-50%) scaleY(0.8) } 50% { opacity:.6; transform:translateX(-50%) scaleY(1.2) } 100% { opacity:.4; transform:translateX(-50%) scaleY(0.9) } }
@keyframes fwp-shadow { 0% { transform: scaleX(1); opacity:.4 } 50% { transform: scaleX(1.3); opacity:.6 } 100% { transform: scaleX(0.8); opacity:.5 } }

.scn-love-young-conscience {
  background:
    linear-gradient(180deg, #1e1820 0%, #100c12 100%),
    radial-gradient(ellipse at 50% 60%, #2a1e2e 0%, transparent 70%);
}
.scn-love-young-conscience .bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a2230 0%, transparent 100%); animation: lyc-bg 15s ease-in-out infinite alternate; }
.scn-love-young-conscience .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #160e1a 0%, #0a060c 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-love-young-conscience .figure { position:absolute; bottom:22%; left:42%; width:24px; height:52px; background: linear-gradient(180deg, #2c2232 0%, #180e1c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lyc-figure 8s ease-in-out infinite; }
.scn-love-young-conscience .conscience { position:absolute; bottom:28%; left:58%; width:14px; height:34px; background: linear-gradient(180deg, rgba(180,160,200,0.4) 0%, rgba(180,160,200,0.1) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(2px); animation: lyc-conscience 5s ease-in-out infinite alternate; }
.scn-love-young-conscience .halo { position:absolute; bottom:33%; left:58%; width:30px; height:30px; transform:translate(-50%,-50%); background: radial-gradient(circle, rgba(200,180,240,0.3) 0%, transparent 70%); border-radius:50%; animation: lyc-halo 4s ease-in-out infinite alternate; }
.scn-love-young-conscience .light { position:absolute; bottom:45%; left:30%; width:30px; height:30px; background: radial-gradient(circle, #d4a373 0%, transparent 60%); border-radius:50%; animation: lyc-light 3s ease-in-out infinite; }
.scn-love-young-conscience .heart { position:absolute; bottom:35%; left:44%; width:12px; height:10px; background: #c8553d; border-radius: 60% 60% 0 0; transform: rotate(-45deg); box-shadow: 0 0 12px 4px rgba(200,85,61,0.5); animation: lyc-heart 2s ease-in-out infinite alternate; }

@keyframes lyc-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes lyc-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes lyc-conscience { 0% { transform: translateX(0) translateY(0) scaleX(1); opacity:.4 } 50% { transform: translateX(4px) translateY(-2px) scaleX(1.1); opacity:.6 } 100% { transform: translateX(0) translateY(0) scaleX(1); opacity:.4 } }
@keyframes lyc-halo { 0% { box-shadow:0 0 20px 6px rgba(200,180,240,0.2); opacity:.5 } 50% { box-shadow:0 0 35px 12px rgba(200,180,240,0.4); opacity:.8 } 100% { box-shadow:0 0 22px 8px rgba(200,180,240,0.3); opacity:.6 } }
@keyframes lyc-light { 0% { transform: scale(1); opacity:.6 } 50% { transform: scale(1.1); opacity:.9 } 100% { transform: scale(1); opacity:.7 } }
@keyframes lyc-heart { 0% { transform: rotate(-45deg) scale(1); opacity:.8 } 50% { transform: rotate(-35deg) scale(1.2); opacity:1 } 100% { transform: rotate(-45deg) scale(1); opacity:.8 } }

.scn-loving-you-forsworn {
  background:
    linear-gradient(180deg, #1e161a 0%, #120c0e 100%),
    radial-gradient(ellipse at 50% 55%, #3a2520 0%, transparent 70%);
}
.scn-loving-you-forsworn .bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2b1c1e 0%, transparent 100%); animation: lyf-bg 12s ease-in-out infinite alternate; }
.scn-loving-you-forsworn .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a0e0c 0%, #0a0604 100%); border-radius: 25% 25% 0 0 / 15% 15% 0 0; }
.scn-loving-you-forsworn .altar { position:absolute; bottom:20%; left:35%; width:30%; height:18%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 6% 6% 10% 10%; box-shadow: 0 -6px 12px rgba(0,0,0,.6); animation: lyf-altar 10s ease-in-out infinite; }
.scn-loving-you-forsworn .book { position:absolute; bottom:28%; left:46%; width:20px; height:14px; background: linear-gradient(180deg, #8a5a3a 0%, #5a3020 100%); border-radius: 3px; transform: rotate(0deg); animation: lyf-book 7s ease-in-out infinite; }
.scn-loving-you-forsworn .figure { position:absolute; bottom:20%; left:40%; width:22px; height:50px; background: linear-gradient(180deg, #2a1c1a 0%, #140c0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lyf-figure 6s ease-in-out infinite; }
.scn-loving-you-forsworn .arm { position:absolute; bottom:30%; left:44%; width:6px; height:18px; background: linear-gradient(180deg, #2a1c1a 0%, #140c0a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin: top left; transform: rotate(20deg); animation: lyf-arm 4s ease-in-out infinite alternate; }
.scn-loving-you-forsworn .candle { position:absolute; bottom:40%; left:48%; width:8px; height:20px; background: linear-gradient(180deg, #e6c080 0%, #b89840 100%); border-radius: 30% 30% 10% 10%; animation: lyf-flicker 2s ease-in-out infinite; }

@keyframes lyf-bg { 0% { opacity:.75 } 50% { opacity:.95 } 100% { opacity:.8 } }
@keyframes lyf-altar { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes lyf-book { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes lyf-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes lyf-arm { 0% { transform: rotate(15deg) scaleY(1) } 50% { transform: rotate(25deg) scaleY(1.05) } 100% { transform: rotate(15deg) scaleY(1) } }
@keyframes lyf-flicker { 0% { transform: scaleY(1) scaleX(1); opacity:.9 } 50% { transform: scaleY(1.1) scaleX(0.9); opacity:1 } 100% { transform: scaleY(1) scaleX(1); opacity:.9 } }

.scn-parts-worlds-eye {
  background: linear-gradient(180deg, #1e1e32 0%, #2a1e3a 60%), radial-gradient(ellipse at 50% 70%, #3a2a4a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-parts-worlds-eye .bg-walls { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a2e 0%, #2a1e3a 100%); }
.scn-parts-worlds-eye .frame { position:absolute; top:25%; left:40%; width:140px; height:180px; background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 8px 30px rgba(0,0,0,.6), inset 0 0 10px rgba(255,215,140,.1); animation: peye-frame 12s ease-in-out infinite alternate; }
.scn-parts-worlds-eye .figure { position:absolute; top:30%; left:46%; width:28px; height:70px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: peye-figure 8s ease-in-out infinite; }
.scn-parts-worlds-eye .curtain { position:absolute; top:0; right:10%; width:60px; height:100%; background: linear-gradient(90deg, #3a2040 0%, #2a1028 100%); border-radius: 0 30% 30% 0 / 0 50% 50% 0; animation: peye-curtain 10s ease-in-out infinite alternate; }
.scn-parts-worlds-eye .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a12 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-parts-worlds-eye .spotlight { position:absolute; top:10%; left:38%; width:120px; height:200px; background: radial-gradient(ellipse, rgba(240,210,160,.3) 0%, transparent 70%); mix-blend-mode: screen; animation: peye-spotlight 6s ease-in-out infinite alternate; }
@keyframes peye-frame { 0% { transform: rotate(0deg); } 25% { transform: rotate(0.5deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-0.3deg); } 100% { transform: rotate(0deg); } }
@keyframes peye-figure { 0% { transform: translateY(0) scale(1); } 30% { transform: translateY(-2px) scale(1.01); } 50% { transform: translateY(0) scale(1); } 70% { transform: translateY(1px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes peye-curtain { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-3px) scaleX(1.02); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes peye-spotlight { 0% { opacity: 0.6; box-shadow: 0 0 60px 20px rgba(240,210,160,.2); } 50% { opacity: 0.9; box-shadow: 0 0 80px 30px rgba(240,210,160,.3); } 100% { opacity: 0.7; box-shadow: 0 0 40px 10px rgba(240,210,160,.15); } }

.scn-blamed-not-defect {
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 50%, #3a4a5a 100%), radial-gradient(ellipse at 50% 0%, #8a9aaa 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-blamed-not-defect .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); animation: bndef-sky 20s ease-in-out infinite alternate; }
.scn-blamed-not-defect .clouds { position:absolute; top:5%; left:0; width:200%; height:40%; background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: bndef-clouds 40s linear infinite; }
.scn-blamed-not-defect .hill { position:absolute; bottom:20%; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 70% 40% 0 0 / 60% 50% 0 0; }
.scn-blamed-not-defect .figure { position:absolute; bottom:30%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; animation: bndef-figure 8s ease-in-out infinite; }
.scn-blamed-not-defect .crow { position:absolute; top:12%; left:60%; width:30px; height:16px; background: #1a1a1a; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-10deg); animation: bndef-crow 12s ease-in-out infinite; }
.scn-blamed-not-defect .branch { position:absolute; bottom:35%; left:20%; width:80px; height:6px; background: linear-gradient(90deg, #3a2a1a 0%, #1a120a 100%); border-radius: 0 50% 50% 0; transform-origin: left; animation: bndef-branch 5s ease-in-out infinite alternate; }
@keyframes bndef-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes bndef-clouds { 0% { transform: translateX(-10%); } 50% { transform: translateX(5%); } 100% { transform: translateX(-10%); } }
@keyframes bndef-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bndef-crow { 0% { transform: translate(0,0) rotate(-10deg); } 25% { transform: translate(20px,-10px) rotate(0deg); } 50% { transform: translate(40px,5px) rotate(-5deg); } 75% { transform: translate(60px,-5px) rotate(2deg); } 100% { transform: translate(80px,0) rotate(-10deg); } }
@keyframes bndef-branch { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.03) rotate(2deg); } 100% { transform: scaleX(1) rotate(0deg); } }

.scn-no-longer-mourn {
  background: linear-gradient(180deg, #0e0e18 0%, #1a0e1e 60%), radial-gradient(ellipse at 30% 80%, #2a1a2e 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-no-longer-mourn .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #0e0e18 0%, #1a0e1e 100%); }
.scn-no-longer-mourn .desk { position:absolute; bottom:10%; left:15%; right:15%; height:30%; background: linear-gradient(180deg, #2a1a12 0%, #1a0a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -6px 30px rgba(0,0,0,.7); }
.scn-no-longer-mourn .candle { position:absolute; bottom:30%; left:25%; width:12px; height:40px; background: linear-gradient(180deg, #f0d8a0 0%, #c8a060 100%); border-radius: 50% 50% 10% 10% / 40% 40% 15% 15%; animation: nlm-candle 4s ease-in-out infinite; }
.scn-no-longer-mourn .paper { position:absolute; bottom:22%; left:35%; width:80px; height:60px; background: linear-gradient(180deg, #d8c8a0 0%, #b8a878 100%); border-radius: 4%; transform: rotate(-5deg); animation: nlm-paper 6s ease-in-out infinite alternate; }
.scn-no-longer-mourn .hand { position:absolute; bottom:32%; left:40%; width:20px; height:35px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: nlm-hand 5s ease-in-out infinite; }
.scn-no-longer-mourn .bell { position:absolute; bottom:25%; right:20%; width:24px; height:28px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 50% 50% 20% 20% / 50% 50% 30% 30%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); animation: nlm-bell 7s ease-in-out infinite alternate; }
@keyframes nlm-candle { 0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 16px 4px rgba(240,200,120,.5); } 30% { transform: scaleY(1.05) translateY(-2px); box-shadow: 0 0 24px 6px rgba(240,200,120,.6); } 60% { transform: scaleY(0.95) translateY(1px); box-shadow: 0 0 12px 3px rgba(240,200,120,.4); } 100% { transform: scaleY(1) translateY(0); box-shadow: 0 0 16px 4px rgba(240,200,120,.5); } }
@keyframes nlm-paper { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2px); } 100% { transform: rotate(-6deg) translateY(0); } }
@keyframes nlm-hand { 0% { transform: rotate(0deg) translate(0,0); } 25% { transform: rotate(3deg) translate(3px,-2px); } 50% { transform: rotate(2deg) translate(5px,-1px); } 75% { transform: rotate(-2deg) translate(0,0); } 100% { transform: rotate(0deg) translate(0,0); } }
@keyframes nlm-bell { 0% { transform: rotate(0deg) scale(1); } 30% { transform: rotate(8deg) scale(1.02); } 60% { transform: rotate(-5deg) scale(0.98); } 100% { transform: rotate(0deg) scale(1); } }

.scn-task-to-recite {
  background: linear-gradient(180deg, #0e0e18 0%, #1a0e1e 60%), radial-gradient(ellipse at 70% 70%, #2a1a2e 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-task-to-recite .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #0e0e18 0%, #1a0e1e 100%); }
.scn-task-to-recite .desk { position:absolute; bottom:10%; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #2a1a12 0%, #1a0a0a 100%); border-radius: 15% 15% 0 0; box-shadow: 0 -8px 40px rgba(0,0,0,.8); }
.scn-task-to-recite .candle { position:absolute; bottom:35%; left:20%; width:14px; height:45px; background: linear-gradient(180deg, #f0d8a0 0%, #c8a060 100%); border-radius: 50% 50% 10% 10% / 40% 40% 15% 15%; animation: trecite-candle 4.5s ease-in-out infinite; }
.scn-task-to-recite .letter { position:absolute; bottom:20%; left:38%; width:90px; height:70px; background: linear-gradient(180deg, #d8c8a0 0%, #b8a878 100%); border-radius: 2%; transform: rotate(3deg); animation: trecite-letter 8s ease-in-out infinite alternate; }
.scn-task-to-recite .figure { position:absolute; bottom:25%; left:45%; width:30px; height:80px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 35% 35%; animation: trecite-figure 9s ease-in-out infinite; }
.scn-task-to-recite .cup { position:absolute; bottom:20%; right:18%; width:20px; height:22px; background: linear-gradient(180deg, #3a3018 0%, #1a1208 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: inset 0 4px 6px rgba(0,0,0,.5); animation: trecite-cup 6s ease-in-out infinite alternate; }
@keyframes trecite-candle { 0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 20px 5px rgba(240,200,120,.5); } 35% { transform: scaleY(1.07) translateY(-3px); box-shadow: 0 0 30px 8px rgba(240,200,120,.6); } 70% { transform: scaleY(0.93) translateY(2px); box-shadow: 0 0 14px 3px rgba(240,200,120,.4); } 100% { transform: scaleY(1) translateY(0); box-shadow: 0 0 20px 5px rgba(240,200,120,.5); } }
@keyframes trecite-letter { 0% { transform: rotate(3deg) translateY(0); } 40% { transform: rotate(2deg) translateY(-3px); } 80% { transform: rotate(4deg) translateY(1px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes trecite-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(1deg); } 60% { transform: translateY(2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes trecite-cup { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }

/* sessions-thought – dark interior, figure at desk */
.scn-sessions-thought {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a1a2e 60%, #1e121c 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a4a 0%, transparent 70%);
}
.scn-sessions-thought .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #0a0a1a 0%, #151525 100%);
  animation: st-room 12s ease-in-out infinite alternate;
}
.scn-sessions-thought .desk {
  position: absolute; bottom: 6%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140a 100%);
  border-radius: 6% 6% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.6);
}
.scn-sessions-thought .figure {
  position: absolute; bottom: 18%; left: 50%; width: 20%; height: 38%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: st-figure 8s ease-in-out infinite;
}
.scn-sessions-thought .candle {
  position: absolute; bottom: 24%; left: 36%; width: 3%; height: 14%;
  background: linear-gradient(180deg, #e8d0a0 0%, #a08050 60%, #6a4a2a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.scn-sessions-thought .candle-glow {
  position: absolute; bottom: 26%; left: 34%; width: 8%; height: 12%;
  background: radial-gradient(circle, #ffc060 0%, #a06020 50%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: st-glow 3s ease-in-out infinite alternate;
}
.scn-sessions-thought .tear {
  position: absolute; top: 40%; left: 48%; width: 2%; height: 2%;
  background: radial-gradient(circle, #80c0ff 0%, #4060a0 100%);
  border-radius: 50%; opacity: 0;
  animation: st-tear 5s ease-in-out infinite;
}
.scn-sessions-thought .shadow {
  position: absolute; inset: 0; 
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,.3) 0%, transparent 70%);
  animation: st-shadow 10s ease-in-out infinite alternate;
}
@keyframes st-room { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes st-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes st-glow { 0% { transform: scale(.9); opacity: .6 } 50% { transform: scale(1.1); opacity: 1 } 100% { transform: scale(.95); opacity: .7 } }
@keyframes st-tear { 0% { top: 35%; opacity: 0; transform: translateY(0) } 30% { opacity: .8 } 50% { top: 60%; opacity: .6; transform: translateY(40px) } 100% { top: 80%; opacity: 0; transform: translateY(80px) } }
@keyframes st-shadow { 0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .5 } }

/* bosom-endeared – warm interior, figure embracing a heart */
.scn-bosom-endeared {
  background: linear-gradient(180deg, #2a1e14 0%, #3a2818 40%, #2a1a0e 100%),
              radial-gradient(ellipse at 50% 60%, #5a382a 0%, transparent 70%);
}
.scn-bosom-endeared .room-warm {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #1a100a 0%, #2a1e14 100%);
  animation: be-wall 20s ease-in-out infinite alternate;
}
.scn-bosom-endeared .warm-glow {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 50%;
  background: radial-gradient(ellipse at 50% 80%, #e08840 0%, transparent 70%);
  filter: blur(20px); opacity: .6; animation: be-glow 5s ease-in-out infinite alternate;
}
.scn-bosom-endeared .figure {
  position: absolute; bottom: 15%; left: 50%; width: 24%; height: 44%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: be-figure 6s ease-in-out infinite;
}
.scn-bosom-endeared .arms {
  position: absolute; bottom: 25%; left: 42%; width: 30%; height: 18%;
  background: linear-gradient(180deg, #3a2214 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-5deg); animation: be-arms 7s ease-in-out infinite;
}
.scn-bosom-endeared .heart {
  position: absolute; bottom: 32%; left: 50%; width: 10%; height: 10%;
  transform: translateX(-50%) rotate(-45deg);
  background: radial-gradient(circle at 30% 30%, #c8553d 0%, #a0461a 60%, #5e1a1d 100%);
  border-radius: 50% 50% 0 50%; box-shadow: 0 0 20px 8px rgba(200,85,61,.4);
  animation: be-heart 3s ease-in-out infinite alternate;
}
.scn-bosom-endeared .book {
  position: absolute; bottom: 10%; left: 28%; width: 14%; height: 10%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 4%; transform: rotate(-10deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,.4);
}
.scn-bosom-endeared .ember-1 {
  position: absolute; bottom: 40%; left: 30%; width: 2%; height: 2%;
  background: #ffa060; border-radius: 50%; box-shadow: 0 0 8px 2px #ffa060;
  animation: be-ember-1 4s ease-in-out infinite;
}
.scn-bosom-endeared .ember-2 {
  position: absolute; bottom: 40%; left: 55%; width: 1.5%; height: 1.5%;
  background: #ff8040; border-radius: 50%; box-shadow: 0 0 6px 1px #ff8040;
  animation: be-ember-2 5s ease-in-out infinite;
  animation-delay: 1.5s;
}
@keyframes be-wall { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .8 } }
@keyframes be-glow { 0% { opacity: .5; transform: scaleY(.95) } 50% { opacity: .8; transform: scaleY(1.05) } 100% { opacity: .6; transform: scaleY(1) } }
@keyframes be-figure { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes be-arms { 0% { transform: rotate(-4deg) translateX(0) } 50% { transform: rotate(-6deg) translateX(2px) } 100% { transform: rotate(-4deg) translateX(0) } }
@keyframes be-heart { 0% { transform: translateX(-50%) rotate(-45deg) scale(1); box-shadow: 0 0 15px 5px rgba(200,85,61,.3) } 50% { transform: translateX(-50%) rotate(-45deg) scale(1.08); box-shadow: 0 0 30px 12px rgba(200,85,61,.5) } 100% { transform: translateX(-50%) rotate(-45deg) scale(1); box-shadow: 0 0 20px 8px rgba(200,85,61,.4) } }
@keyframes be-ember-1 { 0% { bottom: 40%; opacity: .8; transform: translateX(0) } 50% { bottom: 55%; opacity: .4; transform: translateX(10px) } 100% { bottom: 70%; opacity: 0; transform: translateX(20px) } }
@keyframes be-ember-2 { 0% { bottom: 40%; opacity: .7; transform: translateX(0) } 50% { bottom: 60%; opacity: .3; transform: translateX(-8px) } 100% { bottom: 80%; opacity: 0; transform: translateX(-16px) } }

/* survive-my-day – calm desk with writing implements */
.scn-survive-my-day {
  background: linear-gradient(180deg, #1e1510 0%, #2a1e16 50%, #1a120c 100%),
              radial-gradient(ellipse at 50% 100%, #3a281e 0%, transparent 60%);
}
.scn-survive-my-day .bg-dark { 
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #140e0a 0%, #201812 100%);
  animation: sd-bg 15s ease-in-out infinite alternate;
}
.scn-survive-my-day .desk-surface {
  position: absolute; bottom: 8%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #4a3220 0%, #2a1e10 100%);
  border-radius: 8% 8% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
}
.scn-survive-my-day .paper {
  position: absolute; bottom: 22%; left: 30%; width: 30%; height: 18%;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%);
  border-radius: 3%; box-shadow: 2px 2px 6px rgba(0,0,0,.3);
  transform: rotate(-3deg); animation: sd-paper 12s ease-in-out infinite;
}
.scn-survive-my-day .inkwell {
  position: absolute; bottom: 16%; left: 24%; width: 8%; height: 8%;
  background: radial-gradient(circle at 30% 30%, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: sd-ink 20s ease-in-out infinite;
}
.scn-survive-my-day .quill {
  position: absolute; bottom: 28%; left: 22%; width: 20%; height: 4%;
  background: linear-gradient(180deg, #6a5040 0%, #a08060 50%, #6a5040 100%);
  border-radius: 20% 50% 50% 20% / 60% 60% 40% 40%;
  transform: rotate(-35deg); transform-origin: 80% 50%;
  animation: sd-quill 8s ease-in-out infinite;
}
.scn-survive-my-day .candle {
  position: absolute; bottom: 14%; left: 58%; width: 4%; height: 16%;
  background: linear-gradient(180deg, #f0d8b0 0%, #a08050 70%, #6a4a2a 100%);
  border-radius: 15% 15% 5% 5%; box-shadow: 0 -2px 4px rgba(0,0,0,.2);
}
.scn-survive-my-day .flame {
  position: absolute; bottom: 30%; left: 57.5%; width: 3%; height: 6%;
  background: radial-gradient(circle, #ffd080 0%, #e8a030 60%, transparent 100%);
  border-radius: 50%; filter: blur(1px);
  animation: sd-flame 2.5s ease-in-out infinite alternate;
}
.scn-survive-my-day .smoke-1 {
  position: absolute; bottom: 36%; left: 58%; width: 6%; height: 4%;
  background: rgba(180,160,140,.15); filter: blur(10px); border-radius: 50%;
  animation: sd-smoke-1 9s ease-out infinite;
}
.scn-survive-my-day .smoke-2 {
  position: absolute; bottom: 36%; left: 59%; width: 5%; height: 3%;
  background: rgba(180,160,140,.12); filter: blur(8px); border-radius: 50%;
  animation: sd-smoke-2 11s ease-out infinite; animation-delay: 3s;
}
@keyframes sd-bg { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes sd-paper { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-2.5deg) translateY(-1px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes sd-ink { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes sd-quill { 0% { transform: rotate(-35deg) } 50% { transform: rotate(-30deg) } 100% { transform: rotate(-35deg) } }
@keyframes sd-flame { 0% { transform: scaleY(.9) scaleX(1); opacity: .8 } 50% { transform: scaleY(1.1) scaleX(1.05); opacity: 1 } 100% { transform: scaleY(.95) scaleX(1); opacity: .85 } }
@keyframes sd-smoke-1 { 0% { bottom: 36%; opacity: .6; transform: translateX(0) scale(1) } 50% { bottom: 50%; opacity: .3; transform: translateX(15px) scale(1.3) } 100% { bottom: 65%; opacity: 0; transform: translateX(30px) scale(1.6) } }
@keyframes sd-smoke-2 { 0% { bottom: 36%; opacity: .5; transform: translateX(0) scale(1) } 50% { bottom: 48%; opacity: .2; transform: translateX(-10px) scale(1.2) } 100% { bottom: 60%; opacity: 0; transform: translateX(-20px) scale(1.5) } }

/* glorious-morning – dawn landscape with mountains and clouds */
.scn-glorious-morning {
  background: linear-gradient(180deg, #ffddb0 0%, #ffb080 30%, #906050 60%, #304060 100%),
              radial-gradient(ellipse at 70% 30%, #ffe8c0 0%, transparent 60%);
}
.scn-glorious-morning .sky-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffe8c0 0%, #ffc080 40%, #906050 100%);
  animation: gm-sky 20s ease-in-out infinite alternate;
}
.scn-glorious-morning .mountain-far {
  position: absolute; bottom: 38%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  filter: blur(4px); opacity: .7; animation: gm-mtn-far 30s ease-in-out infinite alternate;
}
.scn-glorious-morning .mountain-mid {
  position: absolute; bottom: 32%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 0 0 / 70% 80% 0 0;
  filter: blur(1px); opacity: .85; animation: gm-mtn-mid 25s ease-in-out infinite alternate;
}
.scn-glorious-morning .meadow {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a9a5a 0%, #4a6a3a 100%);
  border-radius: 100% 100% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.2);
  animation: gm-meadow 18s ease-in-out infinite;
}
.scn-glorious-morning .stream {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 4%;
  background: linear-gradient(90deg, #a0b8d0 0%, #c0d8e8 30%, #a0b8d0 100%);
  border-radius: 50%; opacity: .6; filter: blur(2px);
  animation: gm-stream 14s linear infinite;
}
.scn-glorious-morning .sun {
  position: absolute; bottom: 40%; left: 70%; width: 12%; height: 12%;
  background: radial-gradient(circle at 60% 40%, #ffe8a0 0%, #ffb040 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,176,64,.5);
  animation: gm-sun 8s ease-in-out infinite alternate;
}
.scn-glorious-morning .cloud-1 {
  position: absolute; top: 6%; left: 10%; width: 18%; height: 6%;
  background: rgba(255,255,255,.3); filter: blur(12px); border-radius: 50%;
  animation: gm-cloud-1 40s linear infinite;
}
.scn-glorious-morning .cloud-2 {
  position: absolute; top: 14%; right: 16%; width: 14%; height: 4%;
  background: rgba(255,255,255,.25); filter: blur(10px); border-radius: 50%;
  animation: gm-cloud-2 50s linear infinite; animation-delay: -10s;
}
.scn-glorious-morning .rays {
  position: absolute; bottom: 40%; left: 68%; width: 20%; height: 100%;
  background: linear-gradient(135deg, rgba(255,200,100,.2) 0%, transparent 60%);
  filter: blur(8px); opacity: .5; animation: gm-rays 12s ease-in-out infinite alternate;
}
@keyframes gm-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes gm-mtn-far { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(2px) scaleY(0.98) } 100% { transform: translateX(-2px) scaleY(1) } }
@keyframes gm-mtn-mid { 0% { transform: translateX(0) } 50% { transform: translateX(-1px) } 100% { transform: translateX(1px) } }
@keyframes gm-meadow { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes gm-stream { 0% { background-position: 0% 0% } 100% { background-position: 100% 0% } }
@keyframes gm-sun { 0% { transform: scale(.95); box-shadow: 0 0 40px 15px rgba(255,176,64,.4) } 50% { transform: scale(1.05); box-shadow: 0 0 80px 30px rgba(255,176,64,.6) } 100% { transform: scale(.98); box-shadow: 0 0 50px 20px rgba(255,176,64,.45) } }
@keyframes gm-cloud-1 { 0% { transform: translateX(-30px) } 100% { transform: translateX(110vw) } }
@keyframes gm-cloud-2 { 0% { transform: translateX(20px) } 100% { transform: translateX(-120vw) } }
@keyframes gm-rays { 0% { opacity: .3; transform: rotate(0deg) } 50% { opacity: .6; transform: rotate(2deg) } 100% { opacity: .4; transform: rotate(-2deg) } }

/* Scene 1: winter-absence — dark, overcast, wide horizon */
.scn-winter-absence {
  background: linear-gradient(180deg, #2a3b4c 0%, #1b222b 60%, #0f141a 100%),
              radial-gradient(ellipse at 50% 100%, #4a5a6a 0%, transparent 80%);
}
.scn-winter-absence .wa-sky     { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #3a4b5c 0%, #1b222b 100%); animation: wa-sky 12s ease-in-out infinite alternate; }
.scn-winter-absence .wa-ground  { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #2a322a 0%, #0f141a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: wa-ground 14s ease-in-out infinite alternate; }
.scn-winter-absence .wa-tree    { position: absolute; bottom: 35%; left: 25%; width: 4px; height: 60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 2px; transform-origin: bottom center; animation: wa-tree 20s ease-in-out infinite alternate; }
.scn-winter-absence .wa-tree::before { content: ''; position: absolute; top: -10px; left: -12px; width: 28px; height: 20px; background: radial-gradient(circle at 30% 50%, #1a1a1a 0%, transparent 70%); border-radius: 50%; }
.scn-winter-absence .wa-tree::after  { content: ''; position: absolute; top: -20px; left: -6px; width: 16px; height: 16px; background: radial-gradient(circle at 50% 50%, #1a1a1a 0%, transparent 60%); border-radius: 50%; }
.scn-winter-absence .wa-figure  { position: absolute; bottom: 30%; left: 50%; width: 14px; height: 28px; background: linear-gradient(180deg, #0f141a 0%, #05080a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wa-figure 6s ease-in-out infinite; }
.scn-winter-absence .wa-snowflake { position: absolute; top: -5%; width: 4px; height: 4px; background: rgba(220, 230, 240, 0.7); border-radius: 50%; filter: blur(1px); animation: wa-snow 15s linear infinite; }
.scn-winter-absence .wa-s1      { left: 10%; animation-delay: 0s; animation-duration: 18s; }
.scn-winter-absence .wa-s2      { left: 70%; animation-delay: -5s; animation-duration: 14s; }
.scn-winter-absence .wa-cloud   { position: absolute; top: 12%; left: -10%; width: 80px; height: 20px; background: linear-gradient(180deg, rgba(60,70,80,.6) 0%, rgba(40,50,60,.2) 100%); border-radius: 50%; filter: blur(8px); animation: wa-cloud 35s linear infinite; }

@keyframes wa-sky      { 0%   { opacity: 0.7; } 50%  { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes wa-ground   { 0%   { transform: translateY(0) scaleY(1); } 50%  { transform: translateY(-3px) scaleY(0.98); } 100% { transform: translateY(2px) scaleY(1.02); } }
@keyframes wa-tree     { 0%   { transform: rotate(-2deg); } 50%  { transform: rotate(3deg); } 100% { transform: rotate(-1deg); } }
@keyframes wa-figure   { 0%   { transform: translateX(0) translateY(0) rotate(-2deg); } 25%  { transform: translateX(5px) translateY(-1px) rotate(1deg); } 50%  { transform: translateX(10px) translateY(0) rotate(-1deg); } 75%  { transform: translateX(15px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(20px) translateY(0) rotate(0deg); } }
@keyframes wa-snow     { 0%   { transform: translateY(-10vh) rotate(0deg) scale(1); opacity: 0; } 10%  { opacity: 0.8; } 50%  { transform: translateY(50vh) rotate(180deg) scale(0.8); opacity: 0.6; } 90%  { opacity: 0.2; } 100% { transform: translateY(110vh) rotate(360deg) scale(1.2); opacity: 0; } }
@keyframes wa-cloud    { 0%   { transform: translateX(0) scaleX(1); } 50%  { transform: translateX(40vw) scaleX(1.1); } 100% { transform: translateX(110vw) scaleX(0.9); } }

/* Scene 2: absent-spring — warm, sunlit, vibrant landscape */
.scn-absent-spring {
  background: linear-gradient(135deg, #a1c4fd 0%, #c2e9fb 50%, #fff1eb 100%),
              radial-gradient(circle at 20% 80%, #f0d78a 0%, transparent 60%);
}
.scn-absent-spring .as-sky       { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #e0f6ff 100%); animation: as-sky 8s ease-in-out infinite alternate; }
.scn-absent-spring .as-meadow    { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #519259 0%, #2d6a4f 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.2); animation: as-meadow 16s ease-in-out infinite alternate; }
.scn-absent-spring .as-branch    { position: absolute; top: 5%; left: 5%; width: 40%; height: 8px; background: linear-gradient(90deg, #5c4033 0%, #8b5a2b 100%); border-radius: 4px; transform-origin: left center; animation: as-branch 9s ease-in-out infinite; }
.scn-absent-spring .as-branch::after { content: ''; position: absolute; top: -4px; right: 10%; width: 12px; height: 12px; background: radial-gradient(circle, #ffb7c5 0%, #ff8da1 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(255, 183, 197, 0.6); }
.scn-absent-spring .as-butterfly { position: absolute; width: 12px; height: 8px; background: #ffa07a; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; filter: blur(0.5px); animation: as-butterfly 12s ease-in-out infinite; }
.scn-absent-spring .as-b1        { top: 30%; left: 20%; animation-duration: 14s; animation-delay: -2s; }
.scn-absent-spring .as-b2        { top: 50%; left: 60%; animation-duration: 10s; animation-delay: -7s; }
.scn-absent-spring .as-sun       { position: absolute; top: 10%; right: 15%; width: 40px; height: 40px; background: radial-gradient(circle, #fff5cc 0%, #ffd700 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(255, 215, 0, 0.4); animation: as-sun 5s ease-in-out infinite alternate; }
.scn-absent-spring .as-blossom   { position: absolute; bottom: 15%; left: 30%; width: 60px; height: 60px; background: radial-gradient(circle at 50% 50%, #ffb7c5 0%, #ff8da1 40%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: as-bloom 7s ease-in-out infinite; }

@keyframes as-sky       { 0%   { opacity: 0.8; } 50%  { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes as-meadow    { 0%   { transform: translateY(0) scaleY(1); } 50%  { transform: translateY(-5px) scaleY(0.97); } 100% { transform: translateY(3px) scaleY(1.02); } }
@keyframes as-branch    { 0%   { transform: rotate(-3deg) translateY(0); } 50%  { transform: rotate(4deg) translateY(-4px); } 100% { transform: rotate(-2deg) translateY(2px); } }
@keyframes as-butterfly { 0%   { transform: translate(0, 0) rotate(-10deg) scale(1); } 25%  { transform: translate(30px, -20px) rotate(5deg) scale(1.1); } 50%  { transform: translate(60px, -10px) rotate(-5deg) scale(0.9); } 75%  { transform: translate(90px, -30px) rotate(15deg) scale(1.2); } 100% { transform: translate(120px, 0) rotate(0deg) scale(1); } }
@keyframes as-sun       { 0%   { transform: scale(0.95); opacity: 0.8; } 50%  { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.98); opacity: 0.9; } }
@keyframes as-bloom     { 0%   { transform: scale(0.8) rotate(-5deg); opacity: 0.6; } 50%  { transform: scale(1.1) rotate(5deg); opacity: 0.9; } 100% { transform: scale(0.9) rotate(0deg); opacity: 0.7; } }

/* Scene 3: item-rose-lily-chide — warm, sunlit, close-up still life */
.scn-item-rose-lily-chide {
  background: linear-gradient(180deg, #fff4e0 0%, #fbd3e9 40%, #bbd2c5 70%, #536976 100%),
              radial-gradient(circle at 70% 30%, #fff4e0 0%, transparent 60%);
}
.scn-item-rose-lily-chide .irl-bg      { position: absolute; inset: 0; background: radial-gradient(circle at 60% 40%, rgba(255,255,255,0.4) 0%, transparent 70%); animation: irl-bg 20s ease-in-out infinite alternate; }
.scn-item-rose-lily-chide .irl-violet  { position: absolute; bottom: 20%; left: 20%; width: 30px; height: 30px; background: radial-gradient(circle at 40% 40%, #9b59b6 0%, #6c3483 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 10px 2px rgba(108, 52, 131, 0.5); animation: irl-sway 5s ease-in-out infinite; }
.scn-item-rose-lily-chide .irl-rose    { position: absolute; bottom: 15%; left: 45%; width: 40px; height: 35px; background: radial-gradient(circle at 50% 30%, #c8553d 0%, #a0461a 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 15px 4px rgba(168, 70, 26, 0.4); animation: irl-sway 6s ease-in-out infinite reverse; }
.scn-item-rose-lily-chide .irl-lily    { position: absolute; bottom: 25%; right: 20%; width: 25px; height: 35px; background: radial-gradient(circle at 50% 40%, #ffffff 0%, #f0f0f0 100%); border-radius: 30% 70% 50% 50% / 50% 60% 40% 50%; transform-origin: bottom center; box-shadow: 0 0 12px 3px rgba(255,255,255,0.6); animation: irl-sway 4.5s ease-in-out infinite; }
.scn-item-rose-lily-chide .irl-dew     { position: absolute; bottom: 30%; left: 40%; width: 4px; height: 4px; background: #ffffff; border-radius: 50%; box-shadow: 0 0 6px 2px rgba(255,255,255,0.8); animation: irl-sparkle 3s ease-in-out infinite; }
.scn-item-rose-lily-chide .irl-sunbeam { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0) 50%, rgba(255,255,255,0.1) 100%); pointer-events: none; animation: irl-sunbeam 12s ease-in-out infinite alternate; }

@keyframes irl-bg       { 0%   { opacity: 0.8; } 50%  { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes irl-sway     { 0%   { transform: rotate(-4deg) scale(1) translateY(0); } 50%  { transform: rotate(4deg) scale(1.02) translateY(-3px); } 100% { transform: rotate(-2deg) scale(0.98) translateY(2px); } }
@keyframes irl-sparkle  { 0%   { opacity: 0.3; transform: scale(0.5); } 50%  { opacity: 1; transform: scale(1.5); } 100% { opacity: 0.5; transform: scale(0.8); } }
@keyframes irl-sunbeam  { 0%   { transform: translateX(-15px) rotate(-8deg); opacity: 0.6; } 50%  { transform: translateX(10px) rotate(5deg); opacity: 1; } 100% { transform: translateX(-5px) rotate(-2deg); opacity: 0.7; } }

/* Scene 4: where-art-muse — tense, dim interior cutaway */
.scn-where-art-muse {
  background: radial-gradient(ellipse at 50% 50%, #2d2a24 0%, #1c1c1c 70%, #0a0a0a 100%),
              linear-gradient(180deg, #4a3e35 0%, #1c1c1c 100%);
}
.scn-where-art-muse .wam-wall    { position: absolute; inset: 0; background: linear-gradient(90deg, #1c1c1c 0%, #2d2a24 15%, #4a3e35 50%, #2d2a24 85%, #1c1c1c 100%); box-shadow: inset 0 0 50px rgba(0,0,0,0.8); animation: wam-wall 15s ease-in-out infinite alternate; }
.scn-where-art-muse .wam-desk    { position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%; background: linear-gradient(180deg, #5c4033 0%, #3a2a1a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 15px rgba(0,0,0,0.7); }
.scn-where-art-muse .wam-candle  { position: absolute; bottom: 30%; left: 50%; width: 8px; height: 20px; margin-left: -4px; background: linear-gradient(180deg, #f5e6d3 0%, #d4b896 100%); border-radius: 2px 2px 4px 4px; transform-origin: bottom center; animation: wam-flicker 0.8s ease-in-out infinite; }
.scn-where-art-muse .wam-candle::after { content: ''; position: absolute; top: -12px; left: -4px; width: 16px; height: 16px; background: radial-gradient(circle, #ffd700 0%, #ff8c00 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 25px 10px rgba(255, 140, 0, 0.5); animation: wam-glow 1.2s ease-in-out infinite alternate; }
.scn-where-art-muse .wam-inkwell { position: absolute; bottom: 28%; left: 40%; width: 16px; height: 18px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%; box-shadow: 0 2px 5px rgba(0,0,0,0.8); }
.scn-where-art-muse .wam-quill   { position: absolute; bottom: 35%; left: 42%; width: 30px; height: 6px; background: linear-gradient(90deg, #f0f0f0 0%, #d4d4d4 100%); transform-origin: right center; border-radius: 3px; animation: wam-twitch 4s ease-in-out infinite; }
.scn-where-art-muse .wam-quill::after { content: ''; position: absolute; left: -2px; top: -2px; width: 4px; height: 10px; background: #1a1a1a; border-radius: 50%; }
.scn-where-art-muse .wam-shadow  { position: absolute; bottom: 5%; left: 20%; width: 60%; height: 50%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%); transform-origin: bottom center; animation: wam-shadow 10s ease-in-out infinite alternate; }
.scn-where-art-muse .wam-dust    { position: absolute; width: 3px; height: 3px; background: rgba(220, 200, 180, 0.6); border-radius: 50%; filter: blur(1px); animation: wam-drift 12s linear infinite; }
.scn-where-art-muse .wam-d1      { top: 40%; left: 50%; animation-duration: 14s; animation-delay: -4s; }
.scn-where-art-muse .wam-d2      { top: 60%; left: 55%; animation-duration: 10s; animation-delay: -9s; }

@keyframes wam-wall     { 0%   { opacity: 0.8; } 50%  { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes wam-flicker  { 0%   { transform: scaleY(1) rotate(-2deg); } 25%  { transform: scaleY(1.05) rotate(1deg); } 50%  { transform: scaleY(0.95) rotate(-1deg); } 75%  { transform: scaleY(1.02) rotate(3deg); } 100% { transform: scaleY(1) rotate(0deg); } }
@keyframes wam-glow     { 0%   { box-shadow: 0 0 20px 8px rgba(255, 140, 0, 0.4); opacity: 0.8; } 50%  { box-shadow: 0 0 35px 15px rgba(255, 140, 0, 0.7); opacity: 1; } 100% { box-shadow: 0 0 25px 10px rgba(255, 140, 0, 0.5); opacity: 0.9; } }
@keyframes wam-twitch   { 0%   { transform: rotate(0deg) translateY(0); } 20%  { transform: rotate(3deg) translateY(-2px); } 40%  { transform: rotate(-2deg) translateY(1px); } 60%  { transform: rotate(5deg) translateY(-3px); } 80%  { transform: rotate(-3deg) translateY(0); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes wam-shadow   { 0%   { transform: translateX(-15px) scaleX(0.9); opacity: 0.5; } 50%  { transform: translateX(15px) scaleX(1.2); opacity: 0.8; } 100% { transform: translateX(-5px) scaleX(1); opacity: 0.6; } }
@keyframes wam-drift    { 0%   { transform: translate(0, 0) scale(1); opacity: 0; } 10%  { opacity: 0.7; } 50%  { transform: translate(15px, -25px) scale(1.8); opacity: 0.4; } 90%  { opacity: 0.1; } 100% { transform: translate(30px, -50px) scale(2.5); opacity: 0; } }

/* tongue-tied-muse: calm, dim-interior, writer's study */
.scn-tongue-tied-muse { background: linear-gradient(180deg, #1a1620 0%, #2c2430 40%, #3a2e3a 100%), radial-gradient(ellipse at 50% 0%, #4a3e5a 0%, transparent 70%); }
.scn-tongue-tied-muse .study-wall { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,.3) 100%); }
.scn-tongue-tied-muse .desk { position: absolute; bottom: 8%; left: 15%; right: 15%; height: 20%; background: linear-gradient(180deg, #4a3020 0%, #2c1a10 100%); border-radius: 4px; box-shadow: 0 -4px 20px rgba(0,0,0,.6); }
.scn-tongue-tied-muse .open-book { position: absolute; bottom: 18%; left: 50%; width: 120px; height: 80px; transform: translateX(-50%) perspective(400px) rotateX(5deg); background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 50%, #e8dcc8 100%); border-radius: 2px; box-shadow: 0 8px 24px rgba(0,0,0,.5); animation: ttm-book-breathe 6s ease-in-out infinite; }
.scn-tongue-tied-muse .golden-quill { position: absolute; bottom: 24%; left: 45%; width: 60px; height: 12px; transform-origin: 80% 50%; background: linear-gradient(90deg, #c8a060 0%, #e8d090 40%, #d8b870 100%); border-radius: 50% 10% 10% 50%; box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: ttm-quill-write 4s ease-in-out infinite; }
.scn-tongue-tied-muse .inkwell { position: absolute; bottom: 16%; left: 60%; width: 24px; height: 28px; background: radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-tongue-tied-muse .candle-glow { position: absolute; bottom: 28%; left: 35%; width: 40px; height: 60px; background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, #c08040 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,208,128,.3), 0 0 120px 40px rgba(255,208,128,.1); animation: ttm-candle-flicker 3s ease-in-out infinite alternate; }
.scn-tongue-tied-muse .muse-shadow { position: absolute; bottom: 20%; right: 10%; width: 100px; height: 180px; background: linear-gradient(180deg, rgba(200,180,220,.15) 0%, rgba(100,80,120,.1) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(12px); transform-origin: bottom center; animation: ttm-muse-drift 12s ease-in-out infinite; }
@keyframes ttm-book-breathe { 0% { transform: translateX(-50%) perspective(400px) rotateX(5deg) scale(1); } 50% { transform: translateX(-50%) perspective(400px) rotateX(7deg) scale(1.01); } 100% { transform: translateX(-50%) perspective(400px) rotateX(5deg) scale(1); } }
@keyframes ttm-quill-write { 0% { transform: rotate(-10deg) translateX(0); } 25% { transform: rotate(-5deg) translateX(4px); } 50% { transform: rotate(-12deg) translateX(0); } 75% { transform: rotate(-6deg) translateX(3px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes ttm-candle-flicker { 0% { opacity: .85; box-shadow: 0 0 40px 15px rgba(255,208,128,.2), 0 0 80px 30px rgba(255,208,128,.1); } 50% { opacity: 1; box-shadow: 0 0 60px 20px rgba(255,208,128,.4), 0 0 120px 40px rgba(255,208,128,.15); } 100% { opacity: .9; box-shadow: 0 0 45px 18px rgba(255,208,128,.25), 0 0 90px 35px rgba(255,208,128,.1); } }
@keyframes ttm-muse-drift { 0% { transform: translateY(0) scale(1); opacity: .6; } 50% { transform: translateY(-6px) scale(1.02); opacity: .8; } 100% { transform: translateY(0) scale(1); opacity: .6; } }

/* proud-full-sail: tense, dim-interior, stormy window scene */
.scn-proud-full-sail { background: linear-gradient(180deg, #08080e 0%, #10101a 40%, #181826 100%), radial-gradient(ellipse at 50% 50%, #20203a 0%, transparent 70%); }
.scn-proud-full-sail .room-wall { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,.4) 100%); }
.scn-proud-full-sail .window-frame { position: absolute; top: 10%; left: 15%; right: 15%; bottom: 40%; border: 12px solid #1a1a2a; background: #0a0a14; border-radius: 4px; box-shadow: inset 0 0 40px rgba(0,0,0,.8), 0 8px 32px rgba(0,0,0,.5); }
.scn-proud-full-sail .storm-sea { position: absolute; top: 15%; left: 18%; right: 18%; bottom: 43%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #0a1a2a 100%); border-radius: 2px; animation: pfs-sea-surge 8s ease-in-out infinite; }
.scn-proud-full-sail .ship-silhouette { position: absolute; top: 20%; left: 45%; width: 60px; height: 80px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); clip-path: polygon(20% 80%, 80% 80%, 100% 50%, 70% 30%, 50% 10%, 30% 30%, 0% 50%); transform-origin: center 80%; animation: pfs-ship-rock 6s ease-in-out infinite; }
.scn-proud-full-sail .lightning-flash { position: absolute; top: 15%; left: 30%; width: 4px; height: 40px; background: #d0e8ff; box-shadow: 0 0 20px 10px #a0c8ff, 0 0 40px 20px rgba(160,200,255,.3); animation: pfs-lightning 12s ease-in-out infinite; }
.scn-proud-full-sail .poet-figure { position: absolute; bottom: 20%; left: 50%; width: 40px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #0a0a14 0%, #1a1a2e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pfs-figure-tremble 2s ease-in-out infinite; }
.scn-proud-full-sail .overturned-chair { position: absolute; bottom: 15%; left: 30%; width: 50px; height: 70px; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 4px; transform: rotate(-30deg); transform-origin: bottom right; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: pfs-chair-shift 15s ease-in-out infinite; }
@keyframes pfs-sea-surge { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-4px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes pfs-ship-rock { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-3px); } 50% { transform: rotate(-1deg) translateY(2px); } 75% { transform: rotate(4deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes pfs-lightning { 0% { opacity: 0; } 2% { opacity: 1; box-shadow: 0 0 40px 20px #a0c8ff; } 5% { opacity: 0; } 10% { opacity: .6; box-shadow: 0 0 20px 10px #a0c8ff; } 15% { opacity: 0; } 100% { opacity: 0; } }
@keyframes pfs-figure-tremble { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 25% { transform: translateX(calc(-50% + 2px)) rotate(.5deg) scale(1.01); } 50% { transform: translateX(calc(-50% - 1px)) rotate(-.5deg) scale(1); } 75% { transform: translateX(calc(-50% + 3px)) rotate(.3deg) scale(1.01); } 100% { transform: translateX(-50%) rotate(0deg) scale(1); } }
@keyframes pfs-chair-shift { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-28deg) translateY(-4px); } 100% { transform: rotate(-30deg) translateY(0); } }

/* farewell-dear: dark, dim-interior, close-up parting */
.scn-farewell-dear { background: linear-gradient(180deg, #050308 0%, #140a16 40%, #1a0f0a 100%), radial-gradient(ellipse at 50% 100%, #2a1510 0%, transparent 70%); }
.scn-farewell-dear .dark-void { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,.5) 100%); }
.scn-farewell-dear .table-surface { position: absolute; bottom: 5%; left: 5%; right: 5%; height: 15%; background: linear-gradient(180deg, #2a1a10 0%, #0a0502 100%); border-radius: 8px; box-shadow: 0 -8px 30px rgba(0,0,0,.6); }
.scn-farewell-dear .candle-stick { position: absolute; bottom: 20%; left: 25%; width: 16px; height: 60px; background: linear-gradient(180deg, #5a4030 0%, #3a2010 100%); border-radius: 4px 4px 6px 6px; box-shadow: 0 4px 12px rgba(0,0,0,.4); }
.scn-farewell-dear .candle-flame { position: absolute; bottom: 35%; left: calc(25% + 8px); width: 14px; height: 28px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #ffe0a0 0%, #c08040 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,.3); animation: fd-flame-weep 4s ease-in-out infinite; }
.scn-farewell-dear .parchment-letter { position: absolute; bottom: 12%; left: 35%; right: 20%; height: 30%; background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%); border-radius: 4px; box-shadow: 0 4px 20px rgba(0,0,0,.5); transform: rotate(-2deg); transform-origin: left center; animation: fd-letter-tremble 5s ease-in-out infinite; }
.scn-farewell-dear .hand-reaching { position: absolute; bottom: 15%; left: 45%; width: 40px; height: 60px; background: linear-gradient(180deg, #e8d0b8 0%, #b89878 100%); border-radius: 45% 55% 45% 55% / 60% 40% 60% 40%; transform-origin: bottom right; animation: fd-hand-out 6s ease-in-out infinite; }
.scn-farewell-dear .hand-withdrawing { position: absolute; bottom: 18%; right: 25%; width: 40px; height: 60px; background: linear-gradient(180deg, #e8d0b8 0%, #b89878 100%); border-radius: 55% 45% 55% 45% / 40% 60% 40% 60%; transform-origin: bottom left; animation: fd-hand-in 6s ease-in-out infinite; }
.scn-farewell-dear .broken-chain { position: absolute; bottom: 25%; left: 50%; width: 80px; height: 8px; background: repeating-linear-gradient(90deg, #5a5030 0px, #5a5030 8px, transparent 8px, transparent 12px); border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: fd-chain-fall 8s ease-in-out infinite; }
@keyframes fd-flame-weep { 0% { transform: translateX(-50%) scaleY(1) scaleX(1); box-shadow: 0 0 30px 10px #c08040; } 25% { transform: translateX(-50%) scaleY(1.3) scaleX(.8); box-shadow: 0 0 40px 15px #c08040; } 50% { transform: translateX(-50%) scaleY(.9) scaleX(1.1); box-shadow: 0 0 20px 5px #c08040; } 75% { transform: translateX(-50%) scaleY(1.1) scaleX(.9); box-shadow: 0 0 35px 12px #c08040; } 100% { transform: translateX(-50%) scaleY(1) scaleX(1); box-shadow: 0 0 30px 10px #c08040; } }
@keyframes fd-letter-tremble { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes fd-hand-out { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-10px) rotate(-5deg); } 50% { transform: translateX(-20px) rotate(-10deg); } 75% { transform: translateX(-10px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fd-hand-in { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(15px) rotate(5deg); } 50% { transform: translateX(30px) rotate(10deg); } 75% { transform: translateX(15px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fd-chain-fall { 0% { transform: translateY(0) rotate(0deg); opacity: 1; } 25% { transform: translateY(10px) rotate(20deg); opacity: .8; } 50% { transform: translateY(40px) rotate(45deg); opacity: .5; } 75% { transform: translateY(80px) rotate(60deg); opacity: .2; } 100% { transform: translateY(120px) rotate(90deg); opacity: 0; } }

/* disposed-to-set-light: dark, dim-interior, judgment hall */
.scn-disposed-to-set-light { background: linear-gradient(180deg, #0c0a0a 0%, #141210 40%, #1c1816 100%), radial-gradient(ellipse at 50% 30%, #3a302a 0%, transparent 70%); }
.scn-disposed-to-set-light .stone-wall { position: absolute; inset: 0; background: repeating-linear-gradient(90deg, rgba(40,35,30,.2) 0px, rgba(40,35,30,.2) 4px, transparent 4px, transparent 60px), repeating-linear-gradient(0deg, rgba(40,35,30,.15) 0px, rgba(40,35,30,.15) 4px, transparent 4px, transparent 40px); }
.scn-disposed-to-set-light .judgment-light { position: absolute; top: -10%; left: 30%; right: 30%; bottom: 40%; background: linear-gradient(180deg, rgba(220,200,180,.4) 0%, rgba(220,200,180,.1) 50%, transparent 100%); clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); animation: dsl-light-flicker 4s ease-in-out infinite; transform-origin: top center; }
.scn-disposed-to-set-light .pillory-base { position: absolute; bottom: 25%; left: 50%; width: 60px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,.5); }
.scn-disposed-to-set-light .pleading-figure { position: absolute; bottom: 25%; left: 50%; width: 40px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dsl-figure-bow 6s ease-in-out infinite; }
.scn-disposed-to-set-light .figure-shadow { position: absolute; bottom: 25%; left: 30%; width: 80px; height: 120px; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; filter: blur(8px); animation: dsl-shadow-sway 6s ease-in-out infinite; }
.scn-disposed-to-set-light .scales { position: absolute; bottom: 40%; left: 20%; width: 80px; height: 60px; background: linear-gradient(180deg, #5a5040 0%, #2a2018 100%); border-radius: 4px; clip-path: polygon(0% 40%, 20% 0%, 80% 0%, 100% 40%, 80% 100%, 20% 100%); transform-origin: center 30%; animation: dsl-scales-tilt 10s ease-in-out infinite; }
.scn-disposed-to-set-light .evidence-scroll { position: absolute; bottom: 15%; left: 15%; width: 100px; height: 20px; background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%); border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,.3); transform: rotate(-5deg); animation: dsl-scroll-unfurl 8s ease-in-out infinite; }
@keyframes dsl-light-flicker { 0% { opacity: .7; filter: blur(0px); } 25% { opacity: 1; filter: blur(1px); } 50% { opacity: .8; filter: blur(0px); } 75% { opacity: .9; filter: blur(2px); } 100% { opacity: .7; filter: blur(0px); } }
@keyframes dsl-figure-bow { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 25% { transform: translateX(-50%) rotate(-5deg) scale(.95); } 50% { transform: translateX(-50%) rotate(-10deg) scale(.9); } 75% { transform: translateX(-50%) rotate(-5deg) scale(.95); } 100% { transform: translateX(-50%) rotate(0deg) scale(1); } }
@keyframes dsl-shadow-sway { 0% { transform: translateX(0) skewX(0deg); } 25% { transform: translateX(-5px) skewX(2deg); } 50% { transform: translateX(-10px) skewX(5deg); } 75% { transform: translateX(-5px) skewX(2deg); } 100% { transform: translateX(0) skewX(0deg); } }
@keyframes dsl-scales-tilt { 0% { transform: rotate(0deg); } 25% { transform: rotate(15deg); } 50% { transform: rotate(-5deg); } 75% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }
@keyframes dsl-scroll-unfurl { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(-3deg) scaleX(1.1); } 100% { transform: rotate(-5deg) scaleX(1); } }

.scn-stars-judgment { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #2a2a5e 100%), radial-gradient(ellipse at 50% 100%, #1a1a4e 0%, transparent 70%); }
.scn-stars-judgment .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, rgba(255,255,255,0.05) 0%, transparent 100%); animation: sj-sky 10s ease-in-out infinite alternate; }
.scn-stars-judgment .hills { position:absolute; bottom:20%; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); animation: sj-hills 15s ease-in-out infinite alternate; }
.scn-stars-judgment .trunk { position:absolute; bottom:32%; left:38%; width:8px; height:50px; background:#2a2a1a; border-radius:2px; transform-origin: bottom center; animation: sj-tree-trunk 8s ease-in-out infinite alternate; }
.scn-stars-judgment .canopy { position:absolute; bottom:55%; left:32%; width:50px; height:50px; background: radial-gradient(circle at 40% 40%, #3a4a1a, #1a2a0a); border-radius:50%; filter:blur(1px); transform-origin: bottom center; animation: sj-tree-canopy 8s ease-in-out infinite alternate; }
.scn-stars-judgment .figure { position:absolute; bottom:20%; left:50%; width:16px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sj-figure 6s ease-in-out infinite alternate; }
.scn-stars-judgment .star-a, .scn-stars-judgment .star-b, .scn-stars-judgment .star-c { position:absolute; width:4px; height:4px; background:#fff; border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,255,255,0.5); animation: sj-star 4s ease-in-out infinite alternate; }
.scn-stars-judgment .star-a { top:15%; left:20%; animation-delay:0s; }
.scn-stars-judgment .star-b { top:25%; left:70%; width:3px; height:3px; animation-delay:1.5s; }
.scn-stars-judgment .star-c { top:10%; left:55%; width:5px; height:5px; animation-delay:3s; }
@keyframes sj-sky { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes sj-hills { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes sj-tree-trunk { 0%{transform:scaleY(1) rotate(0deg)} 50%{transform:scaleY(1.02) rotate(1deg)} 100%{transform:scaleY(1) rotate(0deg)} }
@keyframes sj-tree-canopy { 0%{transform:scale(1) rotate(-2deg)} 50%{transform:scale(1.02) rotate(2deg)} 100%{transform:scale(1) rotate(-2deg)} }
@keyframes sj-figure { 0%{transform:translateX(0) rotate(0deg)} 50%{transform:translateX(5px) rotate(3deg)} 100%{transform:translateX(0) rotate(0deg)} }
@keyframes sj-star { 0%{opacity:0.3;transform:scale(0.7)} 50%{opacity:1;transform:scale(1.1)} 100%{opacity:0.3;transform:scale(0.7)} }

.scn-everything-grows { background: linear-gradient(180deg, #87CEEB 0%, #FFD700 100%), radial-gradient(ellipse at 50% 100%, #FFD700 0%, transparent 70%); }
.scn-everything-grows .sun { position:absolute; top:10%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #FFFACD 0%, #FFD700 50%, transparent 80%); border-radius:50%; box-shadow:0 0 40px 20px #FFD700; animation: eg-sun 6s ease-in-out infinite alternate; }
.scn-everything-grows .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%); animation: eg-sky 10s ease-in-out infinite alternate; }
.scn-everything-grows .hills { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #7CFC00 0%, #228B22 100%); border-radius: 20% 80% 0 0 / 50% 70% 0 0; animation: eg-hills 12s ease-in-out infinite alternate; }
.scn-everything-grows .stem { position:absolute; bottom:35%; left:45%; width:6px; height:100px; background: linear-gradient(180deg, #228B22 0%, #006400 100%); border-radius:2px; transform-origin: bottom center; animation: eg-stem 8s ease-in-out infinite; }
.scn-everything-grows .petal-left, .scn-everything-grows .petal-right { position:absolute; bottom:60%; left:44%; width:20px; height:30px; background: radial-gradient(circle at 30% 30%, #FF69B4 0%, #FF1493 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom center; animation: eg-petal 7s ease-in-out infinite alternate; }
.scn-everything-grows .petal-left { left:38%; transform:rotate(-30deg); animation-delay:0s; }
.scn-everything-grows .petal-right { left:48%; transform:rotate(30deg); animation-delay:0.5s; }
.scn-everything-grows .leaf { position:absolute; bottom:45%; left:52%; width:30px; height:15px; background:#32CD32; border-radius: 0 50% 50% 0; transform-origin: left center; animation: eg-leaf 9s ease-in-out infinite; }
@keyframes eg-sun { 0%{transform:scale(1)} 50%{transform:scale(1.1)} 100%{transform:scale(0.95)} }
@keyframes eg-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.9} }
@keyframes eg-hills { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes eg-stem { 0%{transform:scaleY(0.5)} 50%{transform:scaleY(1.1)} 100%{transform:scaleY(1)} }
@keyframes eg-petal { 0%{transform:scale(0.8) rotate(0deg)} 50%{transform:scale(1.1) rotate(5deg)} 100%{transform:scale(1) rotate(0deg)} }
@keyframes eg-leaf { 0%{transform:scaleX(0.5) rotate(0deg)} 50%{transform:scaleX(1.1) rotate(10deg)} 100%{transform:scaleX(1) rotate(0deg)} }

.scn-war-on-time { background: linear-gradient(180deg, #2b1a1a 0%, #4a3a2a 40%, #3a2a1a 100%), radial-gradient(circle at 30% 30%, #5e1a1d 0%, transparent 60%); }
.scn-war-on-time .walls-left, .scn-war-on-time .walls-right { position:absolute; top:0; bottom:0; width:15%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); box-shadow: inset 0 0 20px rgba(0,0,0,0.8); }
.scn-war-on-time .walls-left { left:0; }
.scn-war-on-time .walls-right { right:0; }
.scn-war-on-time .window { position:absolute; top:20%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border:2px solid #5e1a1d; border-radius:4px; box-shadow: 0 0 30px 10px rgba(200,85,61,0.5); animation: wt-window 3s ease-in-out infinite alternate; }
.scn-war-on-time .hourglass { position:absolute; bottom:30%; left:30%; width:40px; height:70px; background:transparent; border:2px solid #a0461a; border-radius: 50% 50% 10% 10%; animation: wt-hourglass 5s ease-in-out infinite; }
.scn-war-on-time .hourglass::after { content:''; position:absolute; bottom:0; left:10%; width:80%; height:50%; background:#d4a76a; border-radius: 0 0 50% 50% / 0 0 100% 100%; animation: wt-sand 5s ease-in-out infinite; }
.scn-war-on-time .figure { position:absolute; bottom:20%; left:55%; width:20px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform-origin: bottom center; animation: wt-figure 4s ease-in-out infinite alternate; }
.scn-war-on-time .sword { position:absolute; bottom:25%; left:60%; width:5px; height:40px; background:#708090; border-radius:2px; transform-origin: bottom center; animation: wt-sword 3s ease-in-out infinite alternate; }
@keyframes wt-window { 0%{box-shadow:0 0 20px 5px rgba(200,85,61,0.3);opacity:0.7} 50%{box-shadow:0 0 40px 15px rgba(200,85,61,0.7);opacity:1} 100%{box-shadow:0 0 20px 5px rgba(200,85,61,0.3);opacity:0.8} }
@keyframes wt-hourglass { 0%{transform:scale(1) rotate(0deg)} 50%{transform:scale(1.05) rotate(2deg)} 100%{transform:scale(1) rotate(0deg)} }
@keyframes wt-sand { 0%{height:0%} 50%{height:70%} 100%{height:30%} }
@keyframes wt-figure { 0%{transform:translateX(0) scale(1)} 50%{transform:translateX(3px) scale(1.02)} 100%{transform:translateX(0) scale(1)} }
@keyframes wt-sword { 0%{transform:rotate(-10deg)} 50%{transform:rotate(20deg)} 100%{transform:rotate(-10deg)} }

.scn-will-believe { background: linear-gradient(180deg, #3a2a1a 0%, #5e3a1e 40%, #2a1a0a 100%), radial-gradient(circle at 50% 60%, #e67e22 0%, transparent 50%); }
.scn-will-believe .study-wall { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,0.05) 0%, transparent 100%); animation: wb-wall 10s ease-in-out infinite alternate; }
.scn-will-believe .desk { position:absolute; bottom:15%; left:25%; right:25%; height:20px; background: linear-gradient(180deg, #6b4a2a 0%, #4a2a1a 100%); border-radius:2px; box-shadow:0 4px 10px rgba(0,0,0,0.5); animation: wb-desk 4s ease-in-out infinite; }
.scn-will-believe .lamp { position:absolute; bottom:55%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #d97a00 0%, #8b4513 100%); border-radius:5px 5px 10px 10px; transform-origin: bottom center; animation: wb-lamp 6s ease-in-out infinite alternate; }
.scn-will-believe .lamp-light { position:absolute; bottom:58%; left:28%; width:30px; height:30px; background: radial-gradient(circle, #ffd699 0%, transparent 70%); border-radius:50%; animation: wb-light 3s ease-in-out infinite alternate; }
.scn-will-believe .book { position:absolute; bottom:18%; left:35%; width:40px; height:30px; background:#6b4a2a; border:1px solid #4a2a1a; border-radius:2px; box-shadow:0 2px 5px rgba(0,0,0,0.3); transform:rotate(-5deg); animation: wb-book 8s ease-in-out infinite alternate; }
.scn-will-believe .quill { position:absolute; bottom:30%; left:50%; width:5px; height:35px; background:#f5deb3; border-radius:2px; transform-origin: bottom center; animation: wb-quill 5s ease-in-out infinite alternate; }
.scn-will-believe .hand { position:absolute; bottom:28%; left:48%; width:12px; height:20px; background: linear-gradient(180deg, #d2a679 0%, #b08060 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform-origin: bottom center; animation: wb-hand 4s ease-in-out infinite alternate; }
@keyframes wb-wall { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.95} }
@keyframes wb-desk { 0%{transform:translateY(0)} 50%{transform:translateY(-1px)} 100%{transform:translateY(0)} }
@keyframes wb-lamp { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.03)} 100%{transform:scaleY(1)} }
@keyframes wb-light { 0%{transform:scale(1);opacity:0.8} 50%{transform:scale(1.2);opacity:1} 100%{transform:scale(1);opacity:0.9} }
@keyframes wb-book { 0%{transform:rotate(-5deg)} 50%{transform:rotate(0deg)} 100%{transform:rotate(-5deg)} }
@keyframes wb-quill { 0%{transform:rotate(5deg)} 50%{transform:rotate(-5deg)} 100%{transform:rotate(5deg)} }
@keyframes wb-hand { 0%{transform:translateX(0) rotate(0deg)} 50%{transform:translateX(3px) rotate(2deg)} 100%{transform:translateX(0) rotate(0deg)} }

/* Scene: o-truant-muse (warm, dim-interior) */
.scn-o-truant-muse {
  background: linear-gradient(135deg, #3c2a1e 0%, #5a3a22 50%, #4a2a16 100%), radial-gradient(ellipse at 80% 85%, #c07030 0%, transparent 70%);
}
.scn-o-truant-muse .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.4) 100%);
  animation: otr-vignette 10s ease-in-out infinite alternate;
}
.scn-o-truant-muse .table {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 18%;
  background: linear-gradient(to top, #3a2a1e, #4a3a2a);
  border-radius: 10% 10% 0 0;
  animation: otr-table 12s ease-in-out infinite;
}
.scn-o-truant-muse .figure {
  position: absolute; bottom: 22%; left: 35%;
  width: 24px; height: 60px;
  background: #1a1410;
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: otr-figure 8s ease-in-out infinite;
}
.scn-o-truant-muse .candle {
  position: absolute; bottom: 12%; left: 55%;
  width: 8px; height: 20px;
  background: #f5e6c8;
  border-radius: 10% 10% 0 0;
  animation: otr-candle 15s ease-in-out infinite;
}
.scn-o-truant-muse .flame {
  position: absolute; bottom: 20%; left: 55%; transform: translateX(-50%);
  width: 6px; height: 12px;
  background: radial-gradient(circle, #ffe080, #ffa040);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 16px 4px #ffa040;
  animation: otr-flame 2s ease-in-out infinite;
}
.scn-o-truant-muse .paper {
  position: absolute; bottom: 8%; left: 30%;
  width: 30px; height: 40px;
  background: #f5f0e8;
  border-radius: 4%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: otr-paper 20s ease-in-out infinite;
}
.scn-o-truant-muse .book {
  position: absolute; bottom: 10%; left: 48%;
  width: 20px; height: 15px;
  background: #5a3a22;
  border-radius: 10%;
  animation: otr-book 18s ease-in-out infinite;
}
@keyframes otr-vignette {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes otr-table {
  0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); }
}
@keyframes otr-figure {
  0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); }
}
@keyframes otr-candle {
  0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); }
}
@keyframes otr-flame {
  0% { transform: scaleY(1) scaleX(0.8); opacity: 0.9; } 50% { transform: scaleY(1.3) scaleX(1); opacity: 1; } 100% { transform: scaleY(0.9) scaleX(0.7); opacity: 0.8; }
}
@keyframes otr-paper {
  0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); }
}
@keyframes otr-book {
  0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); }
}

/* Scene: love-strengthened (calm, dim-interior) */
.scn-love-strengthened {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 50%, #4a4a5a 100%), radial-gradient(ellipse at 50% 60%, #3a3a5a 0%, transparent 60%);
}
.scn-love-strengthened .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 70%, rgba(0,0,0,0) 40%, rgba(0,0,0,0.3) 100%);
  animation: ls-vignette 10s ease-in-out infinite alternate;
}
.scn-love-strengthened .window-frame {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 50%;
  background: #4a4a5a;
  border: 3px solid #6a6a7a;
  border-radius: 4%;
  animation: ls-frame 15s ease-in-out infinite;
}
.scn-love-strengthened .glass {
  position: absolute; top: 23%; left: 33%; width: 34%; height: 44%;
  background: linear-gradient(180deg, #5a5a7a 0%, #3a3a5a 50%, #2a2a4a 100%);
  border-radius: 2%;
  animation: ls-glass 10s ease-in-out infinite alternate;
}
.scn-love-strengthened .curtain-left {
  position: absolute; top: 20%; left: 30%; width: 8%; height: 50%;
  background: linear-gradient(90deg, #5a4a3a, #4a3a2a);
  border-radius: 0 20% 20% 0;
  animation: ls-curtain 12s ease-in-out infinite alternate;
}
.scn-love-strengthened .curtain-right {
  position: absolute; top: 20%; right: 30%; width: 8%; height: 50%;
  background: linear-gradient(270deg, #5a4a3a, #4a3a2a);
  border-radius: 20% 0 0 20%;
  animation: ls-curtain 12s ease-in-out infinite alternate-reverse;
}
.scn-love-strengthened .figure {
  position: absolute; bottom: 30%; left: 45%;
  width: 20px; height: 40px;
  background: #1a1a2a;
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: ls-figure 8s ease-in-out infinite;
}
.scn-love-strengthened .cushion {
  position: absolute; bottom: 28%; left: 44%;
  width: 30px; height: 10px;
  background: #3a2a2a;
  border-radius: 20%;
  animation: ls-cushion 10s ease-in-out infinite;
}
@keyframes ls-vignette {
  0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes ls-frame {
  0% { box-shadow: inset 0 0 10px rgba(0,0,0,0.2); } 50% { box-shadow: inset 0 0 20px rgba(0,0,0,0.3); } 100% { box-shadow: inset 0 0 10px rgba(0,0,0,0.2); }
}
@keyframes ls-glass {
  0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.6; }
}
@keyframes ls-curtain {
  0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); }
}
@keyframes ls-figure {
  0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ls-cushion {
  0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); }
}

/* Scene: alas-poverty-muse (calm, bright-interior) */
.scn-alas-poverty-muse {
  background: linear-gradient(135deg, #f5f0e8 0%, #e8dcc8 50%, #d4c4b0 100%), radial-gradient(ellipse at 20% 80%, #c8b8a0 0%, transparent 60%);
}
.scn-alas-poverty-muse .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 40%, transparent 50%, rgba(0,0,0,0.05) 100%);
  animation: apm-bg 12s ease-in-out infinite alternate;
}
.scn-alas-poverty-muse .mirror-frame {
  position: absolute; top: 20%; left: 35%;
  width: 180px; height: 240px;
  border: 8px solid #6a5a4a;
  border-radius: 50%;
  background: transparent;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
  animation: apm-frame 14s ease-in-out infinite;
}
.scn-alas-poverty-muse .mirror-surface {
  position: absolute; top: 22%; left: 37%;
  width: 164px; height: 224px;
  background: linear-gradient(180deg, #c8b8a8, #b8a898);
  border-radius: 50%;
  animation: apm-mirror 15s ease-in-out infinite alternate;
}
.scn-alas-poverty-muse .figure {
  position: absolute; bottom: 20%; left: 48%;
  width: 20px; height: 50px;
  background: #3a2a1a;
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: apm-figure 10s ease-in-out infinite;
}
.scn-alas-poverty-muse .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #a09080, #8a7a6a);
  border-radius: 4px;
  animation: apm-desk 12s ease-in-out infinite;
}
.scn-alas-poverty-muse .inkwell {
  position: absolute; bottom: 18%; left: 35%;
  width: 12px; height: 16px;
  background: #4a3a2a;
  border-radius: 30%;
  animation: apm-inkwell 18s ease-in-out infinite;
}
.scn-alas-poverty-muse .feather {
  position: absolute; bottom: 20%; left: 38%;
  width: 30px; height: 4px;
  background: #6a5a4a;
  border-radius: 50%;
  transform: rotate(30deg);
  animation: apm-feather 20s ease-in-out infinite;
}
@keyframes apm-bg {
  0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes apm-frame {
  0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.15); } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,0.25); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.15); }
}
@keyframes apm-mirror {
  0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; }
}
@keyframes apm-figure {
  0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes apm-desk {
  0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); }
}
@keyframes apm-inkwell {
  0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(5deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); }
}
@keyframes apm-feather {
  0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(40deg) translateX(5px); } 100% { transform: rotate(20deg) translateX(0); }
}

/* Scene: fair-friend-never-old (warm, sunlit) */
.scn-fair-friend-never-old {
  background: linear-gradient(180deg, #f7c873 0%, #f0a040 30%, #c0d6b0 60%, #7a9a6a 100%), radial-gradient(ellipse at 30% 20%, #fff8d0 0%, transparent 60%);
}
.scn-fair-friend-never-old .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #f7c873, #f0a040);
  animation: ffn-sky 30s ease-in-out infinite alternate;
}
.scn-fair-friend-never-old .sun {
  position: absolute; top: 5%; left: 15%;
  width: 60px; height: 60px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff8d0, #ffd700);
  box-shadow: 0 0 80px #ffd700;
  animation: ffn-sun 10s ease-in-out infinite;
}
.scn-fair-friend-never-old .rays {
  position: absolute; top: -25%; left: -25%; width: 150%; height: 150%;
  background: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(255,255,255,0.1) 10px, rgba(255,255,255,0.1) 20px);
  animation: ffn-rays 40s linear infinite;
}
.scn-fair-friend-never-old .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #7a9a6a, #5a7a4a);
  border-radius: 30% 30% 0 0;
  animation: ffn-grass 8s ease-in-out infinite;
}
.scn-fair-friend-never-old .trunk {
  position: absolute; bottom: 30%; left: 35%;
  width: 20px; height: 80px;
  background: #4a3a2a;
  border-radius: 10%;
  animation: ffn-trunk 15s ease-in-out infinite;
}
.scn-fair-friend-never-old .foliage {
  position: absolute; top: 20%; left: 31%;
  width: 80px; height: 60px;
  background: #4a7a3a;
  border-radius: 50%;
  box-shadow: inset -10px -10px 20px #2a5a2a;
  animation: ffn-foliage 15s ease-in-out infinite;
}
.scn-fair-friend-never-old .figure1 {
  position: absolute; bottom: 25%; left: 45%;
  width: 18px; height: 40px;
  background: #2a1a1a;
  border-radius: 40% 20% 20% 40% / 60% 40% 40% 60%;
  animation: ffn-figure1 8s ease-in-out infinite;
}
.scn-fair-friend-never-old .figure2 {
  position: absolute; bottom: 25%; left: 55%;
  width: 18px; height: 40px;
  background: #1a2a1a;
  border-radius: 20% 40% 40% 20% / 40% 60% 60% 40%;
  animation: ffn-figure2 8s ease-in-out infinite;
}
.scn-fair-friend-never-old .shadow {
  position: absolute; bottom: 24%; left: 48%;
  width: 40px; height: 8px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  animation: ffn-shadow 8s ease-in-out infinite;
}
@keyframes ffn-sky {
  0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.8; }
}
@keyframes ffn-sun {
  0% { transform: scale(1); box-shadow: 0 0 60px #ffd700; } 50% { transform: scale(1.05); box-shadow: 0 0 80px #ffd700; } 100% { transform: scale(1); box-shadow: 0 0 60px #ffd700; }
}
@keyframes ffn-rays {
  0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); }
}
@keyframes ffn-grass {
  0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ffn-trunk {
  0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); }
}
@keyframes ffn-foliage {
  0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.02); } 100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes ffn-figure1 {
  0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ffn-figure2 {
  0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ffn-shadow {
  0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.1) translateX(2px); } 100% { transform: scaleX(1) translateX(0); }
}

.scn-better-vile-esteem'd { background: linear-gradient(180deg, #1a1428 0%, #2a1e3a 30%, #1e1428 70%, #0a0a14 100%), radial-gradient(ellipse at 60% 80%, #3a2a4a 0%, transparent 70%); }

.scn-better-vile-esteem'd .wall-bg {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1e1e2e 0%, #1a1a2a 50%, #141420 100%);
  animation: bve-wall 12s ease-in-out infinite alternate;
}

.scn-better-vile-esteem'd .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(0deg, #0e0e1a 0%, #1a1a28 100%);
  border-radius: 20% 30% 0 0 / 10% 20% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.6);
}

.scn-better-vile-esteem'd .window-frame {
  position: absolute;
  top: 12%;
  left: 30%;
  width: 40%;
  height: 50%;
  border: 4px solid #2a2a3a;
  border-radius: 4px;
  background: transparent;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.8), 0 0 8px rgba(40,40,60,0.5);
  animation: bve-frame 8s ease-in-out infinite alternate;
}

.scn-better-vile-esteem'd .window-pane {
  position: absolute;
  top: 13%;
  left: 31%;
  width: 38%;
  height: 48%;
  background: linear-gradient(135deg, #2a2a4a 0%, #18182e 50%, #0e0e1e 100%);
  filter: blur(2px);
  opacity: 0.6;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: bve-pane 15s ease-in-out infinite alternate;
}

.scn-better-vile-esteem'd .figure-silhouette {
  position: absolute;
  bottom: 25%;
  right: 28%;
  width: 22%;
  height: 50%;
  background: linear-gradient(180deg, #0a0a14 0%, #141422 100%);
  border-radius: 50% 40% 40% 40% / 70% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 8px rgba(0,0,0,0.8);
  animation: bve-figure 6s ease-in-out infinite;
}

.scn-better-vile-esteem'd .candle {
  position: absolute;
  bottom: 28%;
  left: 62%;
  width: 6px;
  height: 22px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c89860 60%, #8a6a40 100%);
  border-radius: 2px 2px 10% 10%;
  box-shadow: 0 0 4px rgba(192,140,80,0.6);
  animation: bve-candle 4s ease-in-out infinite alternate;
}

.scn-better-vile-esteem'd .candle-glow {
  position: absolute;
  bottom: 34%;
  left: 60%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, rgba(200,150,80,0.8) 0%, rgba(180,120,60,0.4) 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: bve-glow 3s ease-in-out infinite alternate;
}

.scn-better-vile-esteem'd .shadow {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  pointer-events: none;
  animation: bve-shadow 10s ease-in-out infinite alternate;
}

@keyframes bve-wall { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes bve-frame { 0% { box-shadow: inset 0 0 12px rgba(0,0,0,0.8), 0 0 8px rgba(40,40,60,0.3); transform: scale(1); } 50% { box-shadow: inset 0 0 16px rgba(0,0,0,1), 0 0 12px rgba(60,60,80,0.5); transform: scale(1.01); } 100% { box-shadow: inset 0 0 12px rgba(0,0,0,0.8), 0 0 8px rgba(40,40,60,0.3); transform: scale(1); } }
@keyframes bve-pane { 0% { opacity: 0.5; filter: blur(2px); } 50% { opacity: 0.7; filter: blur(3px); } 100% { opacity: 0.6; filter: blur(2px); } }
@keyframes bve-figure { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-3px) rotate(2deg); } 60% { transform: translateY(1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bve-candle { 0% { transform: scaleY(1) translateY(0); opacity: 0.9; } 50% { transform: scaleY(1.05) translateY(-1px); opacity: 1; } 100% { transform: scaleY(0.95) translateY(1px); opacity: 0.85; } }
@keyframes bve-glow { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.2); opacity: 0.9; } 100% { transform: scale(0.9); opacity: 0.6; } }
@keyframes bve-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.6; } }

.scn-monument-rhyme {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%),
    radial-gradient(ellipse at 30% 50%, #5a3a20 0%, transparent 70%);
}
.scn-monument-rhyme .mr-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
  animation: mr-wall-drape 16s ease-in-out infinite alternate;
}
.scn-monument-rhyme .mr-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-monument-rhyme .mr-pedestal {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: mr-pedestal-breathe 7s ease-in-out infinite;
}
.scn-monument-rhyme .mr-statue {
  position: absolute; bottom: calc(25% + 40px); left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.4);
  animation: mr-statue-sway 11s ease-in-out infinite;
}
.scn-monument-rhyme .mr-lightbeam {
  position: absolute; top: 5%; left: 25%; width: 120px; height: 300px;
  background: linear-gradient(180deg, rgba(210,180,140,0.35) 0%, rgba(210,180,140,0.05) 100%);
  clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%);
  filter: blur(6px);
  animation: mr-beam-pulse 5s ease-in-out infinite alternate;
}
.scn-monument-rhyme .mr-dust {
  position: absolute; top: 10%; left: 20%; width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(200,180,160,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: mr-dust-drift 30s linear infinite;
}
.scn-monument-rhyme .mr-shadow {
  position: absolute; bottom: 25%; left: 50%; width: 70px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: mr-shadow-shift 12s ease-in-out infinite alternate;
}
@keyframes mr-wall-drape {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes mr-pedestal-breathe {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes mr-statue-sway {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-0.5deg); }
}
@keyframes mr-beam-pulse {
  0% { opacity: 0.4; filter: blur(6px); }
  50% { opacity: 0.8; filter: blur(4px); }
  100% { opacity: 0.5; filter: blur(7px); }
}
@keyframes mr-dust-drift {
  0% { transform: translate(0, 0) scale(1); opacity: 0.6; }
  50% { transform: translate(30px, -20px) scale(1.2); opacity: 0.9; }
  100% { transform: translate(-20px, 10px) scale(0.9); opacity: 0.4; }
}
@keyframes mr-shadow-shift {
  0% { transform: translateX(-50%) skewX(0deg); width: 70px; opacity: 0.3; }
  50% { transform: translateX(-45%) skewX(5deg); width: 80px; opacity: 0.5; }
  100% { transform: translateX(-55%) skewX(-5deg); width: 65px; opacity: 0.4; }
}

.scn-parts-worlds-eye {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%),
    radial-gradient(ellipse at 70% 30%, #3a3a5a 0%, transparent 70%);
}
.scn-parts-worlds-eye .pw-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%);
  animation: pw-wall-fade 18s ease-in-out infinite alternate;
}
.scn-parts-worlds-eye .pw-frame {
  position: absolute; top: 10%; left: 50%; width: 160px; height: 200px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 8px;
  box-shadow: 0 0 20px rgba(0,0,0,0.8);
  animation: pw-frame-float 9s ease-in-out infinite;
}
.scn-parts-worlds-eye .pw-figure {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%;
  animation: pw-figure-turn 13s ease-in-out infinite;
}
.scn-parts-worlds-eye .pw-hand {
  position: absolute; bottom: 40%; left: 55%; width: 20px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: pw-hand-reach 6s ease-in-out infinite alternate;
}
.scn-parts-worlds-eye .pw-mirror {
  position: absolute; top: 15%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #6a6a8a 0%, #3a3a5a 60%, #1a1a3a 100%);
  border-radius: 4px;
  box-shadow: 0 0 30px rgba(100,100,140,0.3), inset 0 0 20px rgba(255,255,255,0.1);
  animation: pw-mirror-glint 4s ease-in-out infinite alternate;
}
.scn-parts-worlds-eye .pw-light {
  position: absolute; top: 5%; left: 40%; width: 80px; height: 200px;
  background: linear-gradient(180deg, rgba(180,180,220,0.25) 0%, transparent 100%);
  clip-path: polygon(45% 0%, 55% 0%, 65% 100%, 35% 100%);
  filter: blur(8px);
  animation: pw-light-sway 7s ease-in-out infinite alternate;
}
.scn-parts-worlds-eye .pw-shadow {
  position: absolute; bottom: 30%; left: 50%; width: 50px; height: 15px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: pw-shadow-pulse 10s ease-in-out infinite alternate;
}
@keyframes pw-wall-fade {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes pw-frame-float {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-4px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes pw-figure-turn {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes pw-hand-reach {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-40%) translateY(-8px) rotate(5deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes pw-mirror-glint {
  0% { box-shadow: 0 0 20px rgba(100,100,140,0.2), inset 0 0 20px rgba(255,255,255,0.05); }
  50% { box-shadow: 0 0 40px rgba(100,100,140,0.5), inset 0 0 30px rgba(255,255,255,0.2); }
  100% { box-shadow: 0 0 25px rgba(100,100,140,0.3), inset 0 0 20px rgba(255,255,255,0.1); }
}
@keyframes pw-light-sway {
  0% { transform: translateX(0) rotate(-2deg); opacity: 0.3; }
  50% { transform: translateX(10px) rotate(2deg); opacity: 0.6; }
  100% { transform: translateX(-5px) rotate(-1deg); opacity: 0.4; }
}
@keyframes pw-shadow-pulse {
  0% { transform: translateX(-50%) scaleX(1); opacity: 0.4; }
  50% { transform: translateX(-50%) scaleX(1.2); opacity: 0.6; }
  100% { transform: translateX(-50%) scaleX(0.9); opacity: 0.5; }
}

.scn-monument-rhyme {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #1e1814 100%),
              radial-gradient(ellipse at 30% 40%, #3a2a1a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-monument-rhyme .bg-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #2a1f18 0%, #1a1410 50%, #140e0a 100%);
}
.scn-monument-rhyme .bg-floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 28%;
  background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-monument-rhyme .monument {
  position: absolute;
  bottom: 28%;
  left: 15%;
  width: 120px;
  height: 180px;
  background: linear-gradient(90deg, #4a3830 0%, #5a4840 30%, #4a3830 60%, #3a2a22 100%);
  border-radius: 4% 4% 2% 2% / 8% 8% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7), inset 0 2px 4px rgba(200,180,160,0.1);
  transform: skewX(-3deg) scale(0.95);
  filter: brightness(0.8);
}
.scn-monument-rhyme .book {
  position: absolute;
  bottom: 30%;
  right: 18%;
  width: 70px;
  height: 50px;
  background: linear-gradient(135deg, #7a6040 0%, #5a4028 100%);
  border-radius: 8% 8% 4% 4% / 10% 10% 6% 6%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5), inset 0 1px 2px rgba(255,220,160,0.2);
  transform: rotate(5deg) scale(0.9);
}
.scn-monument-rhyme .lamp {
  position: absolute;
  bottom: 32%;
  right: 30%;
  width: 14px;
  height: 20px;
  background: radial-gradient(circle at 50% 100%, #d09050 0%, #a06030 60%, #604020 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 0 20px 8px rgba(200,120,60,0.3), 0 0 40px 16px rgba(200,120,60,0.15);
  animation: mr-lamp 6s ease-in-out infinite alternate;
}
.scn-monument-rhyme .dust {
  position: absolute;
  width: 8px;
  height: 8px;
  background: rgba(220,200,180,0.15);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-monument-rhyme .dust-a {
  top: 45%;
  left: 40%;
  animation: mr-drift-a 30s linear infinite;
}
.scn-monument-rhyme .dust-b {
  top: 60%;
  left: 70%;
  width: 5px;
  height: 5px;
  background: rgba(220,200,180,0.1);
  animation: mr-drift-b 45s linear infinite;
  animation-delay: -10s;
}
.scn-monument-rhyme .vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(10,8,6,0.6) 100%);
  pointer-events: none;
}
@keyframes mr-lamp {
  0% { box-shadow: 0 0 20px 8px rgba(200,120,60,0.3), 0 0 40px 16px rgba(200,120,60,0.15); opacity: 0.85; }
  50% { box-shadow: 0 0 28px 12px rgba(220,140,70,0.4), 0 0 56px 24px rgba(220,140,70,0.2); opacity: 1; }
  100% { box-shadow: 0 0 16px 6px rgba(180,100,50,0.25), 0 0 32px 12px rgba(180,100,50,0.12); opacity: 0.8; }
}
@keyframes mr-drift-a {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.4; }
  25% { transform: translateY(-20px) translateX(15px) scale(1.2); opacity: 0.6; }
  50% { transform: translateY(-40px) translateX(30px) scale(1); opacity: 0.3; }
  75% { transform: translateY(-60px) translateX(10px) scale(0.8); opacity: 0.5; }
  100% { transform: translateY(-80px) translateX(25px) scale(1.1); opacity: 0.2; }
}
@keyframes mr-drift-b {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.3; }
  33% { transform: translateY(-30px) translateX(-20px) scale(0.9); opacity: 0.5; }
  66% { transform: translateY(-50px) translateX(10px) scale(1.1); opacity: 0.2; }
  100% { transform: translateY(-70px) translateX(-10px) scale(1); opacity: 0.4; }
}

.scn-better-vile-esteem'd {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 70%, #000 100%),
    radial-gradient(ellipse at 60% 50%, #2a2a4e 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}

.scn-better-vile-esteem'd .wall {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #10101c 100%);
  animation: bve-wall 20s ease-in-out infinite alternate;
}

.scn-better-vile-esteem'd .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #1c1c28 0%, #0a0a10 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.6);
}

.scn-better-vile-esteem'd .window {
  position: absolute;
  top: 18%;
  left: 50%;
  width: 80px;
  height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #2a2a44 0%, #1c1c30 100%);
  border: 4px solid #2c2c3e;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 0 20px rgba(100,100,140,0.2);
  animation: bve-window 8s ease-in-out infinite;
}

.scn-better-vile-esteem'd .light-beam {
  position: absolute;
  top: 18%;
  left: 50%;
  width: 120px;
  height: 200px;
  transform: translateX(-50%) rotate(-8deg);
  background: linear-gradient(180deg, rgba(180,180,200,0.08) 0%, rgba(100,100,140,0.03) 50%, transparent 100%);
  filter: blur(12px);
  animation: bve-beam 6s ease-in-out infinite alternate;
  transform-origin: top center;
}

.scn-better-vile-esteem'd .figure {
  position: absolute;
  bottom: 20%;
  left: 45%;
  width: 32px;
  height: 60px;
  transform-origin: bottom center;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a16 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: bve-figure 5s ease-in-out infinite;
}

.scn-better-vile-esteem'd .shadow {
  position: absolute;
  bottom: 20%;
  left: 42%;
  width: 50px;
  height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(4px);
  transform: scale(1, 0.3);
  animation: bve-shadow 5s ease-in-out infinite;
}

.scn-better-vile-esteem'd .curtain-left {
  position: absolute;
  top: 14%;
  left: 30%;
  width: 60px;
  height: 130px;
  background: linear-gradient(180deg, #2a2a3e 0%, #16162a 100%);
  border-radius: 0 40% 40% 0 / 0 80% 80% 0;
  transform-origin: top left;
  animation: bve-curtain-l 12s ease-in-out infinite;
  filter: drop-shadow(4px 0 6px rgba(0,0,0,0.5));
}

.scn-better-vile-esteem'd .curtain-right {
  position: absolute;
  top: 14%;
  right: 30%;
  width: 60px;
  height: 130px;
  background: linear-gradient(180deg, #2a2a3e 0%, #16162a 100%);
  border-radius: 40% 0 0 40% / 80% 0 0 80%;
  transform-origin: top right;
  animation: bve-curtain-r 14s ease-in-out infinite;
  filter: drop-shadow(-4px 0 6px rgba(0,0,0,0.5));
  animation-delay: -2s;
}

@keyframes bve-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}

@keyframes bve-window {
  0% { box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 0 20px rgba(100,100,140,0.2); }
  50% { box-shadow: inset 0 0 40px rgba(0,0,0,0.9), 0 0 30px rgba(120,120,160,0.3); }
  100% { box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 0 20px rgba(100,100,140,0.2); }
}

@keyframes bve-beam {
  0% { transform: translateX(-50%) rotate(-10deg) scaleY(1); opacity: 0.7; }
  50% { transform: translateX(-50%) rotate(-6deg) scaleY(1.05); opacity: 1; }
  100% { transform: translateX(-50%) rotate(-8deg) scaleY(0.95); opacity: 0.8; }
}

@keyframes bve-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

@keyframes bve-shadow {
  0% { transform: scale(1, 0.3) translateX(0); opacity: 0.7; }
  25% { transform: scale(1.1, 0.3) translateX(4px); opacity: 0.8; }
  50% { transform: scale(1, 0.3) translateX(0); opacity: 0.7; }
  75% { transform: scale(0.9, 0.3) translateX(-3px); opacity: 0.6; }
  100% { transform: scale(1, 0.3) translateX(0); opacity: 0.7; }
}

@keyframes bve-curtain-l {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(2deg) scaleX(1.02); }
  100% { transform: rotate(0deg) scaleX(1); }
}

@keyframes bve-curtain-r {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(-3deg) scaleX(1.03); }
  100% { transform: rotate(0deg) scaleX(1); }
}

.scn-parts-worlds-eye {
  background:
    linear-gradient(180deg, #1f1a14 0%, #2a2218 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 30% 70%, #4a3a2a 0%, transparent 70%);
}

.scn-parts-worlds-eye .bg-wall {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%);
  animation: pwe-wall 16s ease-in-out infinite alternate;
}

.scn-parts-worlds-eye .bg-floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  animation: pwe-floor 14s ease-in-out infinite alternate;
}

.scn-parts-worlds-eye .mirror-frame {
  position: absolute;
  top: 28%;
  left: 50%;
  width: 90px;
  height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: pwe-frame 12s ease-in-out infinite;
}

.scn-parts-worlds-eye .mirror-glass {
  position: absolute;
  top: 31%;
  left: 50%;
  width: 74px;
  height: 94px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 40% 30%, rgba(160,140,110,0.4) 0%, rgba(40,30,20,0.7) 70%);
  border-radius: 8px;
  box-shadow:
    inset 0 0 20px rgba(80,60,40,0.3),
    0 0 30px rgba(140,120,90,0.2);
  animation: pwe-glass 9s ease-in-out infinite alternate;
}

.scn-parts-worlds-eye .figure {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 36px;
  height: 58px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1410 0%, #2a1e12 50%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pwe-figure 6s ease-in-out infinite;
}

.scn-parts-worlds-eye .lamp {
  position: absolute;
  bottom: 40%;
  left: 38%;
  width: 12px;
  height: 18px;
  background: linear-gradient(180deg, #c8a060 0%, #805020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: pwe-lamp 8s ease-in-out infinite;
}

.scn-parts-worlds-eye .lamp-glow {
  position: absolute;
  bottom: 38%;
  left: 36%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #d4b070 0%, rgba(200,160,80,0.2) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: pwe-glow 4s ease-in-out infinite alternate;
}

.scn-parts-worlds-eye .shadow-figure {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 30px;
  height: 50px;
  transform: translateX(-50%) skewX(-10deg) scaleX(1.2);
  background: linear-gradient(180deg, rgba(10,8,6,0.6) 0%, transparent 100%);
  border-radius: 40% 40% 20% 20%;
  animation: pwe-shadow 6s ease-in-out infinite;
}

@keyframes pwe-wall {
  0% { opacity: 0.85; }
  50% { opacity: 0.92; }
  100% { opacity: 0.85; }
}

@keyframes pwe-floor {
  0% { background-position: 0% 0%; }
  50% { background-position: 0% 4%; }
  100% { background-position: 0% 0%; }
}

@keyframes pwe-frame {
  0%, 100% { transform: translateX(-50%) scale(1); box-shadow: 0 4px 12px rgba(0,0,0,0.5); }
  50% { transform: translateX(-50%) scale(1.01); box-shadow: 0 6px 18px rgba(0,0,0,0.4); }
}

@keyframes pwe-glass {
  0% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(80,60,40,0.3), 0 0 30px rgba(140,120,90,0.2); }
  50% { opacity: 0.85; box-shadow: inset 0 0 25px rgba(100,80,60,0.4), 0 0 40px rgba(160,140,110,0.3); }
  100% { opacity: 0.75; box-shadow: inset 0 0 18px rgba(80,60,40,0.3), 0 0 25px rgba(140,120,90,0.2); }
}

@keyframes pwe-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(1.5deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}

@keyframes pwe-lamp {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
}

@keyframes pwe-glow {
  0% { opacity: 0.5; transform: scale(0.95); }
  50% { opacity: 0.7; transform: scale(1.05); }
  100% { opacity: 0.55; transform: scale(0.98); }
}

@keyframes pwe-shadow {
  0% { opacity: 0.3; transform: translateX(-50%) skewX(-10deg) scaleX(1.2); }
  50% { opacity: 0.4; transform: translateX(-50%) skewX(-10deg) scaleX(1.25) translateY(-2px); }
  100% { opacity: 0.3; transform: translateX(-50%) skewX(-10deg) scaleX(1.2); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.pistil { position: absolute; pointer-events: none; }
.solitary { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-father-delights-child {
  background: 
    linear-gradient(180deg, #2b1a0e 0%, #4a2a1a 40%, #2b1a0e 100%),
    radial-gradient(ellipse at 50% 30%, #3a2214 0%, transparent 70%);
}
.scn-father-delights-child .room-bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #1a0e0a 0%, #2a1a10 100%); opacity: 0.6; animation: fdc-bg 12s ease-in-out infinite alternate;
}
.scn-father-delights-child .table {
  position:absolute; bottom:15%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0e 100%); border-radius: 4px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.6); transform: perspective(400px) rotateX(10deg);
}
.scn-father-delights-child .candle-glow {
  position:absolute; bottom:25%; left:35%; width:12px; height:20px; background: radial-gradient(circle, #ffaa44 0%, #cc6622 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #cc6622, 0 0 60px 20px rgba(204,102,34,0.4); animation: fdc-candle 3s ease-in-out infinite alternate;
}
.scn-father-delights-child .father-silhouette {
  position:absolute; bottom:20%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fdc-father 7s ease-in-out infinite;
}
.scn-father-delights-child .child-silhouette {
  position:absolute; bottom:20%; left:55%; width:18px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fdc-child 5s ease-in-out infinite;
}
.scn-father-delights-child .book {
  position:absolute; bottom:20%; left:40%; width:24px; height:8px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2214 100%); border-radius: 2px; transform: perspective(200px) rotateY(20deg); box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: fdc-book 8s ease-in-out infinite alternate;
}
.scn-father-delights-child .shadow-stripe {
  position:absolute; bottom:30%; left:0; right:0; height:2px; background: linear-gradient(90deg, transparent 0%, #0a0a0a 30%, #0a0a0a 70%, transparent 100%); opacity: 0.4; animation: fdc-stripe 4s ease-in-out infinite alternate;
}

@keyframes fdc-bg { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes fdc-candle { 0% { transform: scale(0.9); box-shadow: 0 0 20px 5px #cc6622; } 50% { transform: scale(1.1); box-shadow: 0 0 40px 15px #ffaa44; } 100% { transform: scale(0.95); box-shadow: 0 0 25px 8px #cc6622; } }
@keyframes fdc-father { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes fdc-child { 0%,100% { transform: translateX(0) rotate(0deg) scale(1); } 33% { transform: translateX(3px) rotate(-3deg) scale(1.02); } 66% { transform: translateX(-2px) rotate(2deg) scale(0.98); } }
@keyframes fdc-book { 0% { transform: perspective(200px) rotateY(20deg) translateY(0); } 50% { transform: perspective(200px) rotateY(25deg) translateY(-2px); } 100% { transform: perspective(200px) rotateY(18deg) translateY(0); } }
@keyframes fdc-stripe { 0% { opacity: 0.3; height: 1px; } 50% { opacity: 0.6; height: 3px; } 100% { opacity: 0.2; height: 2px; } }

.scn-dream-pact-eye-heart {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a5a 100%),
    radial-gradient(ellipse at 50% 50%, #2a2a5a 0%, transparent 70%);
}
.scn-dream-pact-eye-heart .night-sky {
  position:absolute; inset:0; background: linear-gradient(180deg, #0d0d2b 0%, #1a1a4a 100%); opacity: 0.7; animation: dph-sky 20s ease-in-out infinite alternate;
}
.scn-dream-pact-eye-heart .heart {
  position:absolute; top:40%; left:30%; width:40px; height:36px; background: radial-gradient(circle at 30% 40%, #b87878 0%, #5e1a1d 100%); border-radius: 50% 50% 0 0; transform: rotate(45deg); box-shadow: 0 0 30px 10px #b87878; animation: dph-heart 6s ease-in-out infinite;
}
.scn-dream-pact-eye-heart .eye {
  position:absolute; top:45%; right:25%; width:50px; height:30px; background: radial-gradient(circle at 50% 50%, #c0c0e0 0%, #606080 60%, transparent 100%); border-radius: 50%; box-shadow: inset 0 0 10px #202040; animation: dph-eye 8s ease-in-out infinite alternate;
}
.scn-dream-pact-eye-heart .memory-ring {
  position:absolute; top:35%; left:20%; width:70px; height:70px; border: 2px solid rgba(192,192,224,0.3); border-radius: 50%; background: transparent; animation: dph-ring 12s linear infinite;
}
.scn-dream-pact-eye-heart .sleep-dust {
  position:absolute; top:20%; left:60%; width:4px; height:4px; background: #a0a0d0; border-radius: 50%; box-shadow: 0 0 6px 2px #a0a0d0; animation: dph-dust 4s ease-in-out infinite;
}
.scn-dream-pact-eye-heart .dream-thread {
  position:absolute; top:30%; left:50%; width:1px; height:100px; background: linear-gradient(180deg, transparent 0%, rgba(160,160,208,0.5) 50%, transparent 100%); transform-origin: top center; animation: dph-thread 10s ease-in-out infinite;
}

@keyframes dph-sky { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes dph-heart { 0%,100% { transform: rotate(45deg) scale(1); } 25% { transform: rotate(50deg) scale(1.05); } 50% { transform: rotate(40deg) scale(0.95); } 75% { transform: rotate(48deg) scale(1.02); } }
@keyframes dph-eye { 0% { transform: scaleY(1); opacity: 0.6; } 50% { transform: scaleY(1.2); opacity: 1; } 100% { transform: scaleY(0.9); opacity: 0.7; } }
@keyframes dph-ring { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes dph-dust { 0%,100% { transform: translate(0,0) scale(1); opacity: 0.8; } 25% { transform: translate(8px, -10px) scale(0.5); opacity: 0.4; } 50% { transform: translate(12px, -5px) scale(1.5); opacity: 1; } 75% { transform: translate(5px, -15px) scale(0.7); opacity: 0.6; } }
@keyframes dph-thread { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }

.scn-self-knowledge-arming {
  background: 
    linear-gradient(180deg, #1a1210 0%, #2a1e18 40%, #1a1210 100%),
    radial-gradient(ellipse at 50% 40%, #2a1e18 0%, transparent 70%);
}
.scn-self-knowledge-arming .chamber-wall {
  position:absolute; inset:0; background: linear-gradient(135deg, #2a1e18 0%, #1a1210 50%, #2a1e18 100%); opacity: 0.5; animation: ska-wall 15s ease-in-out infinite alternate;
}
.scn-self-knowledge-arming .figure-armor {
  position:absolute; bottom:20%; left:50%; width:40px; height:70px; margin-left:-20px; background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 0 10px #0a0808; transform-origin: bottom center; animation: ska-figure 8s ease-in-out infinite;
}
.scn-self-knowledge-arming .ideal-form {
  position:absolute; top:15%; right:15%; width:30px; height:50px; background: linear-gradient(180deg, #c0b0a0 0%, #806050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity: 0.3; animation: ska-ideal 10s ease-in-out infinite;
}
.scn-self-knowledge-arming .shield {
  position:absolute; bottom:28%; left:35%; width:30px; height:40px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 20% 20% 40% 40%; transform: rotate(-15deg); box-shadow: 0 0 8px rgba(0,0,0,0.5); animation: ska-shield 6s ease-in-out infinite alternate;
}
.scn-self-knowledge-arming .chain-mail {
  position:absolute; bottom:22%; left:42%; width:60px; height:10px; background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 2px, #3a2a1a 2px, #3a2a1a 4px); border-radius: 4px; opacity: 0.6; animation: ska-chain 5s linear infinite;
}
.scn-self-knowledge-arming .shadow-spring {
  position:absolute; top:10%; left:10%; width:80px; height:80px; background: radial-gradient(circle, rgba(80,160,80,0.1) 0%, transparent 70%); border-radius: 50%; animation: ska-spring 12s ease-in-out infinite;
}
.scn-self-knowledge-arming .lamp-flicker {
  position:absolute; top:30%; left:20%; width:10px; height:20px; background: radial-gradient(circle, #aa6633 0%, transparent 100%); box-shadow: 0 0 20px 8px #aa6633; animation: ska-lamp 3s ease-in-out infinite alternate;
}

@keyframes ska-wall { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }
@keyframes ska-figure { 0%,100% { transform: translateX(0) rotate(0deg) scaleY(1); } 20% { transform: translateX(4px) rotate(2deg) scaleY(0.98); } 40% { transform: translateX(-2px) rotate(-1deg) scaleY(1.01); } 60% { transform: translateX(3px) rotate(1deg) scaleY(0.99); } 80% { transform: translateX(-1px) rotate(0deg) scaleY(1); } }
@keyframes ska-ideal { 0% { transform: translateY(0) scale(1); opacity: 0.2; } 50% { transform: translateY(-10px) scale(1.1); opacity: 0.5; } 100% { transform: translateY(5px) scale(0.9); opacity: 0.3; } }
@keyframes ska-shield { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(3px); } 100% { transform: rotate(-18deg) translateX(-2px); } }
@keyframes ska-chain { 0% { background-position: 0 0; } 100% { background-position: -40px 0; } }
@keyframes ska-spring { 0% { transform: scale(1); opacity: 0.1; } 50% { transform: scale(1.3); opacity: 0.25; } 100% { transform: scale(0.8); opacity: 0.15; } }
@keyframes ska-lamp { 0% { box-shadow: 0 0 15px 5px #aa6633; transform: scale(1); } 50% { box-shadow: 0 0 30px 12px #cc8844; transform: scale(1.1); } 100% { box-shadow: 0 0 20px 7px #aa6633; transform: scale(0.95); } }

.scn-verse-outlasts-marble {
  background: 
    linear-gradient(180deg, #c0b8a8 0%, #a09888 40%, #908070 100%),
    radial-gradient(ellipse at 50% 60%, #a09888 0%, transparent 70%);
}
.scn-verse-outlasts-marble .sky-overcast {
  position:absolute; inset:0; background: linear-gradient(180deg, #d0c8b8 0%, #b8b0a0 100%); opacity: 0.6; animation: vom-sky 20s ease-in-out infinite alternate;
}
.scn-verse-outlasts-marble .marble-column {
  position:absolute; bottom:10%; left:45%; width:20px; height:70%; background: linear-gradient(180deg, #e8e0d0 0%, #c0b8a0 100%); border-radius: 4px 4px 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.1); animation: vom-column 15s ease-in-out infinite;
}
.scn-verse-outlasts-marble .clock-face {
  position:absolute; top:20%; left:50%; width:80px; height:80px; margin-left:-40px; border: 3px solid #8a7a6a; border-radius: 50%; background: radial-gradient(circle, #f0e8d8 0%, #d8d0c0 80%); box-shadow: 0 0 20px rgba(0,0,0,0.2); animation: vom-clock 6s ease-in-out infinite alternate;
}
.scn-verse-outlasts-marble .scroll-script {
  position:absolute; bottom:30%; left:20%; width:40px; height:60px; background: linear-gradient(180deg, #e8dcc4 0%, #c8b89c 100%); border-radius: 10px 10px 4px 4px; transform: rotate(-5deg); box-shadow: 0 2px 8px rgba(0,0,0,0.3); animation: vom-scroll 8s ease-in-out infinite;
}
.scn-verse-outlasts-marble .dust-motes {
  position:absolute; top:10%; left:20%; width:4px; height:4px; background: #e0d8c8; border-radius: 50%; box-shadow: 0 0 4px 1px #e0d8c8; animation: vom-dust 7s linear infinite;
}
.scn-verse-outlasts-marble .judgment-light {
  position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(255,240,200,0.15) 0%, transparent 100%); transform: skewX(-10deg); animation: vom-light 12s ease-in-out infinite alternate;
}

@keyframes vom-sky { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes vom-column { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes vom-clock { 0% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-5deg); } 100% { transform: rotate(0deg); } }
@keyframes vom-scroll { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } }
@keyframes vom-dust { 0% { transform: translate(0,0) scale(1); opacity: 0.8; } 25% { transform: translate(15px, -20px) scale(0.6); opacity: 0.4; } 50% { transform: translate(30px, -10px) scale(1.2); opacity: 0.9; } 75% { transform: translate(45px, -30px) scale(0.8); opacity: 0.5; } 100% { transform: translate(60px, -5px) scale(1); opacity: 0.7; } }
@keyframes vom-light { 0% { opacity: 0.1; } 50% { opacity: 0.3; } 100% { opacity: 0.15; } }

/* black-ink-preserves */
.scn-black-ink-preserves {
  background: 
    linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #1f1512 100%),
    radial-gradient(ellipse at 30% 60%, #3a2820 0%, transparent 70%);
}
.scn-black-ink-preserves .wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  animation: bi1-wall 15s ease-in-out infinite alternate;
}
.scn-black-ink-preserves .desk {
  position:absolute; bottom:10%; left:10%; right:10%; height:20%;
  background: linear-gradient(180deg, #4a3228 0%, #3a2218 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-black-ink-preserves .paper {
  position:absolute; bottom:22%; left:35%; width:30%; height:10%;
  background: #d4c6a8;
  border-radius: 2%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(-2deg);
  animation: bi1-paper 8s ease-in-out infinite;
}
.scn-black-ink-preserves .inkwell {
  position:absolute; bottom:28%; left:45%; width:8%; height:6%;
  background: radial-gradient(circle at 50% 30%, #2a1a12 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 3px 8px rgba(0,0,0,0.7);
}
.scn-black-ink-preserves .quill {
  position:absolute; bottom:32%; left:52%; width:4%; height:14%;
  background: linear-gradient(180deg, #8a7050 0%, #5a4a38 50%, #3a2a1e 100%);
  border-radius: 80% 20% 40% 40% / 60% 10% 30% 40%;
  transform: rotate(-35deg);
  transform-origin: bottom center;
  animation: bi1-quill 6s ease-in-out infinite alternate;
}
.scn-black-ink-preserves .candle {
  position:absolute; bottom:30%; left:25%; width:3%; height:15%;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 30%, #8a7040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,0.3);
  animation: bi1-candle 4s ease-in-out infinite alternate;
}
.scn-black-ink-preserves .figure-silhouette {
  position:absolute; bottom:20%; left:55%; width:12%; height:30%;
  background: linear-gradient(180deg, #0f0c0a 0%, #050403 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bi1-figure 10s ease-in-out infinite alternate;
}
.scn-black-ink-preserves .shadow-cast {
  position:absolute; bottom:8%; left:40%; width:25%; height:4%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: bi1-shadow 10s ease-in-out infinite alternate;
}
@keyframes bi1-wall { 0% { opacity:0.7 } 50% { opacity:0.85 } 100% { opacity:0.75 } }
@keyframes bi1-paper { 0%,100% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-3px) } }
@keyframes bi1-quill { 0% { transform: rotate(-35deg) } 50% { transform: rotate(-30deg) scaleY(0.98) } 100% { transform: rotate(-38deg) } }
@keyframes bi1-candle { 0% { box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,0.3); height:15%; } 50% { box-shadow: 0 0 30px 10px #ffe090, 0 0 60px 20px rgba(255,224,144,0.5); height:14.5%; } 100% { box-shadow: 0 0 18px 4px #ffc070, 0 0 35px 10px rgba(255,192,112,0.25); height:15%; } }
@keyframes bi1-figure { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-5px) rotate(-2deg) } 100% { transform: translateX(3px) rotate(1deg) } }
@keyframes bi1-shadow { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.5; transform: scaleX(1.1) } 100% { opacity:0.35; transform: scaleX(0.95) } }

/* corruption-and-common */
.scn-corruption-and-common {
  background: 
    linear-gradient(180deg, #1a0f0a 0%, #2a1a12 40%, #0f0805 100%),
    radial-gradient(ellipse at 60% 70%, #3a2218 0%, transparent 70%);
}
.scn-corruption-and-common .floor {
  position:absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0f0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-corruption-and-common .wall-panel {
  position:absolute; inset:0 0 15% 0;
  background: repeating-linear-gradient(90deg, #2a1a12 0px, #1a0f0a 2px, transparent 2px, transparent 8px);
  opacity:0.4;
  animation: cc2-panel 20s linear infinite;
}
.scn-corruption-and-common .mirror-cracked {
  position:absolute; left:50%; top:20%; width:20%; height:40%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 40% 30%, #6a5a4a 0%, #3a2a1e 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: cc2-mirror 12s ease-in-out infinite alternate;
}
.scn-corruption-and-common .mirror-cracked::before {
  content: ''; position:absolute; top:10%; left:20%; width:60%; height:2%;
  background: #8a7a6a;
  transform: rotate(25deg);
  animation: cc2-crack 5s ease-in-out infinite;
}
.scn-corruption-and-common .flower-wilted {
  position:absolute; bottom:18%; left:30%; width:8%; height:12%;
  background: radial-gradient(circle at 50% 20%, #6a5040 0%, #3a2218 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cc2-flower 8s ease-in-out infinite alternate;
}
.scn-corruption-and-common .figure-bowed {
  position:absolute; bottom:15%; left:45%; width:15%; height:35%;
  background: linear-gradient(180deg, #100a08 0%, #050302 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cc2-bow 15s ease-in-out infinite alternate;
}
.scn-corruption-and-common .dust-mote-a, .scn-corruption-and-common .dust-mote-b {
  position:absolute; width:2%; height:2%;
  background: radial-gradient(circle, rgba(200,180,160,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: cc2-drift 12s linear infinite;
}
.scn-corruption-and-common .dust-mote-a { top:30%; left:20%; animation-delay: -2s; }
.scn-corruption-and-common .dust-mote-b { top:50%; left:70%; width:1.5%; height:1.5%; animation-delay: -6s; }
@keyframes cc2-panel { 0% { background-position: 0 0; } 100% { background-position: 20px 0; } }
@keyframes cc2-mirror { 0% { opacity:0.6; transform: translateX(-50%) scale(1); } 50% { opacity:0.8; transform: translateX(-50%) scale(1.01); } 100% { opacity:0.7; transform: translateX(-50%) scale(0.98); } }
@keyframes cc2-crack { 0%,100% { opacity:0.3; } 50% { opacity:0.7; } }
@keyframes cc2-flower { 0%,100% { transform: rotate(0) scaleY(1); } 50% { transform: rotate(5deg) scaleY(0.9); } }
@keyframes cc2-bow { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-8px) rotate(-5deg); } 100% { transform: translateX(4px) rotate(2deg); } }
@keyframes cc2-drift { 0% { transform: translateY(0) translateX(0); opacity:0; } 20% { opacity:0.8; } 80% { opacity:0.6; } 100% { transform: translateY(-120px) translateX(40px); opacity:0; } }

/* autumn-twilight-embers */
.scn-autumn-twilight-embers {
  background: 
    linear-gradient(180deg, #2a1a3a 0%, #4a2a1a 40%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 20%, #6a3a2a 0%, transparent 70%);
}
.scn-autumn-twilight-embers .sky-dusk {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #3a2a4a 0%, #5a3a2a 50%, #7a4a2a 100%);
  animation: at3-sky 20s ease-in-out infinite alternate;
}
.scn-autumn-twilight-embers .tree-trunk {
  position:absolute; bottom:30%; left:45%; width:6%; height:50%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: at3-trunk 8s ease-in-out infinite alternate;
}
.scn-autumn-twilight-embers .tree-canopy {
  position:absolute; bottom:45%; left:25%; width:50%; height:35%;
  background: radial-gradient(ellipse at 50% 30%, #6a4a2a 0%, #3a2a1a 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: at3-canopy 12s ease-in-out infinite alternate;
}
.scn-autumn-twilight-embers .leaf-fall-a, .scn-autumn-twilight-embers .leaf-fall-b {
  position:absolute; width:4%; height:3%;
  background: linear-gradient(135deg, #c08030 0%, #8a6020 100%);
  border-radius: 0 50% 50% 50%;
  transform: rotate(45deg);
  animation: at3-leaf 6s linear infinite;
}
.scn-autumn-twilight-embers .leaf-fall-a { top:15%; left:30%; animation-delay: 0s; }
.scn-autumn-twilight-embers .leaf-fall-b { top:25%; left:60%; width:3%; height:2%; animation-delay: -3s; }
.scn-autumn-twilight-embers .embers {
  position:absolute; bottom:15%; left:20%; width:15%; height:10%;
  background: radial-gradient(circle, #ff8040 0%, #c04020 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,128,64,0.4);
  animation: at3-ember 4s ease-in-out infinite alternate;
}
.scn-autumn-twilight-embers .figure-standing {
  position:absolute; bottom:25%; left:35%; width:10%; height:30%;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: at3-figure 16s ease-in-out infinite alternate;
}
.scn-autumn-twilight-embers .ground {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
}
@keyframes at3-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes at3-trunk { 0% { transform: scaleY(1) rotate(0); } 50% { transform: scaleY(1.01) rotate(-2deg); } 100% { transform: scaleY(0.99) rotate(1deg); } }
@keyframes at3-canopy { 0% { transform: scale(1); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(0.98) translateY(1px); } }
@keyframes at3-leaf { 0% { transform: rotate(45deg) translateY(0) translateX(0); opacity:1; } 50% { transform: rotate(90deg) translateY(40px) translateX(-20px); opacity:0.8; } 100% { transform: rotate(135deg) translateY(80px) translateX(-40px); opacity:0; } }
@keyframes at3-ember { 0% { transform: scale(1); box-shadow: 0 0 30px 15px rgba(255,128,64,0.3); } 50% { transform: scale(1.1); box-shadow: 0 0 50px 25px rgba(255,128,64,0.6); } 100% { transform: scale(0.9); box-shadow: 0 0 20px 10px rgba(255,128,64,0.2); } }
@keyframes at3-figure { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(-1deg) scaleY(1.01); } 100% { transform: translateX(2px) rotate(0.5deg); } }

/* mirror-dial-reminder */
.scn-mirror-dial-reminder {
  background: 
    linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #0f0a08 100%),
    radial-gradient(ellipse at 50% 40%, #3a2820 0%, transparent 70%);
}
.scn-mirror-dial-reminder .dark-wall {
  position:absolute; inset:0 0 15% 0;
  background: linear-gradient(90deg, #1a1210 0%, #2a1e1a 50%, #1a1210 100%);
  animation: md4-wall 14s ease-in-out infinite alternate;
}
.scn-mirror-dial-reminder .mirror-oval {
  position:absolute; left:50%; top:15%; width:25%; height:40%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 40% 30%, #6a5a4a 0%, #3a2a1e 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.9);
  animation: md4-mirror 10s ease-in-out infinite alternate;
}
.scn-mirror-dial-reminder .clock-pendulum {
  position:absolute; left:20%; top:12%; width:2%; height:30%;
  background: linear-gradient(180deg, #8a7040 0%, #5a4a30 100%);
  border-radius: 20%;
  transform-origin: top center;
  animation: md4-pendulum 3s ease-in-out infinite alternate;
}
.scn-mirror-dial-reminder .desk-scrolls {
  position:absolute; bottom:18%; left:15%; right:15%; height:8%;
  background: repeating-linear-gradient(90deg, #b0a080 0px, #d0c0a0 4px, #b0a080 8px);
  border-radius: 10%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: md4-scrolls 20s ease-in-out infinite alternate;
}
.scn-mirror-dial-reminder .ink-bottle {
  position:absolute; bottom:25%; left:25%; width:5%; height:8%;
  background: radial-gradient(circle at 50% 30%, #2a1a12 0%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 3px 6px rgba(0,0,0,0.8);
  animation: md4-ink 6s ease-in-out infinite alternate;
}
.scn-mirror-dial-reminder .hand-reach {
  position:absolute; bottom:15%; left:40%; width:8%; height:20%;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: md4-hand 8s ease-in-out infinite alternate;
}
.scn-mirror-dial-reminder .light-pool {
  position:absolute; bottom:10%; left:30%; width:40%; height:15%;
  background: radial-gradient(ellipse, rgba(200,180,160,0.15) 0%, transparent 100%);
  animation: md4-light 12s ease-in-out infinite alternate;
}
@keyframes md4-wall { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; } }
@keyframes md4-mirror { 0% { opacity:0.6; transform: translateX(-50%) scale(1); } 50% { opacity:0.8; transform: translateX(-50%) scale(1.02); } 100% { opacity:0.7; transform: translateX(-50%) scale(0.98); } }
@keyframes md4-pendulum { 0% { transform: rotate(-15deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(15deg); } }
@keyframes md4-scrolls { 0% { background-position: 0 0; } 50% { background-position: 20px 0; } 100% { background-position: -20px 0; } }
@keyframes md4-ink { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1.02); } }
@keyframes md4-hand { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(3px) rotate(1deg); } }
@keyframes md4-light { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.25; } }

/* never-false-heart */
.scn-never-false-heart {
  background: linear-gradient(135deg, #2a1e14 0%, #1a120c 50%, #0f0a06 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-never-false-heart .room-shadow { position:absolute; inset:0; background: linear-gradient(90deg, #0c0a08 0%, transparent 40%, #0c0a08 100%); animation: nfh-shadow 8s ease-in-out infinite; }
.scn-never-false-heart .wall { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 20% 20% 0 0 / 12% 12% 0 0; box-shadow: inset 0 15px 30px rgba(0,0,0,.5); }
.scn-never-false-heart .window-frame { position:absolute; bottom:35%; left:50%; width:100px; height:90px; transform:translate(-50%, 0); background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 30px #0a0806; }
.scn-never-false-heart .heart-glow { position:absolute; bottom:38%; left:50%; width:40px; height:35px; transform:translate(-50%, 0); background: radial-gradient(circle at 50% 50%, #c8553d 0%, #a0461a 50%, transparent 80%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; animation: nfh-heart 4s ease-in-out infinite; box-shadow: 0 0 50px 15px rgba(200,85,61,.4); }
.scn-never-false-heart .figure-silhouette { position:absolute; bottom:20%; left:50%; width:24px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1410 0%, #0f0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: nfh-figure 6s ease-in-out infinite; }
.scn-never-false-heart .candle { position:absolute; bottom:27%; left:40%; width:10px; height:30px; background: linear-gradient(180deg, #f0d080 0%, #b08040 100%); border-radius: 30% 30% 20% 20%; transform:rotate(-5deg); animation: nfh-candle 5s ease-in-out infinite; }
.scn-never-false-heart .flame { position:absolute; bottom:52%; left:39.8%; width:8px; height:18px; background: radial-gradient(circle, #f0e080 0%, #d08020 50%, transparent 70%); border-radius: 50% 50% 50% 50% / 30% 30% 70% 70%; animation: nfh-flame 2s ease-in-out infinite alternate; }
.scn-never-false-heart .shadow-line { position:absolute; bottom:20%; left:30%; right:30%; height:2px; background: linear-gradient(90deg, transparent, #0a0806 20%, #0a0806 80%, transparent); animation: nfh-shadowline 9s ease-in-out infinite; }
@keyframes nfh-shadow { 0%,100% { opacity:.6 } 50% { opacity:.4 } }
@keyframes nfh-heart { 0%,100% { transform:translate(-50%,0) scale(1); opacity:.8 } 25% { transform:translate(-50%,-2px) scale(1.08); opacity:1 } 75% { transform:translate(-50%,1px) scale(.95); opacity:.7 } }
@keyframes nfh-figure { 0%,100% { transform:translateX(-50%) rotate(0deg) translateY(0) } 30% { transform:translateX(-50%) rotate(2deg) translateY(-2px) } 70% { transform:translateX(-50%) rotate(-2deg) translateY(1px) } }
@keyframes nfh-candle { 0%,100% { transform:rotate(-5deg) } 50% { transform:rotate(-8deg) translateY(1px) } }
@keyframes nfh-flame { 0% { transform:scaleY(1) scaleX(1); opacity:.9 } 50% { transform:scaleY(1.2) scaleX(.8); opacity:1 } 100% { transform:scaleY(.9) scaleX(1.1); opacity:.7 } }
@keyframes nfh-shadowline { 0%,100% { opacity:.4 } 50% { opacity:.6; transform:translateY(1px) } }

/* ruined-love-rebuilt */
.scn-ruined-love-rebuilt {
  background: linear-gradient(180deg, #d4a878 0%, #c89060 30%, #a06840 60%, #704828 100%), radial-gradient(ellipse at 50% 0%, #f0d8b0 0%, transparent 60%);
}
.scn-ruined-love-rebuilt .sky-warm { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #f0d8b0 0%, #d4a878 60%, transparent 100%); animation: rlr-sky 10s ease-in-out infinite alternate; }
.scn-ruined-love-rebuilt .sun { position:absolute; top:10%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #ffe080 0%, #f0b040 50%, transparent 70%); border-radius:50%; animation: rlr-sun 20s linear infinite; box-shadow: 0 0 80px 30px rgba(240,176,64,.5); }
.scn-ruined-love-rebuilt .ruin-wall { position:absolute; bottom:25%; left:20%; width:160px; height:100px; background: linear-gradient(180deg, #a08060 0%, #806040 50%, #604020 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; clip-path: polygon(0 0, 100% 0, 82% 100%, 0 100%); animation: rlr-ruin 8s ease-in-out infinite; transform-origin: bottom left; }
.scn-ruined-love-rebuilt .scaffold { position:absolute; bottom:28%; left:28%; width:80px; height:120px; background: repeating-linear-gradient(0deg, #6a4a2a 0px, #6a4a2a 4px, transparent 4px, transparent 8px); border-left:4px solid #4a2a1a; border-right:4px solid #4a2a1a; animation: rlr-scaffold 5s ease-in-out infinite; }
.scn-ruined-love-rebuilt .worker { position:absolute; bottom:25%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rlr-worker 3s ease-in-out infinite; transform-origin: bottom center; }
.scn-ruined-love-rebuilt .new-stone { position:absolute; bottom:30%; left:45%; width:30px; height:15px; background: linear-gradient(135deg, #c0a080 0%, #a08060 100%); border-radius:10% 10% 10% 10% / 30% 30% 30% 30%; transform:rotate(10deg); animation: rlr-stone 12s ease-in-out infinite; }
.scn-ruined-love-rebuilt .vine { position:absolute; bottom:20%; right:10%; width:12px; height:70px; background: linear-gradient(180deg, #5a7a3a 0%, #3a4a2a 100%); border-radius:50%; transform:rotate(-20deg); animation: rlr-vine 14s ease-in-out infinite alternate; }
.scn-ruined-love-rebuilt .dust { position:absolute; bottom:50%; left:30%; right:30%; height:10px; background: radial-gradient(ellipse at 50% 0%, rgba(200,160,120,.3) 0%, transparent 70%); filter:blur(3px); animation: rlr-dust 7s ease-in-out infinite; }
@keyframes rlr-sky { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes rlr-sun { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-20px) rotate(5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes rlr-ruin { 0%,100% { transform: skewY(0deg) } 25% { transform: skewY(1deg) } 75% { transform: skewY(-1deg) } }
@keyframes rlr-scaffold { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes rlr-worker { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(1px) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(1deg) } }
@keyframes rlr-stone { 0%,100% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(15deg) translateX(3px) translateY(-2px) } }
@keyframes rlr-vine { 0%,100% { transform: rotate(-20deg) scaleY(1) } 50% { transform: rotate(-25deg) scaleY(1.05) } }
@keyframes rlr-dust { 0%,100% { opacity:.3; transform: scaleY(1) } 50% { opacity:.5; transform: scaleY(.8) translateY(-5px) } }

/* i-am-that-i-am */
.scn-i-am-that-i-am {
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, #2a3a4a 80%, #1a2a3a 100%), radial-gradient(ellipse at 50% 100%, #2a3a4a 0%, transparent 60%);
}
.scn-i-am-that-i-am .overcast-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%); animation: iat-sky 6s ease-in-out infinite alternate; }
.scn-i-am-that-i-am .cloud-fast { position:absolute; top:20%; left:0; width:120px; height:20px; background: linear-gradient(90deg, rgba(255,255,255,.3) 0%, rgba(200,200,210,.1) 100%); border-radius:50%; filter:blur(4px); animation: iat-cloudf 5s linear infinite; }
.scn-i-am-that-i-am .cloud-slow { position:absolute; top:35%; right:0; width:100px; height:15px; background: linear-gradient(90deg, rgba(255,255,255,.2) 0%, rgba(200,200,210,.05) 100%); border-radius:50%; filter:blur(3px); animation: iat-clouds 12s linear infinite reverse; }
.scn-i-am-that-i-am .hill { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%); border-radius: 60% 40% 0 0 / 70% 50% 0 0; animation: iat-hill 15s ease-in-out infinite; }
.scn-i-am-that-i-am .figure-stance { position:absolute; bottom:30%; left:50%; width:22px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: iat-figure 4s ease-in-out infinite; }
.scn-i-am-that-i-am .wind-sweep { position:absolute; bottom:30%; left:10%; right:10%; height:2px; background: linear-gradient(90deg, transparent, rgba(200,200,220,.4) 30%, rgba(200,200,220,.2) 70%, transparent); filter:blur(1px); animation: iat-wind 3s ease-in-out infinite; }
.scn-i-am-that-i-am .lightning-flash { position:absolute; top:5%; left:50%; width:4px; height:60px; background: linear-gradient(180deg, rgba(255,255,240,.8) 0%, transparent 100%); transform:translateX(-50%) rotate(-10deg); animation: iat-lightning 10s step-end infinite; opacity:0; }
@keyframes iat-sky { 0%,100% { opacity:.7 } 50% { opacity:1 } }
@keyframes iat-cloudf { 0% { transform: translateX(-60px) scaleX(1) } 100% { transform: translateX(120vw) scaleX(1.2) } }
@keyframes iat-clouds { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes iat-hill { 0%,100% { transform: translateY(0) scaleY(1) } 25% { transform: translateY(-2px) scaleY(1.01) } 75% { transform: translateY(1px) scaleY(.99) } }
@keyframes iat-figure { 0%,100% { transform:translateX(-50%) rotate(0deg) } 20% { transform:translateX(-50%) rotate(3deg) scale(1.02) } 80% { transform:translateX(-50%) rotate(-2deg) scale(.98) } }
@keyframes iat-wind { 0%,100% { opacity:.3; transform:translateX(0) } 50% { opacity:.6; transform:translateX(-10px) } }
@keyframes iat-lightning { 0%,90%,100% { opacity:0 } 80% { opacity:.9 } 85% { opacity:0 } }

/* raven-black-eyes */
.scn-raven-black-eyes {
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 50%, #05050a 100%), radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, transparent 70%);
}
.scn-raven-black-eyes .shadow-room { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a0f 0%, transparent 30%, #0a0a0f 100%); animation: rbe-shadow 12s ease-in-out infinite alternate; }
.scn-raven-black-eyes .profile-silhouette { position:absolute; bottom:0; left:10%; right:50%; height:100%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); clip-path: polygon(0 0, 30% 0, 40% 10%, 35% 20%, 45% 30%, 40% 40%, 50% 50%, 45% 60%, 55% 70%, 40% 80%, 50% 90%, 45% 100%, 0 100%); animation: rbe-profile 8s ease-in-out infinite; }
.scn-raven-black-eyes .eye-large { position:absolute; top:30%; left:30%; width:60px; height:40px; background: radial-gradient(circle at 50% 50%, #0a0a1a 0%, #1a1a2a 40%, #2a2a3a 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; border: 2px solid #2a2a3a; box-shadow: 0 0 30px 10px rgba(10,10,20,.8); animation: rbe-eye 5s ease-in-out infinite; }
.scn-raven-black-eyes .tear-drop { position:absolute; top:45%; left:36%; width:6px; height:12px; background: linear-gradient(180deg, rgba(200,200,220,.6) 0%, rgba(200,200,220,.2) 100%); border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%; transform:rotate(10deg); animation: rbe-tear 4s ease-in-out infinite; }
.scn-raven-black-eyes .raven-wing { position:absolute; bottom:20%; right:10%; width:80px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 80% 20% 20% 80% / 60% 40% 40% 60%; transform:rotate(-30deg); animation: rbe-wing 7s ease-in-out infinite; }
.scn-raven-black-eyes .dark-halo { position:absolute; top:25%; left:25%; right:25%; bottom:25%; background: radial-gradient(ellipse at 30% 40%, rgba(20,20,30,.5) 0%, transparent 60%); animation: rbe-halo 10s ease-in-out infinite; }
.scn-raven-black-eyes .mourning-veil { position:absolute; inset:0; background: repeating-linear-gradient(45deg, transparent 0px, transparent 20px, rgba(10,10,20,.1) 20px, rgba(10,10,20,.1) 22px); animation: rbe-veil 15s linear infinite; }
@keyframes rbe-shadow { 0%,100% { opacity:.5 } 50% { opacity:.7 } }
@keyframes rbe-profile { 0%,100% { transform: translateX(0) } 25% { transform: translateX(2px) } 75% { transform: translateX(-2px) } }
@keyframes rbe-eye { 0%,100% { transform: scale(1) rotate(0deg) } 25% { transform: scale(1.05) rotate(2deg) } 75% { transform: scale(.95) rotate(-2deg) } }
@keyframes rbe-tear { 0%,100% { transform: translate(0,0) rotate(10deg) scaleY(1); opacity:.6 } 30% { transform: translate(1px,4px) rotate(12deg) scaleY(1.2); opacity:.8 } 70% { transform: translate(-1px,8px) rotate(8deg) scaleY(.9); opacity:.4 } }
@keyframes rbe-wing { 0%,100% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(-25deg) translateY(5px) } }
@keyframes rbe-halo { 0%,100% { opacity:.3 } 50% { opacity:.5; transform:scale(1.02) } }
@keyframes rbe-veil { 0% { background-position: 0 0 } 100% { background-position: 50px 50px } }

.scn-tongue-tied-muse { background: linear-gradient(45deg, #2d1e16 0%, #4a3022 50%, #5c3f2e 100%), radial-gradient(ellipse at 60% 20%, #7a5a42 0%, transparent 70%); }
.scn-tongue-tied-muse .ttm-room { position:absolute; inset:0; background: linear-gradient(180deg, #2d1e16 0%, #1f1410 100%); }
.scn-tongue-tied-muse .ttm-wall { position:absolute; bottom:30%; left:10%; right:10%; height:70%; background: linear-gradient(135deg, #6a4d3a 0%, #4a3224 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,.5); animation: ttm-wall 12s ease-in-out infinite alternate; }
.scn-tongue-tied-muse .ttm-window { position:absolute; top:10%; right:15%; width:50px; height:70px; background: linear-gradient(180deg, #4a6a7a 0%, #2a3a4a 100%); border:2px solid #3a2a1a; border-radius:4% 4% 8% 8%; box-shadow: inset 0 0 20px rgba(90,130,150,.3); animation: ttm-window 8s ease-in-out infinite alternate; }
.scn-tongue-tied-muse .ttm-curtain { position:absolute; top:9%; right:15%; width:60px; height:72px; background: linear-gradient(90deg, #6e4e3e 0%, #8a6a5a 50%, #6e4e3e 100%); border-radius:8% 8% 0 0; opacity:.7; transform: scaleX(1.2); animation: ttm-curtain 20s ease-in-out infinite; }
.scn-tongue-tied-muse .ttm-lamp { position:absolute; bottom:35%; left:20%; width:12px; height:16px; background: radial-gradient(circle at 50% 30%, #d4a060 0%, #b08040 60%, #704020 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 30px 10px #b08040, 0 0 60px 20px rgba(176,128,64,.3); animation: ttm-lamp 4s ease-in-out infinite alternate; }
.scn-tongue-tied-muse .ttm-desk { position:absolute; bottom:25%; left:15%; right:25%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius:4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-tongue-tied-muse .ttm-figure { position:absolute; bottom:28%; left:20%; width:20px; height:36px; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ttm-figure 6s ease-in-out infinite; }
.scn-tongue-tied-muse .ttm-shadow { position:absolute; bottom:25%; left:19%; width:24px; height:8px; background: rgba(0,0,0,.3); border-radius:50%; filter:blur(3px); animation: ttm-shadow 6s ease-in-out infinite; }
@keyframes ttm-wall { 0%,100% { opacity:.85 } 50% { opacity:.95 } }
@keyframes ttm-window { 0% { transform: scaleY(1) translateY(0); opacity:.7 } 50% { transform: scaleY(1.02) translateY(-2px); opacity:.9 } 100% { transform: scaleY(1) translateY(0); opacity:.75 } }
@keyframes ttm-curtain { 0%,100% { transform: scaleX(1.2) translateX(0) } 50% { transform: scaleX(1.15) translateX(-3px) } }
@keyframes ttm-lamp { 0% { transform: translateY(0); box-shadow: 0 0 25px 8px #b08040 } 50% { transform: translateY(-2px); box-shadow: 0 0 35px 12px #d4a060 } 100% { transform: translateY(0); box-shadow: 0 0 25px 8px #b08040 } }
@keyframes ttm-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(1deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes ttm-shadow { 0%,100% { transform: translateX(0) scale(1) } 50% { transform: translateX(8px) scale(1.1) } }

.scn-deceived-husband-faith { background: linear-gradient(180deg, #1a1a2e 0%, #2a203a 50%, #3a2a4a 100%), radial-gradient(ellipse at 70% 50%, #2a3a4a 0%, transparent 70%); }
.scn-deceived-husband-faith .dhf-bg { position:absolute; inset:0; background: linear-gradient(45deg, #1a1a2e 0%, #0e0e1a 100%); }
.scn-deceived-husband-faith .dhf-mirror { position:absolute; top:15%; left:50%; width:60px; height:90px; transform:translateX(-50%); background: linear-gradient(135deg, #304050 0%, #102030 100%); border:3px solid #5a4a3a; border-radius:6% 6% 10% 10% / 8% 8% 12% 12%; box-shadow: 0 0 20px rgba(50,60,80,.5); animation: dhf-mirror 8s ease-in-out infinite alternate; }
.scn-deceived-husband-faith .dhf-figure { position:absolute; bottom:20%; left:42%; width:22px; height:40px; background: linear-gradient(180deg, #3a2e3a 0%, #1a121a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dhf-figure 4s ease-in-out infinite; }
.scn-deceived-husband-faith .dhf-shadow { position:absolute; bottom:20%; left:46%; width:30px; height:42px; background: rgba(0,0,0,.4); border-radius:50%; filter:blur(4px); transform: skewX(15deg); animation: dhf-shadow 5s ease-in-out infinite; }
.scn-deceived-husband-faith .dhf-candle { position:absolute; bottom:35%; right:20%; width:6px; height:14px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:40% 40% 20% 20%; }
.scn-deceived-husband-faith .dhf-flame { position:absolute; bottom:47%; right:20%; width:8px; height:12px; background: radial-gradient(circle, #ffcc80 0%, #e6a050 50%, #804020 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 18px 6px #e6a050; animation: dhf-flame 0.4s ease-in-out infinite alternate; }
.scn-deceived-husband-faith .dhf-clock { position:absolute; bottom:15%; left:30%; width:14px; height:14px; background: radial-gradient(circle, #6a5a4a 0%, #3a2a1a 100%); border-radius:50%; border:2px solid #4a3a2a; animation: dhf-clock 2s linear infinite; }
@keyframes dhf-mirror { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.02) } 100% { transform: translateX(-50%) scaleX(0.98) } }
@keyframes dhf-figure { 0% { transform: translateX(0) rotate(0) } 20% { transform: translateX(2px) rotate(2deg) } 40% { transform: translateX(-2px) rotate(-2deg) } 60% { transform: translateX(2px) rotate(1deg) } 80% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dhf-shadow { 0%,100% { transform: skewX(15deg) translateX(0) } 50% { transform: skewX(15deg) translateX(-4px) } }
@keyframes dhf-flame { 0% { transform: scaleY(1) rotate(-3deg); opacity:.95 } 50% { transform: scaleY(1.2) rotate(3deg); opacity:1 } 100% { transform: scaleY(0.9) rotate(-2deg); opacity:.9 } }
@keyframes dhf-clock { 0% { transform: rotate(0) } 100% { transform: rotate(360deg) } }

.scn-absence-winter-summer { background: linear-gradient(180deg, #3a4a5a 0%, #5a6a7a 50%, #7a8a9a 100%), radial-gradient(ellipse at 50% 30%, #4a5a6a 0%, transparent 70%); }
.scn-absence-winter-summer .aws-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 100%); animation: aws-sky 15s ease-in-out infinite alternate; }
.scn-absence-winter-summer .aws-clouds { position:absolute; top:10%; left:0; right:0; height:30%; background: linear-gradient(0deg, rgba(180,190,200,.2) 0%, transparent 100%); filter:blur(8px); animation: aws-clouds 40s linear infinite; }
.scn-absence-winter-summer .aws-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.3); }
.scn-absence-winter-summer .aws-tree { position:absolute; bottom:20%; left:30%; width:6px; height:50px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius:10% 10% 0 0; transform-origin: bottom center; animation: aws-tree 10s ease-in-out infinite alternate; }
.scn-absence-winter-summer .aws-figure { position:absolute; bottom:22%; left:50%; width:18px; height:36px; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform: translateX(-50%); animation: aws-figure 8s ease-in-out infinite; }
.scn-absence-winter-summer .aws-flower { position:absolute; bottom:24%; left:65%; width:8px; height:12px; background: radial-gradient(circle, #7a6a5a 0%, #4a3a2a 100%); border-radius:50% 50% 20% 20% / 60% 60% 30% 30%; transform: rotate(-20deg); animation: aws-flower 6s ease-in-out infinite alternate; }
.scn-absence-winter-summer .aws-frost { position:absolute; inset:0; background: repeating-linear-gradient(0deg, rgba(200,210,220,.1) 0px, transparent 4px, rgba(200,210,220,.05) 8px); pointer-events:none; animation: aws-frost 20s linear infinite; }
@keyframes aws-sky { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes aws-clouds { 0% { transform: translateX(0) } 100% { transform: translateX(-50px) } }
@keyframes aws-tree { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes aws-figure { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes aws-flower { 0% { transform: rotate(-20deg) scale(1) } 50% { transform: rotate(-10deg) scale(1.1) } 100% { transform: rotate(-30deg) scale(0.9) } }
@keyframes aws-frost { 0% { background-position: 0 0 } 100% { background-position: 0 20px } }

.scn-fair-kind-true-constant { background: linear-gradient(135deg, #4a2a1a 0%, #6a3a2a 50%, #8a5a3a 100%), radial-gradient(ellipse at 50% 40%, #8a5a3a 0%, transparent 70%); }
.scn-fair-kind-true-constant .fkt-room { position:absolute; inset:0; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a10 100%); }
.scn-fair-kind-true-constant .fkt-hearth { position:absolute; bottom:10%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); }
.scn-fair-kind-true-constant .fkt-fire { position:absolute; bottom:15%; left:35%; right:35%; height:25%; background: radial-gradient(ellipse at 50% 80%, #d08040 0%, #a06020 40%, #402010 100%); border-radius:50% 50% 20% 20% / 80% 80% 40% 40%; box-shadow: 0 0 40px 20px #c07030; animation: fkt-fire 3s ease-in-out infinite alternate; }
.scn-fair-kind-true-constant .fkt-mirror { position:absolute; top:15%; left:50%; width:70px; height:100px; transform:translateX(-50%); background: linear-gradient(135deg, #5a4a3a 0%, #2a1a0e 100%); border:4px solid #6a4a2a; border-radius:6% 6% 10% 10% / 8% 8% 12% 12%; box-shadow: 0 0 30px rgba(200,150,100,.3); }
.scn-fair-kind-true-constant .fkt-frame { position:absolute; top:13%; left:48%; width:76px; height:106px; transform:translateX(-50%); background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius:8% 8% 12% 12% / 10% 10% 14% 14%; opacity:.4; animation: fkt-frame 10s ease-in-out infinite; }
.scn-fair-kind-true-constant .fkt-figure { position:absolute; bottom:25%; left:40%; width:22px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fkt-figure 7s ease-in-out infinite; }
.scn-fair-kind-true-constant .fkt-glow { position:absolute; top:15%; left:50%; width:80px; height:110px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(200,150,100,.15) 0%, transparent 100%); animation: fkt-glow 5s ease-in-out infinite alternate; }
.scn-fair-kind-true-constant .fkt-circle { position:absolute; bottom:30%; left:50%; width:30px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, #8a6a4a 0%, #4a2a1a 100%); border-radius:50%; border:2px solid #6a4a2a; animation: fkt-circle 12s linear infinite; }
@keyframes fkt-fire { 0% { transform: scaleY(1) translateY(0); opacity:.85 } 50% { transform: scaleY(1.15) translateY(-2px); opacity:1 } 100% { transform: scaleY(0.95) translateY(0); opacity:.9 } }
@keyframes fkt-frame { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } }
@keyframes fkt-figure { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(3px) rotate(1deg) } 60% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fkt-glow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes fkt-circle { 0% { transform: translateX(-50%) rotate(0) scale(1) } 25% { transform: translateX(-50%) rotate(90deg) scale(1.05) } 50% { transform: translateX(-50%) rotate(180deg) scale(1) } 75% { transform: translateX(-50%) rotate(270deg) scale(0.95) } 100% { transform: translateX(-50%) rotate(360deg) scale(1) } }

/* live-twice-vow – tense, overcast */
.scn-live-twice-vow {
  background: 
    linear-gradient(180deg, #737b8a 0%, #4a5263 40%, #2a3242 100%),
    radial-gradient(ellipse at 50% 0%, #a0a8b8 0%, transparent 70%);
}
.scn-live-twice-vow .ltv-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8a92a3 0%, #5a6273 100%);
  animation: ltv-sky 15s ease-in-out infinite alternate;
}
.scn-live-twice-vow .ltv-mist {
  position: absolute; inset: 30% 0 0 0;
  background: linear-gradient(180deg, rgba(90,98,115,0.6) 0%, transparent 100%);
  animation: ltv-mist 20s ease infinite;
}
.scn-live-twice-vow .ltv-tower {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset -12px 0 20px rgba(0,0,0,0.5);
  animation: ltv-tower 12s ease-in-out infinite alternate;
}
.scn-live-twice-vow .ltv-figure {
  position: absolute; bottom: 18%; left: 42%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ltv-figure 6s ease-in-out infinite;
}
.scn-live-twice-vow .ltv-child {
  position: absolute; bottom: 18%; left: 36%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: ltv-child 8s ease-in-out infinite;
}
.scn-live-twice-vow .ltv-desk {
  position: absolute; bottom: 12%; left: 38%; width: 80px; height: 12px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.4);
  animation: ltv-desk 10s ease-in-out infinite alternate;
}
.scn-live-twice-vow .ltv-candle {
  position: absolute; bottom: 18%; left: 42%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #c8a878 0%, #8a6838 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 4px #c8a878, 0 0 24px 8px rgba(200,168,120,0.4);
  animation: ltv-candle 3s ease-in-out infinite alternate;
}
.scn-live-twice-vow .ltv-clock-hand {
  position: absolute; bottom: 55%; left: 50%; width: 4px; height: 60px;
  margin-left: -2px;
  background: #3a2a1a;
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: ltv-clock 30s linear infinite;
}
@keyframes ltv-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes ltv-mist {
  0% { opacity: 0.3; transform: translateY(0); }
  50% { opacity: 0.7; transform: translateY(-5px); }
  100% { opacity: 0.4; transform: translateY(0); }
}
@keyframes ltv-tower {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02) translateY(-2px); }
  100% { transform: translateX(-50%) scale(0.98); }
}
@keyframes ltv-figure {
  0%, 100% { transform: rotate(-2deg) translateX(0); }
  25% { transform: rotate(2deg) translateX(2px); }
  50% { transform: rotate(-1deg) translateX(4px); }
  75% { transform: rotate(1deg) translateX(2px); }
}
@keyframes ltv-child {
  0%, 100% { transform: rotate(-1deg) translateX(0); }
  50% { transform: rotate(1deg) translateX(3px); }
}
@keyframes ltv-desk {
  0% { transform: translateY(0); }
  100% { transform: translateY(-1px); }
}
@keyframes ltv-candle {
  0% { box-shadow: 0 0 8px 2px #c8a878, 0 0 20px 6px rgba(200,168,120,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 16px 6px #e8c898, 0 0 32px 12px rgba(232,200,152,0.5); opacity: 1; }
  100% { box-shadow: 0 0 10px 3px #c8a878, 0 0 24px 8px rgba(200,168,120,0.4); opacity: 0.9; }
}
@keyframes ltv-clock {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* truthful-muse – calm, dim-interior */
.scn-truthful-muse {
  background: 
    linear-gradient(180deg, #4a3e35 0%, #2e2420 40%, #1a1410 100%),
    radial-gradient(ellipse at 50% 60%, #6a5a4a 0%, transparent 70%);
}
.scn-truthful-muse .tm-curtain-l {
  position: absolute; inset: 0 60% 0 0;
  background: linear-gradient(180deg, #6a3a3a 0%, #4a1a1a 100%);
  border-radius: 0 20% 0 0;
  animation: tm-curtain 14s ease-in-out infinite alternate;
}
.scn-truthful-muse .tm-curtain-r {
  position: absolute; inset: 0 0 0 60%;
  background: linear-gradient(180deg, #6a3a3a 0%, #4a1a1a 100%);
  border-radius: 20% 0 0 0;
  animation: tm-curtain 14s ease-in-out infinite alternate-reverse;
}
.scn-truthful-muse .tm-stage {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-truthful-muse .tm-spotlight {
  position: absolute; top: 10%; left: 30%; right: 30%; bottom: 35%;
  background: radial-gradient(ellipse at 50% 0%, rgba(220,200,160,0.4) 0%, transparent 70%);
  animation: tm-spotlight 20s ease-in-out infinite alternate;
}
.scn-truthful-muse .tm-poet {
  position: absolute; bottom: 22%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tm-poet 8s ease-in-out infinite;
}
.scn-truthful-muse .tm-muse {
  position: absolute; bottom: 22%; left: 52%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: tm-muse 10s ease-in-out infinite;
}
.scn-truthful-muse .tm-scroll {
  position: absolute; bottom: 26%; left: 44%; width: 30px; height: 4px;
  background: #c8b898;
  border-radius: 20%;
  box-shadow: 0 0 6px rgba(200,184,152,0.5);
  transform: rotate(10deg);
  animation: tm-scroll 12s ease-in-out infinite alternate;
}
@keyframes tm-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(-8px); }
  100% { transform: translateX(0); }
}
@keyframes tm-spotlight {
  0% { opacity: 0.5; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.05); }
  100% { opacity: 0.6; transform: scaleY(0.95); }
}
@keyframes tm-poet {
  0%, 100% { transform: rotate(-1deg) translateY(0); }
  25% { transform: rotate(1deg) translateY(-2px); }
  50% { transform: rotate(-2deg) translateY(0); }
  75% { transform: rotate(0deg) translateY(-2px); }
}
@keyframes tm-muse {
  0%, 100% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(3px); }
}
@keyframes tm-scroll {
  0% { transform: rotate(8deg) translateY(0); opacity: 0.7; }
  50% { transform: rotate(12deg) translateY(-2px); opacity: 1; }
  100% { transform: rotate(8deg) translateY(0); opacity: 0.8; }
}

/* zealous-pilgrimage – warm, dark */
.scn-zealous-pilgrimage {
  background: 
    linear-gradient(180deg, #1a1420 0%, #2a1a2a 30%, #0a0a10 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a3a 0%, transparent 80%);
}
.scn-zealous-pilgrimage .zp-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  animation: zp-sky 25s ease-in-out infinite alternate;
}
.scn-zealous-pilgrimage .zp-path {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
  animation: zp-path 18s ease-in-out infinite alternate;
}
.scn-zealous-pilgrimage .zp-pilgrim {
  position: absolute; bottom: 18%; left: 30%; width: 22px; height: 56px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: zp-pilgrim 6s ease-in-out infinite;
}
.scn-zealous-pilgrimage .zp-lantern {
  position: absolute; bottom: 22%; left: 28%; width: 8px; height: 10px;
  background: radial-gradient(circle, #e8c040 0%, #a08020 70%);
  border-radius: 30%;
  box-shadow: 0 0 20px 6px #e8c040, 0 0 40px 12px rgba(232,192,64,0.4);
  animation: zp-lantern 4s ease-in-out infinite alternate;
}
.scn-zealous-pilgrimage .zp-glow {
  position: absolute; bottom: 20%; left: 25%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(232,192,64,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: zp-glow 6s ease-in-out infinite alternate;
}
.scn-zealous-pilgrimage .zp-distant-light {
  position: absolute; bottom: 50%; right: 20%; width: 12px; height: 12px;
  background: radial-gradient(circle, #e8d080 0%, #c8a040 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(232,208,128,0.3);
  animation: zp-light 5s ease-in-out infinite alternate;
}
.scn-zealous-pilgrimage .zp-stars {
  position: absolute; top: 5%; left: 10%; width: 4px; height: 4px;
  background: #e8e8d0;
  border-radius: 50%;
  box-shadow: 40px 30px 0 2px #e8e8d0, 80px 60px 0 1px #d8d8c0, 120px 20px 0 1.5px #e8e8d0;
  animation: zp-stars 30s linear infinite;
}
@keyframes zp-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes zp-path {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes zp-pilgrim {
  0% { transform: rotate(-2deg) translateX(0) translateY(0); }
  25% { transform: rotate(2deg) translateX(6px) translateY(-1px); }
  50% { transform: rotate(-1deg) translateX(12px) translateY(0); }
  75% { transform: rotate(1deg) translateX(18px) translateY(-1px); }
  100% { transform: rotate(0deg) translateX(24px) translateY(0); }
}
@keyframes zp-lantern {
  0% { box-shadow: 0 0 12px 4px #e8c040, 0 0 24px 8px rgba(232,192,64,0.3); transform: rotate(-3deg); }
  50% { box-shadow: 0 0 24px 8px #f0d860, 0 0 48px 16px rgba(240,216,96,0.5); transform: rotate(3deg); }
  100% { box-shadow: 0 0 16px 6px #e8c040, 0 0 32px 12px rgba(232,192,64,0.4); transform: rotate(-2deg); }
}
@keyframes zp-glow {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes zp-light {
  0% { opacity: 0.5; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.6; transform: scale(0.9); }
}
@keyframes zp-stars {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; transform: translateX(-20px); }
}

/* living-grave – dark, dim-interior */
.scn-living-grave {
  background: 
    linear-gradient(180deg, #0a0a12 0%, #14141e 40%, #1e1e2a 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 70%);
}
.scn-living-grave .lg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  animation: lg-wall 20s ease-in-out infinite alternate;
}
.scn-living-grave .lg-figure {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 4px rgba(60,60,80,0.3);
  animation: lg-figure 12s ease-in-out infinite;
}
.scn-living-grave .lg-spirit-1 {
  position: absolute; bottom: 25%; left: 35%; width: 14px; height: 40px;
  background: linear-gradient(180deg, rgba(80,80,120,0.4) 0%, rgba(40,40,60,0.2) 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  filter: blur(3px);
  animation: lg-spirit 8s ease-in-out infinite;
}
.scn-living-grave .lg-spirit-2 {
  position: absolute; bottom: 30%; left: 60%; width: 12px; height: 36px;
  background: linear-gradient(180deg, rgba(80,80,120,0.3) 0%, rgba(40,40,60,0.15) 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  filter: blur(2px);
  animation: lg-spirit 10s ease-in-out infinite reverse;
}
.scn-living-grave .lg-spirit-3 {
  position: absolute; bottom: 28%; left: 45%; width: 10px; height: 30px;
  background: linear-gradient(180deg, rgba(80,80,120,0.35) 0%, rgba(40,40,60,0.2) 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  filter: blur(2.5px);
  animation: lg-spirit 7s ease-in-out infinite alternate;
}
.scn-living-grave .lg-chains {
  position: absolute; bottom: 15%; left: 45%; width: 4px; height: 30px;
  background: #3a3a4a;
  border-radius: 10%;
  box-shadow: 10px 0 0 0 #3a3a4a, 20px 0 0 0 #3a3a4a;
  animation: lg-chains 6s ease-in-out infinite alternate;
}
.scn-living-grave .lg-glow {
  position: absolute; bottom: 18%; left: 48%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(100,100,140,0.15) 0%, transparent 70%);
  filter: blur(6px);
  animation: lg-glow 15s ease-in-out infinite alternate;
}
@keyframes lg-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes lg-figure {
  0%, 100% { transform: translateX(-50%) rotate(-1deg); }
  25% { transform: translateX(-50%) rotate(1deg) translateY(-2px); }
  50% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  75% { transform: translateX(-50%) rotate(-1deg) translateY(-2px); }
}
@keyframes lg-spirit {
  0% { opacity: 0.2; transform: translateY(0) scale(0.8); }
  50% { opacity: 0.6; transform: translateY(-4px) scale(1); }
  100% { opacity: 0.3; transform: translateY(0) scale(0.9); }
}
@keyframes lg-chains {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}
@keyframes lg-glow {
  0% { opacity: 0.3; filter: blur(4px); }
  50% { opacity: 0.7; filter: blur(8px); }
  100% { opacity: 0.4; filter: blur(6px); }
}

.scn-will-pun-dark-lady {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1e1e2e 100%), radial-gradient(ellipse at 50% 90%, #3a3a5a 0%, transparent 80%);
}
.scn-will-pun-dark-lady .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #12121e 50%, #10101a 100%);
  opacity: 0.8;
}
.scn-will-pun-dark-lady .window {
  position: absolute; top: 20%; left: 50%; width: 160px; height: 200px; transform: translateX(-50%);
  background: linear-gradient(135deg, #2a3a4a 0%, #3a4a5a 50%, #2a3a4a 100%);
  border: 4px solid #3a2a1a;
  border-radius: 8px;
  box-shadow: inset 0 0 40px #0a0a1a;
  animation: wrd-window 12s ease-in-out infinite alternate;
}
.scn-will-pun-dark-lady .rain {
  position: absolute; top: 22%; left: 52%; width: 100px; height: 160px;
  background: repeating-linear-gradient(0deg, transparent, transparent 8px, rgba(180,200,220,0.2) 8px, rgba(180,200,220,0.2) 10px);
  filter: blur(1px);
  animation: wrd-rain 2s linear infinite;
}
.scn-will-pun-dark-lady .figure {
  position: absolute; bottom: 22%; left: 40%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wrd-figure 6s ease-in-out infinite alternate;
}
.scn-will-pun-dark-lady .heart {
  position: absolute; top: 35%; left: 55%; width: 24px; height: 22px;
  background: radial-gradient(circle at 50% 50%, #b87878 0%, #5e1a1d 100%);
  clip-path: path('M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3c1.74,0 3.41,0.81 4.5,2.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5c0,3.77-3.4,6.86-8.55,11.54L12,21.35Z');
  transform: scale(1.2);
  animation: wrd-heart 4s ease-in-out infinite alternate;
}
.scn-will-pun-dark-lady .candle {
  position: absolute; bottom: 30%; left: 35%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #d4a060 0%, #8a6a3a 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px #d4a060;
  animation: wrd-candle 3s ease-in-out infinite alternate;
}
.scn-will-pun-dark-lady .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  pointer-events: none;
}
.scn-will-pun-dark-lady .will-spot {
  position: absolute; top: 28%; left: 55%; width: 12px; height: 12px;
  background: radial-gradient(circle, #d4a060 0%, transparent 100%);
  border-radius: 50%;
  opacity: 0.5;
  animation: wrd-spot 8s ease-in-out infinite;
}
@keyframes wrd-window { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes wrd-rain { 0% { transform: translateY(0); } 100% { transform: translateY(30px); } }
@keyframes wrd-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-8px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes wrd-heart { 0% { transform: scale(1.2) translateY(0); opacity: 0.9; } 50% { transform: scale(1.4) translateY(-6px); opacity: 1; } 100% { transform: scale(1.2) translateY(0); opacity: 0.8; } }
@keyframes wrd-candle { 0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 20px #d4a060; } 50% { transform: scaleY(1.1) scaleX(0.9); box-shadow: 0 0 30px #e8b070; } 100% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 20px #d4a060; } }
@keyframes wrd-spot { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.2; } }

.scn-housewife-chasing-bird {
  background: linear-gradient(180deg, #8a9a7a 0%, #b0b8a0 30%, #c0c8b0 60%, #9aa88a 100%), radial-gradient(ellipse at 50% 100%, #708060 0%, transparent 70%);
}
.scn-housewife-chasing-bird .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0b8a0 0%, #c0c8b0 50%, #a0b090 100%);
  opacity: 0.6;
  animation: hcb-sky 20s ease-in-out infinite alternate;
}
.scn-housewife-chasing-bird .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #708060 0%, #5a6a4a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-housewife-chasing-bird .housewife {
  position: absolute; bottom: 26%; left: 30%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #a06848 0%, #7a4a2a 50%, #5a3a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hcb-run 4s ease-in-out infinite;
}
.scn-housewife-chasing-bird .bird {
  position: absolute; bottom: 50%; left: 55%; width: 28px; height: 12px;
  background: linear-gradient(180deg, #705030 0%, #503020 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(10deg);
  animation: hcb-bird 3s ease-in-out infinite alternate;
}
.scn-housewife-chasing-bird .child {
  position: absolute; bottom: 24%; left: 45%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #c8a880 0%, #a08060 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hcb-child 5s ease-in-out infinite;
}
.scn-housewife-chasing-bird .tree {
  position: absolute; bottom: 20%; right: 10%; width: 20px; height: 120px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  transform: rotate(5deg);
}
.scn-housewife-chasing-bird .cloud {
  position: absolute; top: 15%; left: 10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(200,200,200,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: hcb-cloud 30s linear infinite;
}
@keyframes hcb-sky { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes hcb-run { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(15px) translateY(-2px) rotate(0); } 50% { transform: translateX(30px) translateY(0) rotate(2deg); } 75% { transform: translateX(45px) translateY(-2px) rotate(0); } 100% { transform: translateX(60px) translateY(0) rotate(-2deg); } }
@keyframes hcb-bird { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-8px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes hcb-child { 0% { transform: translateY(0) scaleY(1); } 25% { transform: translateY(-3px) scaleY(1.02); } 50% { transform: translateY(0) scaleY(1); } 75% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes hcb-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(160vw); } }

.scn-lips-said-i-hate {
  background: linear-gradient(180deg, #1e1e3a 0%, #2a2a4e 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 80%, #3a3a5a 0%, transparent 90%);
}
.scn-lips-said-i-hate .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a1a, #1a1a2e, #0a0a1a);
  opacity: 0.7;
}
.scn-lips-said-i-hate .bed {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 35%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 30px #0a0a1a;
}
.scn-lips-said-i-hate .figure-lying {
  position: absolute; bottom: 18%; left: 30%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: lsi-lying 8s ease-in-out infinite alternate;
}
.scn-lips-said-i-hate .figure-dark {
  position: absolute; bottom: 40%; right: 25%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lsi-dark 6s ease-in-out infinite alternate;
}
.scn-lips-said-i-hate .lips {
  position: absolute; top: 30%; left: 55%; width: 30px; height: 12px;
  background: radial-gradient(circle at 50% 50%, #b87878 0%, #5e1a1d 100%);
  border-radius: 50% 50% 30% 30%;
  transform: scaleX(1.5);
  box-shadow: 0 0 20px rgba(184,120,120,0.5);
  animation: lsi-lips 4s ease-in-out infinite alternate;
}
.scn-lips-said-i-hate .fever {
  position: absolute; top: 20%; left: 0; right: 0; height: 60%;
  background: repeating-linear-gradient(0deg, transparent, transparent 20px, rgba(200,150,80,0.05) 20px, rgba(200,150,80,0.1) 22px);
  filter: blur(4px);
  animation: lsi-fever 3s ease-in-out infinite;
}
.scn-lips-said-i-hate .shadow-hand {
  position: absolute; top: 35%; left: 42%; width: 40px; height: 60px;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  transform: rotate(20deg);
  animation: lsi-hand 5s ease-in-out infinite alternate;
}
@keyframes lsi-lying { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-4px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes lsi-dark { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-10px) rotate(3deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(10px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes lsi-lips { 0% { box-shadow: 0 0 10px rgba(184,120,120,0.3); transform: scaleX(1.5) translateY(0); } 50% { box-shadow: 0 0 30px rgba(184,120,120,0.8); transform: scaleX(1.6) translateY(-3px); } 100% { box-shadow: 0 0 10px rgba(184,120,120,0.3); transform: scaleX(1.5) translateY(0); } }
@keyframes lsi-fever { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes lsi-hand { 0% { opacity: 0.2; transform: rotate(20deg) scale(1); } 100% { opacity: 0.5; transform: rotate(30deg) scale(1.1); } }

.scn-cupids-brand-fountain {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 30%, #3a1a0a 100%), radial-gradient(ellipse at 50% 60%, #5a3a2a 0%, transparent 80%);
}
.scn-cupids-brand-fountain .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 50%, #1a0a00 100%);
  opacity: 0.8;
}
.scn-cupids-brand-fountain .fountain-base {
  position: absolute; bottom: 10%; left: 50%; width: 120px; height: 60px; transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-cupids-brand-fountain .fountain-water {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 80px; transform: translateX(-50%);
  background: linear-gradient(0deg, #7a9aaa 0%, #b0c8d8 50%, #7a9aaa 100%);
  border-radius: 20% 20% 40% 40% / 60% 60% 20% 20%;
  filter: blur(2px);
  animation: cbf-water 4s ease-in-out infinite alternate;
}
.scn-cupids-brand-fountain .maid {
  position: absolute; bottom: 18%; left: 35%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #c8a880 0%, #a08060 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cbf-maid 6s ease-in-out infinite alternate;
}
.scn-cupids-brand-fountain .torch {
  position: absolute; bottom: 40%; left: 38%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: bottom left;
  animation: cbf-torch 5s ease-in-out infinite alternate;
}
.scn-cupids-brand-fountain .flame {
  position: absolute; bottom: 70%; left: 38%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 100%, #d06020 0%, #e8a040 50%, #f0c080 70%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 30px #d06020, 0 0 60px rgba(208,96,32,0.4);
  animation: cbf-flame 2s ease-in-out infinite alternate;
}
.scn-cupids-brand-fountain .sparks {
  position: absolute; bottom: 75%; left: 40%; width: 100px; height: 100px;
  background: radial-gradient(circle at 50% 50%, rgba(240,192,128,0.6) 0%, transparent 70%);
  filter: blur(4px);
  animation: cbf-sparks 3s ease-in-out infinite;
}
.scn-cupids-brand-fountain .drops {
  position: absolute; bottom: 35%; left: 50%; width: 4px; height: 40px;
  background: linear-gradient(180deg, rgba(180,200,220,0.6) 0%, transparent 100%);
  border-radius: 2px;
  animation: cbf-drops 1.5s linear infinite;
  animation-delay: 0.5s;
}
@keyframes cbf-water { 0% { transform: translateX(-50%) scaleY(1); opacity: 0.7; } 50% { transform: translateX(-50%) scaleY(1.1); opacity: 1; } 100% { transform: translateX(-50%) scaleY(1); opacity: 0.8; } }
@keyframes cbf-maid { 0% { transform: rotate(0); } 25% { transform: rotate(3deg) translateX(5px); } 50% { transform: rotate(0); } 75% { transform: rotate(-3deg) translateX(-5px); } 100% { transform: rotate(0); } }
@keyframes cbf-torch { 0% { transform: rotate(15deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(15deg); } }
@keyframes cbf-flame { 0% { transform: scaleY(1) scaleX(1); opacity: 0.8; } 50% { transform: scaleY(1.2) scaleX(0.8); opacity: 1; } 100% { transform: scaleY(1) scaleX(1); opacity: 0.9; } }
@keyframes cbf-sparks { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 0.8; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(1); } }
@keyframes cbf-drops { 0% { transform: translateY(0) scaleY(1); opacity: 1; } 100% { transform: translateY(-60px) scaleY(0.5); opacity: 0; } }

/* Scene: urge-to-marry (warm dim interior) */
.scn-urge-to-marry {
  background: 
    linear-gradient(180deg, #3a1e0e 0%, #2a1410 30%, #1a0e0a 70%),
    radial-gradient(ellipse at 50% 80%, #6a3a1a 0%, transparent 50%);
}
.scn-urge-to-marry .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, #0a0604 60%);
}
.scn-urge-to-marry .wall {
  position: absolute; inset: 0; 
  background: radial-gradient(ellipse at 40% 60%, #4a2a1a 0%, #1a0e0a 90%);
  filter: blur(2px);
}
.scn-urge-to-marry .window {
  position: absolute; top: 10%; left: 38%; width: 24%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #e8d0a0 0%, #c8a060 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 60px 20px rgba(200,160,96,.5);
  animation: urg-window 6s ease-in-out infinite alternate;
}
.scn-urge-to-marry .candle {
  position: absolute; bottom: 32%; left: 48%; width: 8px; height: 40px;
  background: linear-gradient(0deg, #e8c880 0%, #f0e0a0 60%, #ffffff 80%);
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  transform-origin: bottom center;
  animation: urg-candle 3s ease-in-out infinite;
}
.scn-urge-to-marry .candle-glow {
  position: absolute; bottom: 36%; left: 42%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(240,200,100,.6) 0%, rgba(240,200,100,.2) 40%, transparent 70%);
  border-radius: 50%;
  animation: urg-glow 3s ease-in-out infinite alternate;
}
.scn-urge-to-marry .figure {
  position: absolute; bottom: 20%; left: 55%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 60%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: urg-figure 8s ease-in-out infinite;
}
.scn-urge-to-marry .hand-ring {
  position: absolute; bottom: 30%; left: 63%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #2a1a12 0%, #4a3a2a 100%);
  border-radius: 40% 40% 50% 50%;
  animation: urg-hand 10s ease-in-out infinite;
}
.scn-urge-to-marry .hand-ring::after {
  content: ''; position: absolute; top: 4px; left: 4px; width: 8px; height: 6px;
  background: radial-gradient(circle, #d4a040 0%, #a07020 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #d4a040;
}
.scn-urge-to-marry .petal {
  position: absolute; bottom: 40%; left: 25%; width: 12px; height: 14px;
  background: linear-gradient(180deg, #d4a070 0%, #b08050 100%);
  border-radius: 50% 50% 30% 70% / 60% 40% 60% 40%;
  filter: blur(0.5px);
  animation: urg-petal 12s ease-in-out infinite alternate;
}
@keyframes urg-window {
  0% { opacity: 0.7; box-shadow: 0 0 40px 10px rgba(200,160,96,.3); }
  50% { opacity: 1; box-shadow: 0 0 80px 30px rgba(200,160,96,.6); }
  100% { opacity: 0.8; box-shadow: 0 0 50px 15px rgba(200,160,96,.4); }
}
@keyframes urg-candle {
  0% { transform: scaleY(1) rotate(-1deg); }
  30% { transform: scaleY(1.05) rotate(2deg); }
  60% { transform: scaleY(0.95) rotate(-2deg); }
  100% { transform: scaleY(1) rotate(0deg); }
}
@keyframes urg-glow {
  0% { transform: scale(0.9); opacity: 0.7; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(1); opacity: 0.8; }
}
@keyframes urg-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes urg-hand {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes urg-petal {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(30deg) translateX(5px) scale(0.9); }
  100% { transform: rotate(-20deg) translateX(-3px) scale(1); }
}

/* Scene: distillation-decay (tense sunlit) */
.scn-distillation-decay {
  background:
    linear-gradient(180deg, #f0dba0 0%, #d4b080 50%, #a07040 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 50%);
}
.scn-distillation-decay .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ffe8b0 0%, #f0c880 100%);
  filter: blur(1px);
  animation: dst-sky 15s ease-in-out infinite alternate;
}
.scn-distillation-decay .sun {
  position: absolute; top: 5%; left: 75%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff4c0 0%, #f0d060 40%, transparent 60%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(240,208,96,.5);
  animation: dst-sun 8s ease-in-out infinite;
}
.scn-distillation-decay .field {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 50%, #705030 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  filter: blur(1px);
}
.scn-distillation-decay .flower-wilt {
  position: absolute; bottom: 35%; left: 40%; width: 30px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, #b08040 0%, #805020 100%);
  border-radius: 50% 50% 30% 70% / 60% 40% 60% 40%;
  filter: blur(1px);
  animation: dst-flower 10s ease-in-out infinite;
}
.scn-distillation-decay .bottle {
  position: absolute; bottom: 30%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #d4c8a0 0%, #a89870 30%, #706050 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  box-shadow: -2px 0 4px rgba(0,0,0,.3), 2px 0 4px rgba(0,0,0,.3);
  transform-origin: bottom center;
  animation: dst-bottle 6s ease-in-out infinite alternate;
}
.scn-distillation-decay .bottle::after {
  content: ''; position: absolute; top: -6px; left: 4px; width: 12px; height: 10px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8b080 100%);
  border-radius: 50%;
}
.scn-distillation-decay .shadow-stem {
  position: absolute; bottom: 28%; left: 48%; width: 4px; height: 80px;
  background: linear-gradient(180deg, transparent 0%, #4a3a2a 50%, #3a2a1a 100%);
  transform: skewX(-15deg);
  filter: blur(1px);
  animation: dst-stem 12s ease-in-out infinite;
}
.scn-distillation-decay .dust {
  position: absolute; top: 30%; left: 20%; width: 16px; height: 16px;
  background: radial-gradient(circle, rgba(160,120,80,.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: dst-dust 20s linear infinite;
}
@keyframes dst-sky {
  0% { opacity: 0.8; filter: blur(1px); }
  50% { opacity: 1; filter: blur(0.5px); }
  100% { opacity: 0.9; filter: blur(2px); }
}
@keyframes dst-sun {
  0% { transform: scale(0.9); box-shadow: 0 0 60px 20px rgba(240,208,96,.3); }
  50% { transform: scale(1.1); box-shadow: 0 0 100px 40px rgba(240,208,96,.7); }
  100% { transform: scale(1); box-shadow: 0 0 80px 30px rgba(240,208,96,.5); }
}
@keyframes dst-flower {
  0% { transform: rotate(0deg) scale(1); filter: blur(1px); }
  30% { transform: rotate(15deg) scale(0.9); filter: blur(2px); }
  60% { transform: rotate(-10deg) scale(0.8); filter: blur(3px); }
  100% { transform: rotate(5deg) scale(1); filter: blur(1px); }
}
@keyframes dst-bottle {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes dst-stem {
  0% { transform: skewX(-15deg) translateY(0); opacity: 0.5; }
  50% { transform: skewX(-10deg) translateY(-5px); opacity: 0.8; }
  100% { transform: skewX(-15deg) translateY(0); opacity: 0.5; }
}
@keyframes dst-dust {
  0% { transform: translate(0, 0) scale(0.8); opacity: 0; }
  20% { transform: translate(30px, -20px) scale(1); opacity: 0.6; }
  40% { transform: translate(60px, -10px) scale(0.9); opacity: 0.4; }
  60% { transform: translate(90px, -30px) scale(1.1); opacity: 0.7; }
  80% { transform: translate(120px, -15px) scale(0.8); opacity: 0.5; }
  100% { transform: translate(150px, -40px) scale(0.6); opacity: 0; }
}

/* Scene: murderous-shame (dark dim interior) */
.scn-murderous-shame {
  background:
    linear-gradient(180deg, #1a1020 0%, #0e0812 40%, #06040a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a4a 0%, transparent 60%);
}
.scn-murderous-shame .bg-void {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, #020102 70%);
}
.scn-murderous-shame .wall-dark {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 40%, #2a2030 0%, #0e0812 90%);
  filter: blur(1px);
}
.scn-murderous-shame .mirror {
  position: absolute; top: 15%; left: 25%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #3a3040 0%, #1a1420 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 20px 5px rgba(0,0,0,.6), 0 0 0 2px #4a3a5a;
  overflow: hidden;
}
.scn-murderous-shame .mirror::after {
  content: ''; position: absolute; inset: 5px;
  background: radial-gradient(ellipse at 50% 40%, #2a1a30 0%, transparent 70%);
  border-radius: inherit;
}
.scn-murderous-shame .figure-dark {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #1a0a1a 0%, #0a040a 60%, #020102 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: mrd-figure 10s ease-in-out infinite;
}
.scn-murderous-shame .hand {
  position: absolute; bottom: 30%; left: 45%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 40% 40% 50% 50%;
  transform-origin: top center;
  animation: mrd-hand 8s ease-in-out infinite;
}
.scn-murderous-shame .tear {
  position: absolute; bottom: 50%; left: 50%; width: 6px; height: 10px;
  background: radial-gradient(circle, #9a8aaa 0%, transparent 80%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: mrd-tear 6s ease-in-out infinite;
}
.scn-murderous-shame .seal {
  position: absolute; bottom: 25%; left: 60%; width: 16px; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, #6a4a6a 0%, #3a2a3a 100%);
  border-radius: 50%;
  filter: blur(0.5px);
  animation: mrd-seal 14s ease-in-out infinite alternate;
}
@keyframes mrd-figure {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.9; }
  25% { transform: translateY(-2px) rotate(1deg); opacity: 1; }
  50% { transform: translateY(0) rotate(-1deg); opacity: 0.8; }
  75% { transform: translateY(1px) rotate(0.5deg); opacity: 0.9; }
  100% { transform: translateY(0) rotate(0deg); opacity: 0.9; }
}
@keyframes mrd-hand {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-3px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes mrd-tear {
  0% { transform: translateY(0) scale(1); opacity: 0.5; }
  30% { transform: translateY(10px) scale(0.8); opacity: 0.8; }
  60% { transform: translateY(20px) scale(0.6); opacity: 0.3; }
  100% { transform: translateY(30px) scale(0.4); opacity: 0; }
}
@keyframes mrd-seal {
  0% { transform: scale(0.9); opacity: 0.6; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); opacity: 0.8; }
}

/* Scene: engraft-in-verse (warm dim interior) */
.scn-engraft-in-verse {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a10 40%, #1a0e08 100%),
    radial-gradient(ellipse at 50% 50%, #6a4a2a 0%, transparent 60%);
}
.scn-engraft-in-verse .bg-warm {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, #0a0604 60%);
}
.scn-engraft-in-verse .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.5);
}
.scn-engraft-in-verse .lamp {
  position: absolute; bottom: 48%; left: 55%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: eng-lamp 5s ease-in-out infinite alternate;
}
.scn-engraft-in-verse .lamp-glow {
  position: absolute; bottom: 40%; left: 48%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,160,96,.5) 0%, rgba(200,160,96,.2) 40%, transparent 60%);
  border-radius: 50%;
  animation: eng-glow 5s ease-in-out infinite alternate;
}
.scn-engraft-in-verse .paper {
  position: absolute; bottom: 28%; left: 30%; width: 40%; height: 18%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4c0a0 100%);
  border-radius: 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  transform-origin: center;
  animation: eng-paper 12s ease-in-out infinite;
}
.scn-engraft-in-verse .quill {
  position: absolute; bottom: 45%; left: 45%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #e8d0a0 0%, #a08060 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  transform-origin: bottom center;
  animation: eng-quill 8s ease-in-out infinite;
}
.scn-engraft-in-verse .quill::after {
  content: ''; position: absolute; top: -8px; left: 0; width: 8px; height: 10px;
  background: radial-gradient(circle, #d4b080 0%, #a08060 100%);
  border-radius: 50%;
}
.scn-engraft-in-verse .hand-poet {
  position: absolute; bottom: 32%; left: 38%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 40% 40% 50% 50%;
  animation: eng-hand 8s ease-in-out infinite;
}
.scn-engraft-in-verse .child-silhouette {
  position: absolute; bottom: 18%; left: 60%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a0e0a 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: eng-child 14s ease-in-out infinite;
}
@keyframes eng-lamp {
  0% { transform: scaleY(1) rotate(-1deg); }
  50% { transform: scaleY(1.03) rotate(2deg); }
  100% { transform: scaleY(1) rotate(-1deg); }
}
@keyframes eng-glow {
  0% { transform: scale(0.95); opacity: 0.8; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); opacity: 0.9; }
}
@keyframes eng-paper {
  0% { transform: rotate(0deg) scale(1); }
  30% { transform: rotate(3deg) scale(0.98); }
  60% { transform: rotate(-1deg) scale(1); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes eng-quill {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(10deg) translateY(-2px); }
  50% { transform: rotate(-5deg) translateY(0); }
  75% { transform: rotate(15deg) translateY(-3px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes eng-hand {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes eng-child {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(1px) scale(0.97); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.8; }
}
/* end per-scene blocks */
