/* 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 ============ */
/* auto-stub: parent tag-classes flagged by CSS audit */
.babe { position: absolute; pointer-events: none; }
.dancer { position: absolute; pointer-events: none; }
.folio { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }

/* per-scene blocks (EXP step_scenes) */
.scn-christmas-carol-shepherds { background: linear-gradient(180deg, #0f1a2e 0%, #1a2a44 40%, #2a3a5e 70%, #1a2a3a 100%), radial-gradient(ellipse at 50% 30%, #3a5a8a 0%, transparent 60%); }
.scn-christmas-carol-shepherds .night-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #0b1428 0%, #1a2844 50%, #2a3a5e 100%); animation: cs-sky 20s ease-in-out infinite alternate; }
.scn-christmas-carol-shepherds .hills { position:absolute; bottom:30%; left:0; right:0; height:28%; background: linear-gradient(180deg, #1a2a1a 0%, #0f1a0f 100%); border-radius: 50% 60% 0 0 / 70% 80% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,.5); animation: cs-hills 25s ease-in-out infinite alternate; }
.scn-christmas-carol-shepherds .stable { position:absolute; bottom:25%; left:30%; width:120px; height:80px; background: linear-gradient(135deg, #4a3020 0%, #2a1a10 50%, #3a2218 100%); border-radius: 6% 6% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,.6); animation: cs-stable 10s ease-in-out infinite; }
.scn-christmas-carol-shepherds .star-glow { position:absolute; top:8%; left:50%; width:30px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, #ffe8a0 0%, #f0c060 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 12px rgba(240,192,96,.5), 0 0 80px 24px rgba(240,192,96,.2); animation: cs-star 4s ease-in-out infinite alternate; }
.scn-christmas-carol-shepherds .shepherd-a { position:absolute; bottom:26%; left:48%; width:20px; height:40px; background: linear-gradient(180deg, #1a2a3a 0%, #0f1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cs-walk-a 6s ease-in-out infinite; }
.scn-christmas-carol-shepherds .shepherd-b { position:absolute; bottom:26%; left:56%; width:18px; height:36px; background: linear-gradient(180deg, #1a2a3a 0%, #0f1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cs-walk-b 6s ease-in-out infinite 2s; }
.scn-christmas-carol-shepherds .path { position:absolute; bottom:28%; left:20%; right:10%; height:6px; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%); border-radius: 50%; filter: blur(1px); animation: cs-path 18s ease-in-out infinite alternate; }
@keyframes cs-sky { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cs-hills { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes cs-stable { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-2px) translateY(-3px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes cs-star { 0% { box-shadow: 0 0 30px 8px rgba(240,192,96,.4); transform: scale(.95) rotate(-2deg); opacity:.85 } 50% { box-shadow: 0 0 60px 18px rgba(240,192,96,.7); transform: scale(1.1) rotate(2deg); opacity:1 } 100% { box-shadow: 0 0 40px 12px rgba(240,192,96,.5); transform: scale(1) rotate(0); opacity:.9 } }
@keyframes cs-walk-a { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes cs-walk-b { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(6px) translateY(-1px) rotate(-2deg) } 50% { transform: translateX(12px) translateY(0) rotate(1deg) } 75% { transform: translateX(18px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(24px) translateY(0) rotate(0) } }
@keyframes cs-path { 0% { opacity:.6; transform: scaleX(1) } 50% { opacity:.8; transform: scaleX(1.05) } 100% { opacity:.6; transform: scaleX(1) } }

.scn-alice-du-clos-hunt { background: linear-gradient(180deg, #2a1a2a 0%, #3a2a3a 30%, #5a4a4a 70%, #4a3a3a 100%), radial-gradient(ellipse at 70% 0%, #4a3a4a 0%, transparent 50%); }
.scn-alice-du-clos-hunt .mist    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, rgba(200,180,160,.35) 0%, rgba(200,180,160,.1) 100%); filter: blur(8px); animation: hunt-mist 12s ease-in-out infinite alternate; }
.scn-alice-du-clos-hunt .sun-ray { position:absolute; top:0; left:50%; width:30%; height:70%; background: linear-gradient(180deg, rgba(255,220,150,.6) 0%, transparent 100%); transform:skewX(-10deg); opacity:.5; animation: hunt-sun 8s ease-in-out infinite; }
.scn-alice-du-clos-hunt .horse-back{ position:absolute; bottom:30%; left:20%; width:70px; height:50px; transform:rotate(-5deg); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:30% 40% 10% 10% / 50% 60% 20% 20%; animation: hunt-horse 3s ease-in-out infinite; }
.scn-alice-du-clos-hunt .rider-sil{ position:absolute; bottom:38%; left:22%; width:20px; height:30px; background:#1a1a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(10deg); animation: hunt-rider 3s ease-in-out infinite; }
.scn-alice-du-clos-hunt .garden-stile{ position:absolute; bottom:28%; right:25%; width:16px; height:40px; background:#3a2a1a; border-radius:10% 10% 20% 20%; box-shadow:4px 0 #2a1a0a; }
.scn-alice-du-clos-hunt .maid-figure{ position:absolute; bottom:32%; right:27%; width:14px; height:30px; background:#2a1a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: hunt-maid 5s ease-in-out infinite; }
.scn-alice-du-clos-hunt .ground  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius:10% 10% 0 0; }
.scn-alice-du-clos-hunt .tree-shape{ position:absolute; top:5%; left:5%; width:40px; height:120px; background:#1a1a2a; border-radius:30% 30% 10% 10% / 50% 50% 10% 10%; transform:scaleX(1.3); }
@keyframes hunt-mist  { 0% { opacity:.3; transform:scaleY(1) } 50% { opacity:.6; transform:scaleY(1.1) } 100% { opacity:.4; transform:scaleY(.95) } }
@keyframes hunt-sun   { 0% { opacity:.3; transform:skewX(-10deg) translateX(-2%) } 50% { opacity:.6; transform:skewX(-5deg) translateX(2%) } 100% { opacity:.4; transform:skewX(-10deg) translateX(-1%) } }
@keyframes hunt-horse { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(-3deg) translateY(-3px) } 100% { transform:rotate(-5deg) translateY(0) } }
@keyframes hunt-rider { 0% { transform:rotate(10deg) translateY(0) } 50% { transform:rotate(8deg) translateY(-2px) } 100% { transform:rotate(10deg) translateY(0) } }
@keyframes hunt-maid  { 0% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(3px) rotate(2deg) } 100% { transform:translateX(0) rotate(-1deg) } }

.scn-alice-du-clos-race { background: linear-gradient(180deg, #2a1a2a 0%, #3a2a3a 30%, #6a4a3a 60%, #5a3a2a 100%), radial-gradient(ellipse at 40% 0%, #7a5a3a 0%, transparent 60%); }
.scn-alice-du-clos-race .sky-dawn   { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a3a 0%, #4a3a3a 100%); }
.scn-alice-du-clos-race .sun-globe  { position:absolute; top:10%; right:15%; width:40px; height:40px; background: radial-gradient(circle, #e0a060 0%, #c08040 70%); border-radius:50%; box-shadow:0 0 30px 8px #c08040,0 0 60px 16px rgba(192,128,64,.4); animation: race-sun 6s ease-in-out infinite alternate; }
.scn-alice-du-clos-race .lane       { position:absolute; bottom:30%; left:0; right:0; height:10%; background:#3a2a1a; border-radius:20% 20% 0 0; transform:perspective(200px) rotateX(10deg); }
.scn-alice-du-clos-race .horse-fore { position:absolute; bottom:35%; left:25%; width:80px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:30% 40% 10% 10% / 50% 60% 20% 20%; animation: race-horse 2s ease-in-out infinite; }
.scn-alice-du-clos-race .horse-aft  { position:absolute; bottom:37%; left:10%; width:70px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:30% 40% 10% 10% / 50% 60% 20% 20%; animation: race-horse 2.2s ease-in-out infinite; animation-delay:-.6s; }
.scn-alice-du-clos-race .knight-fore{ position:absolute; bottom:43%; left:27%; width:20px; height:30px; background:#1a1a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(10deg); animation: race-rider 2s ease-in-out infinite; }
.scn-alice-du-clos-race .knight-aft { position:absolute; bottom:44%; left:12%; width:18px; height:28px; background:#1a1a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(10deg); animation: race-rider 2.2s ease-in-out infinite; animation-delay:-.6s; }
.scn-alice-du-clos-race .dust       { position:absolute; bottom:30%; left:5%; width:40%; height:15%; background: radial-gradient(ellipse, rgba(200,180,160,.3) 0%, transparent 100%); filter: blur(4px); animation: race-dust 4s ease-out infinite; }
@keyframes race-sun  { 0% { transform:scale(1); box-shadow:0 0 20px 4px #c08040; } 50% { transform:scale(1.05); box-shadow:0 0 40px 12px #e0a060; } 100% { transform:scale(.98); box-shadow:0 0 25px 6px #c08040; } }
@keyframes race-horse{ 0% { transform:translateY(0) rotate(-5deg); } 50% { transform:translateY(-6px) rotate(-3deg); } 100% { transform:translateY(0) rotate(-5deg); } }
@keyframes race-rider{ 0% { transform:translateY(0) rotate(10deg); } 50% { transform:translateY(-4px) rotate(8deg); } 100% { transform:translateY(0) rotate(10deg); } }
@keyframes race-dust { 0% { opacity:.6; transform:translateX(0) scaleX(1); } 50% { opacity:.2; transform:translateX(20px) scaleX(1.5); } 100% { opacity:0; transform:translateX(40px) scaleX(2); } }

.scn-alice-du-clos-forest-aisle { background: linear-gradient(180deg, #1a2a1a 0%, #2a3a2a 30%, #3a4a3a 60%, #2a3a2a 100%), radial-gradient(ellipse at 50% 30%, #3a4a3a 0%, transparent 70%); }
.scn-alice-du-clos-forest-aisle .forest-shadow-trees{ position:absolute; inset:0; background: linear-gradient(90deg, #0a1a0a 0%, transparent 40%, transparent 60%, #0a1a0a 100%); }
.scn-alice-du-clos-forest-aisle .aisle-path{ position:absolute; bottom:25%; left:30%; right:30%; height:15%; background:#2a3a2a; border-radius:30% 30% 0 0; transform:perspective(150px) rotateX(5deg); }
.scn-alice-du-clos-forest-aisle .sunny-glade-bg{ position:absolute; top:20%; left:40%; right:20%; height:40%; background: linear-gradient(180deg, rgba(180,200,120,.4) 0%, rgba(180,200,120,.1) 100%); border-radius:50% 50% 10% 10% / 70% 70% 20% 20%; animation: aisle-glade 10s ease-in-out infinite alternate; }
.scn-alice-du-clos-forest-aisle .lord-on-steed{ position:absolute; bottom:30%; left:42%; width:20px; height:35px; background:#1a1a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(5deg); animation: aisle-lord 4s ease-in-out infinite; }
.scn-alice-du-clos-forest-aisle .steed-body{ position:absolute; bottom:28%; left:38%; width:70px; height:50px; background:#2a2a3a; border-radius:30% 40% 10% 10% / 50% 60% 20% 20%; animation: aisle-steed 4s ease-in-out infinite; }
.scn-alice-du-clos-forest-aisle .leaf-screen{ position:absolute; top:5%; left:0; width:100%; height:20%; background: radial-gradient(ellipse at 30% 0%, #1a3a1a 0%, transparent 70%); border-radius:0 0 50% 50%; filter: blur(3px); }
.scn-alice-du-clos-forest-aisle .ground-patch{ position:absolute; bottom:0; left:20%; right:20%; height:25%; background:#1a2a1a; border-radius:20% 20% 0 0; }
.scn-alice-du-clos-forest-aisle .light-flare{ position:absolute; top:15%; right:25%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,220,150,.5) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: aisle-flare 8s ease-in-out infinite; }
@keyframes aisle-glade { 0% { opacity:.3; transform:scale(1) translateX(0); } 50% { opacity:.7; transform:scale(1.1) translateX(-5px); } 100% { opacity:.4; transform:scale(1) translateX(0); } }
@keyframes aisle-lord  { 0% { transform:rotate(5deg) translateY(0); } 50% { transform:rotate(3deg) translateY(-2px); } 100% { transform:rotate(5deg) translateY(0); } }
@keyframes aisle-steed { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-3px) rotate(-1deg); } 100% { transform:translateY(0) rotate(-2deg); } }
@keyframes aisle-flare { 0% { opacity:.2; } 50% { opacity:.6; } 100% { opacity:.3; } }

.scn-alley-green-confrontation { background: linear-gradient(180deg, #2a2a1a 0%, #3a3a2a 30%, #5a4a3a 60%, #4a3a2a 100%), radial-gradient(ellipse at 50% 0%, #6a5a3a 0%, transparent 60%); }
.scn-alley-green-confrontation .alley-green-bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%); }
.scn-alley-green-confrontation .sward-grass { position:absolute; bottom:20%; left:10%; right:10%; height:10%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius:40% 40% 0 0; }
.scn-alley-green-confrontation .sir-hugh-horse { position:absolute; bottom:28%; left:15%; width:80px; height:55px; background:#2a2a3a; border-radius:30% 40% 10% 10% / 50% 60% 20% 20%; animation: conf-horse 3s ease-in-out infinite; }
.scn-alley-green-confrontation .sir-hugh-figure{ position:absolute; bottom:36%; left:18%; width:22px; height:34px; background:#1a1a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(8deg); animation: conf-rider 3s ease-in-out infinite; }
.scn-alley-green-confrontation .lord-julian-horse{ position:absolute; bottom:28%; right:20%; width:80px; height:55px; background:#2a2a3a; border-radius:30% 40% 10% 10% / 50% 60% 20% 20%; animation: conf-horse 3.3s ease-in-out infinite; animation-delay:-.5s; }
.scn-alley-green-confrontation .lord-julian-figure{ position:absolute; bottom:36%; right:23%; width:22px; height:34px; background:#1a1a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-5deg); animation: conf-rider 3.3s ease-in-out infinite; animation-delay:-.5s; }
.scn-alley-green-confrontation .alley-trees { position:absolute; top:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2a1a 0%, transparent 100%); }
.scn-alley-green-confrontation .sunlight-spot { position:absolute; top:10%; left:35%; width:80px; height:80px; background: radial-gradient(circle, rgba(220,200,120,.35) 0%, transparent 100%); filter: blur(10px); animation: conf-sunspot 8s ease-in-out infinite alternate; }
@keyframes conf-horse    { 0% { transform:translateY(0) rotate(-3deg); } 50% { transform:translateY(-4px) rotate(-1deg); } 100% { transform:translateY(0) rotate(-3deg); } }
@keyframes conf-rider    { 0% { transform:rotate(8deg) translateY(0); } 50% { transform:rotate(5deg) translateY(-2px); } 100% { transform:rotate(8deg) translateY(0); } }
@keyframes conf-sunspot  { 0% { opacity:.2; transform:scale(1) translateX(0); } 50% { opacity:.5; transform:scale(1.2) translateX(10px); } 100% { opacity:.3; transform:scale(.9) translateX(-5px); } }

.scn-errata {
  background: linear-gradient(180deg, #f2e6d0 0%, #e0d0b8 50%, #cbb89c 100%), radial-gradient(ellipse at 50% 70%, #f5efe0 0%, transparent 70%);
}
.scn-errata .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4c4a8 0%, #c4b498 100%);
  animation: er-wall 20s ease-in-out infinite alternate;
}
.scn-errata .desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5b3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
}
.scn-errata .book {
  position: absolute; bottom: 20%; left: 50%; width: 200px; height: 100px; transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3e2a 0%, #3a2a1a 100%);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: er-book 12s ease-in-out infinite;
}
.scn-errata .page-left {
  position: absolute; bottom: 22%; left: 43%; width: 90px; height: 80px;
  background: linear-gradient(180deg, #f5e6c8 0%, #e6d5b5 100%);
  border-radius: 4px 0 0 4px;
  box-shadow: inset -2px 0 4px rgba(0,0,0,.1);
  transform-origin: right center;
  animation: er-page-left 8s ease-in-out infinite;
}
.scn-errata .page-right {
  position: absolute; bottom: 22%; right: 43%; width: 90px; height: 80px;
  background: linear-gradient(180deg, #f5e6c8 0%, #e6d5b5 100%);
  border-radius: 0 4px 4px 0;
  box-shadow: inset 2px 0 4px rgba(0,0,0,.1);
  transform-origin: left center;
  animation: er-page-right 8s ease-in-out infinite;
}
.scn-errata .lamp {
  position: absolute; bottom: 35%; left: 30%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #c0a88a 0%, #a08a6a 50%, #8a7050 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px rgba(200,170,120,.4);
  animation: er-lamp 6s ease-in-out infinite;
}
.scn-errata .light {
  position: absolute; bottom: 40%; left: 30%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(255,240,200,.6) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: er-light 4s ease-in-out infinite alternate;
}
.scn-errata .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,.15) 0%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-20px);
  animation: er-shadow 10s ease-in-out infinite;
}

@keyframes er-wall {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .95; }
}
@keyframes er-book {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg) scaleY(1.01); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes er-page-left {
  0% { transform: rotateY(0deg); }
  50% { transform: rotateY(-8deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes er-page-right {
  0% { transform: rotateY(0deg); }
  50% { transform: rotateY(8deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes er-lamp {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes er-light {
  0% { opacity: .6; box-shadow: 0 0 20px 5px rgba(255,240,200,.3); }
  50% { opacity: .75; box-shadow: 0 0 35px 12px rgba(255,240,200,.45); }
  100% { opacity: .8; box-shadow: 0 0 30px 10px rgba(255,240,200,.4); }
}
@keyframes er-shadow {
  0% { opacity: .3; transform: translateX(-20px) scaleX(1); }
  50% { opacity: .5; transform: translateX(-15px) scaleX(1.1); }
  100% { opacity: .3; transform: translateX(-20px) scaleX(1); }
}

.scn-cologne-stench { background: linear-gradient(180deg, #f8e08e 0%, #f0c060 40%, #d4a040 70%, #b08030 100%), radial-gradient(ellipse at 60% 20%, #ffe080 0%, transparent 60%); }
.scn-cologne-stench .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffe890 0%, #f8d870 50%, #e0b040 100%); animation: cs-sky 20s ease-in-out infinite alternate; }
.scn-cologne-stench .sun { position:absolute; top:12%; left:65%; width:60px; height:60px; background: radial-gradient(circle, #fff0a0 0%, #ffd060 40%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,208,96,0.6); animation: cs-sun 10s ease-in-out infinite alternate; }
.scn-cologne-stench .town { position:absolute; bottom:30%; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius:30% 40% 0 0 / 50% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.4); animation: cs-town 18s ease-in-out infinite alternate; }
.scn-cologne-stench .river { position:absolute; bottom:18%; left:0; right:0; height:12%; background: linear-gradient(180deg, #7a9a7a 0%, #5a7a5a 50%, #3a5a3a 100%); border-radius:0 0 40% 40% / 0 0 30% 30%; animation: cs-river 8s ease-in-out infinite; }
.scn-cologne-stench .figure { position:absolute; bottom:30%; left:45%; width:16px; height:36px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cs-figure 4s ease-in-out infinite; }
.scn-cologne-stench .stench { position:absolute; bottom:38%; left:30%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(80,120,60,0.5) 0%, rgba(80,120,60,0) 100%); border-radius:50%; filter: blur(4px); animation: cs-stench 6s ease-in-out infinite; }
.scn-cologne-stench .bone { position:absolute; bottom:34%; left:60%; width:12px; height:8px; background: #e0c080; border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(20deg); animation: cs-bone 12s linear infinite; }
@keyframes cs-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes cs-sun { 0% { transform: scale(1); box-shadow: 0 0 30px 10px rgba(255,208,96,0.5); } 50% { transform: scale(1.1); box-shadow: 0 0 50px 25px rgba(255,208,96,0.8); } 100% { transform: scale(.95); box-shadow: 0 0 35px 15px rgba(255,208,96,0.6); } }
@keyframes cs-town { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes cs-river { 0% { transform: translateX(0); opacity:.7 } 50% { transform: translateX(10px); opacity:.9 } 100% { transform: translateX(-10px); opacity:.7 } }
@keyframes cs-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 30% { transform: translateX(8px) translateY(-2px) rotate(0deg) } 60% { transform: translateX(16px) translateY(0) rotate(2deg) } 100% { transform: translateX(24px) translateY(-1px) rotate(-1deg) } }
@keyframes cs-stench { 0% { transform: scale(1) translate(0,0); opacity:.5 } 50% { transform: scale(1.3) translate(5px,-8px); opacity:.8 } 100% { transform: scale(.9) translate(-3px,2px); opacity:.3 } }
@keyframes cs-bone { 0% { transform: translateX(0) rotate(20deg) } 50% { transform: translateX(20px) rotate(30deg) } 100% { transform: translateX(40px) rotate(15deg) } }

.scn-editorial-cologne { background: linear-gradient(180deg, #2a2a2a 0%, #3a2a1a 40%, #4a3a2a 80%, #3a2a1a 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%); }
.scn-editorial-cologne .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.5); animation: ec-wall 30s ease-in-out infinite alternate; }
.scn-editorial-cologne .window { position:absolute; top:10%; left:55%; width:100px; height:140px; background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%); border:6px solid #5a3a1a; border-radius:4px 4px 10px 10px; box-shadow: inset 0 0 30px rgba(0,0,0,0.3); }
.scn-editorial-cologne .desk { position:absolute; bottom:20%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:6px; box-shadow: 0 4px 10px rgba(0,0,0,0.5); }
.scn-editorial-cologne .book { position:absolute; bottom:26%; left:35%; width:40px; height:30px; background: linear-gradient(180deg, #8a5a3a 0%, #6a3a1a 100%); border-radius:2px; transform: rotate(-5deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.4); animation: ec-book 20s ease-in-out infinite; }
.scn-editorial-cologne .candle { position:absolute; bottom:28%; left:60%; width:8px; height:40px; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius:2px 2px 4px 4px; }
.scn-editorial-cologne .flame { position:absolute; bottom:32%; left:60%; width:10px; height:14px; background: radial-gradient(circle at 50% 30%, #ffe080 0%, #ffc040 40%, #ff8020 70%, transparent 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ec-flame 2s ease-in-out infinite alternate; }
.scn-editorial-cologne .quill { position:absolute; bottom:25%; left:40%; width:2px; height:30px; background: #c0a070; border-radius:0 0 50% 50%; transform: rotate(15deg); transform-origin: bottom left; animation: ec-quill 15s ease-in-out infinite; }
@keyframes ec-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ec-book { 0% { transform: rotate(-5deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-5deg) } }
@keyframes ec-flame { 0% { transform: scaleY(1); opacity:.9 } 50% { transform: scaleY(1.2) scaleX(.9); opacity:1 } 100% { transform: scaleY(.95); opacity:.85 } }
@keyframes ec-quill { 0% { transform: rotate(15deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(12deg) } }

.scn-editorial-departure { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #1a1a2a 100%), radial-gradient(ellipse at 30% 70%, #2a2a3a 0%, transparent 60%); }
.scn-editorial-departure .room { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%); animation: ed-room 25s ease-in-out infinite alternate; }
.scn-editorial-departure .door { position:absolute; top:10%; right:5%; width:80px; height:180px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border:4px solid #2a1a0a; border-radius:4px 0 0 4px; box-shadow: -10px 0 20px rgba(0,0,0,0.5); }
.scn-editorial-departure .suitcase { position:absolute; bottom:18%; left:30%; width:70px; height:40px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:4px; box-shadow: 2px 2px 10px rgba(0,0,0,0.4); animation: ed-suitcase 30s ease-in-out infinite; }
.scn-editorial-departure .hat { position:absolute; bottom:22%; left:25%; width:30px; height:15px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:50% 50% 10% 10%; transform: rotate(-10deg); animation: ed-hat 15s ease-in-out infinite; }
.scn-editorial-departure .shadow { position:absolute; bottom:0; left:10%; right:10%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%); animation: ed-shadow 20s ease-in-out infinite alternate; }
.scn-editorial-departure .lightbeam { position:absolute; inset:0; background: linear-gradient(135deg, rgba(200,180,140,0.3) 0%, rgba(200,180,140,0) 50%, rgba(200,180,140,0.1) 100%); animation: ed-light 12s ease-in-out infinite alternate; }
@keyframes ed-room { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ed-suitcase { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ed-hat { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-3px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes ed-shadow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes ed-light { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }

.scn-garden-of-boccaccio { background: linear-gradient(180deg, #f0d890 0%, #d0b070 40%, #a08040 80%, #806030 100%), radial-gradient(ellipse at 50% 30%, #ffe0a0 0%, transparent 60%); }
.scn-garden-of-boccaccio .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffe8a0 0%, #f0d080 50%, #d0b060 100%); animation: gb-sky 25s ease-in-out infinite alternate; }
.scn-garden-of-boccaccio .trees { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a8a4a 0%, #4a6a2a 100%); border-radius:50% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); animation: gb-trees 18s ease-in-out infinite alternate; }
.scn-garden-of-boccaccio .ground { position:absolute; bottom:10%; left:0; right:0; height:25%; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius:20% 20% 0 0 / 30% 30% 0 0; }
.scn-garden-of-boccaccio .bench { position:absolute; bottom:22%; left:40%; width:100px; height:10px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-garden-of-boccaccio .figure { position:absolute; bottom:22%; left:45%; width:16px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gb-figure 5s ease-in-out infinite; }
.scn-garden-of-boccaccio .flowers { position:absolute; bottom:15%; left:20%; width:60px; height:20px; background: radial-gradient(circle at 30% 50%, #d08050 6px, transparent 10px), radial-gradient(circle at 50% 30%, #b06040 5px, transparent 9px); animation: gb-flowers 35s linear infinite; }
.scn-garden-of-boccaccio .sunbeams { position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,224,160,0.3) 0%, rgba(255,224,160,0) 40%, rgba(255,224,160,0.2) 100%); animation: gb-beams 15s ease-in-out infinite alternate; }
@keyframes gb-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes gb-trees { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes gb-figure { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes gb-flowers { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes gb-beams { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }

.scn-ode-to-rain-variants {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 60%, #0f0f1a 100%),
              radial-gradient(ellipse at 30% 80%, #3a4a5a 0%, transparent 60%);
}
.scn-ode-to-rain-variants .orv-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent 70%, rgba(255,255,255,0.03) 70%);
}
.scn-ode-to-rain-variants .orv-window {
  position: absolute; top: 10%; left: 15%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #2e3b4e 0%, #1c2840 100%);
  border: 4px solid #3a3a4a;
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-ode-to-rain-variants .orv-rain {
  position: absolute; top: 10%; left: 15%; width: 40%; height: 50%;
  background: repeating-linear-gradient(90deg, transparent, transparent 2px, rgba(200,220,255,0.15) 2px, transparent 4px);
  filter: blur(1px);
  animation: orv-rain 1s linear infinite;
}
.scn-ode-to-rain-variants .orv-desk {
  position: absolute; bottom: 10%; left: 10%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
}
.scn-ode-to-rain-variants .orv-candle {
  position: absolute; bottom: 22%; left: 38%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0d8a0 0%, #c8a85a 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 12px 4px rgba(240,216,160,0.3);
}
.scn-ode-to-rain-variants .orv-flame {
  position: absolute; bottom: 35%; left: 39%; width: 10px; height: 16px;
  background: radial-gradient(ellipse at center, #fff0c0 0%, #f0b040 60%, transparent 100%);
  border-radius: 50%;
  animation: orv-flame 2s ease-in-out infinite alternate;
}
.scn-ode-to-rain-variants .orv-book {
  position: absolute; bottom: 12%; left: 30%; width: 40px; height: 10px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 1px 1px 4px rgba(0,0,0,0.4);
}
@keyframes orv-rain {
  0% { background-position: 0 0; }
  100% { background-position: 0 20px; }
}
@keyframes orv-flame {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.2) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(1.1) translateY(-1px); opacity: 0.95; }
}

.scn-daydream-intro {
  background: linear-gradient(180deg, #2b283a 0%, #1e1b2e 60%, #121018 100%),
              radial-gradient(ellipse at 50% 20%, #3a3a5a 0%, transparent 70%);
}
.scn-daydream-intro .ddi-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 100%);
}
.scn-daydream-intro .ddi-roof {
  position: absolute; top: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  clip-path: polygon(10% 0, 90% 0, 70% 100%, 30% 100%);
}
.scn-daydream-intro .ddi-willow {
  position: absolute; top: 10%; right: 10%; width: 30%; height: 70%;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a2a1a 100%);
  border-radius: 40% 60% 20% 80% / 30% 50% 70% 50%;
  filter: blur(2px);
  animation: ddi-sway 6s ease-in-out infinite alternate;
}
.scn-daydream-intro .ddi-fountain {
  position: absolute; bottom: 20%; left: 20%; width: 50px; height: 40px;
  background: radial-gradient(ellipse at center, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 40% 40% 10% 10%;
}
.scn-daydream-intro .ddi-spray {
  position: absolute; bottom: 32%; left: 28%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at top, rgba(200,220,255,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ddi-spray 3s ease-in-out infinite;
}
.scn-daydream-intro .ddi-figure-a {
  position: absolute; bottom: 15%; left: 35%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-daydream-intro .ddi-figure-b {
  position: absolute; bottom: 15%; left: 48%; width: 10px; height: 26px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-daydream-intro .ddi-figure-c {
  position: absolute; bottom: 15%; left: 55%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
@keyframes ddi-sway {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes ddi-spray {
  0% { transform: scaleY(0.8); opacity: 0.5; }
  50% { transform: scaleY(1.2); opacity: 0.8; }
  100% { transform: scaleY(0.9); opacity: 0.6; }
}

.scn-daydream-body {
  background: linear-gradient(180deg, #0f1520 0%, #1a2a3a 40%, #2a3a4a 100%),
              radial-gradient(ellipse at 60% 10%, #3a5a7a 0%, transparent 60%);
}
.scn-daydream-body .ddb-sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0e18 0%, #1a2a3a 80%);
}
.scn-daydream-body .ddb-moon {
  position: absolute; top: 8%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #e0e8f0 0%, #a0b0c0 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(200,220,255,0.3);
  animation: ddb-moon 12s ease-in-out infinite alternate;
}
.scn-daydream-body .ddb-stars {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 30%;
  background: radial-gradient(2px 2px at 20% 30%, #fff, transparent),
              radial-gradient(2px 2px at 40% 20%, #fff, transparent),
              radial-gradient(2px 2px at 60% 10%, #fff, transparent),
              radial-gradient(2px 2px at 10% 60%, #fff, transparent),
              radial-gradient(2px 2px at 70% 40%, #fff, transparent);
  background-size: 100% 100%;
  filter: blur(0.5px);
  animation: ddb-stars 20s linear infinite;
}
.scn-daydream-body .ddb-fountain {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 40px;
  background: radial-gradient(ellipse at center, #3a5a7a 0%, #1a2a4a 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 20px rgba(100,150,200,0.2);
}
.scn-daydream-body .ddb-glowworm {
  position: absolute; bottom: 20%; left: 60%; width: 6px; height: 6px;
  background: radial-gradient(circle, #c0e0a0 0%, #90b070 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px rgba(144,176,112,0.5);
  animation: ddb-glow 3s ease-in-out infinite alternate;
}
.scn-daydream-body .ddb-shadow {
  position: absolute; bottom: 17%; left: 61%; width: 12px; height: 4px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: ddb-glowshadow 3s ease-in-out infinite alternate;
}
@keyframes ddb-moon {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(5px) scale(1.02); }
  100% { transform: translateX(-3px) scale(0.98); }
}
@keyframes ddb-stars {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ddb-glow {
  0% { transform: scale(0.8); opacity: 0.6; box-shadow: 0 0 8px 3px rgba(144,176,112,0.3); }
  50% { transform: scale(1.2); opacity: 1; box-shadow: 0 0 24px 8px rgba(144,176,112,0.6); }
  100% { transform: scale(0.9); opacity: 0.8; box-shadow: 0 0 12px 4px rgba(144,176,112,0.4); }
}
@keyframes ddb-glowshadow {
  0% { transform: scaleX(1); opacity: 0.2; }
  50% { transform: scaleX(1.3); opacity: 0.4; }
  100% { transform: scaleX(0.9); opacity: 0.3; }
}

.scn-daydream-variants {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 70%, #0f0f1a 100%),
              radial-gradient(ellipse at 70% 90%, #3a3a5a 0%, transparent 60%);
}
.scn-daydream-variants .ddv-table {
  position: absolute; bottom: 10%; left: 10%; width: 70%; height: 14%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 6px;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.5);
}
.scn-daydream-variants .ddv-paper {
  position: absolute; bottom: 20%; left: 25%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #d8c8a8 0%, #b8a888 100%);
  border-radius: 2px;
  transform: rotate(-3deg);
  box-shadow: 1px 1px 4px rgba(0,0,0,0.3);
}
.scn-daydream-variants .ddv-quill {
  position: absolute; bottom: 30%; left: 34%; width: 3px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8b090 100%);
  border-radius: 2px 2px 50% 50%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: ddv-quill 4s ease-in-out infinite alternate;
}
.scn-daydream-variants .ddv-inkwell {
  position: absolute; bottom: 24%; left: 44%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
}
.scn-daydream-variants .ddv-candle {
  position: absolute; bottom: 24%; left: 15%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #f0d8a0 0%, #c8a85a 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 8px 2px rgba(240,216,160,0.3);
}
.scn-daydream-variants .ddv-flame {
  position: absolute; bottom: 34%; left: 16%; width: 10px; height: 14px;
  background: radial-gradient(ellipse at center, #fff0c0 0%, #f0b040 60%, transparent 100%);
  border-radius: 50%;
  animation: ddv-flame 2.5s ease-in-out infinite alternate;
}
@keyframes ddv-quill {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(20deg) translateY(-2px); }
  100% { transform: rotate(12deg) translateY(0); }
}
@keyframes ddv-flame {
  0% { transform: scaleY(1) translateY(0); opacity: 0.85; }
  50% { transform: scaleY(1.3) translateY(-3px); opacity: 1; }
  100% { transform: scaleY(1.1) translateY(-1px); opacity: 0.9; }
}

.scn-ox-breaches-hedges {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #9acd32 100%),
    radial-gradient(ellipse at 80% 20%, #fff5cc 0%, transparent 70%);
}
.scn-ox-breaches-hedges .sky-sun { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0e0ff 0%, #fff0b3 100%); animation: ox-sky 8s ease-in-out infinite alternate; }
.scn-ox-breaches-hedges .hedge-left { position:absolute; bottom:15%; left:0; width:30%; height:45%; background: linear-gradient(135deg, #3d5a1f 0%, #2d4a0f 100%); border-radius: 0 60% 0 0 / 0 80% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,0.4); animation: ox-hedge-sway 3s ease-in-out infinite; }
.scn-ox-breaches-hedges .hedge-right { position:absolute; bottom:15%; right:0; width:30%; height:45%; background: linear-gradient(225deg, #3d5a1f 0%, #2d4a0f 100%); border-radius: 60% 0 0 0 / 80% 0 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,0.4); animation: ox-hedge-sway 3s ease-in-out infinite reverse; }
.scn-ox-breaches-hedges .ox-body { position:absolute; bottom:22%; left:35%; width:35%; height:30%; background: linear-gradient(180deg, #8b5a2b 0%, #5a3a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ox-charge 4s ease-in-out infinite; }
.scn-ox-breaches-hedges .ox-head { position:absolute; bottom:42%; left:52%; width:18%; height:15%; background: linear-gradient(180deg, #8b5a2b 0%, #5a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: ox-head-bob 4s ease-in-out infinite; }
.scn-ox-breaches-hedges .figure-1 { position:absolute; bottom:10%; left:10%; width:8%; height:20%; background: linear-gradient(180deg, #5a2a1a 0%, #3a1a0a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; animation: ox-flee-1 6s ease-in-out infinite; }
.scn-ox-breaches-hedges .figure-2 { position:absolute; bottom:12%; right:15%; width:7%; height:18%; background: linear-gradient(180deg, #5a2a1a 0%, #3a1a0a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; animation: ox-flee-2 5s ease-in-out infinite; }
.scn-ox-breaches-hedges .figure-3 { position:absolute; bottom:8%; left:45%; width:6%; height:16%; background: linear-gradient(180deg, #5a2a1a 0%, #3a1a0a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; animation: ox-flee-3 7s ease-in-out infinite; }
.scn-ox-breaches-hedges .dust { position:absolute; bottom:12%; left:30%; width:40%; height:8%; background: radial-gradient(ellipse, rgba(210,180,140,0.6) 0%, transparent 70%); filter: blur(6px); animation: ox-dust 3s ease-in-out infinite; }
@keyframes ox-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ox-hedge-sway { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05) skewX(-2deg); } 100% { transform: scaleX(1); } }
@keyframes ox-charge { 0% { transform: translateX(-10px) scaleX(0.95); } 25% { transform: translateX(15px) scaleX(1.05); } 50% { transform: translateX(30px) scaleX(0.98); } 75% { transform: translateX(15px) scaleX(1.02); } 100% { transform: translateX(-10px) scaleX(0.95); } }
@keyframes ox-head-bob { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.05); } 100% { transform: rotate(-10deg) scale(1); } }
@keyframes ox-flee-1 { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(20px) rotate(-5deg); } 60% { transform: translateX(10px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ox-flee-2 { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-15px) rotate(5deg); } 50% { transform: translateX(-5px) rotate(-3deg); } 75% { transform: translateX(-20px) rotate(4deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ox-flee-3 { 0% { transform: translateX(0) translateY(0); } 40% { transform: translateX(12px) translateY(-3px); } 80% { transform: translateX(6px) translateY(2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes ox-dust { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.2); } 100% { opacity:0.3; transform: scale(1); } }

.scn-sage-returns-reason {
  background: 
    linear-gradient(180deg, #f5deb3 0%, #deb887 40%, #8b6914 100%),
    radial-gradient(circle at 30% 50%, #fff8dc 0%, transparent 60%);
}
.scn-sage-returns-reason .wall-bg { position:absolute; inset:0; background: linear-gradient(135deg, #d2b48c 0%, #a0522d 100%); }
.scn-sage-returns-reason .window-lite { position:absolute; top:8%; left:10%; width:25%; height:30%; background: linear-gradient(135deg, #fff5ee 0%, #ffefd5 100%); border-radius: 4px; box-shadow: 0 0 20px 8px rgba(255,239,213,0.5); animation: sage-window 6s ease-in-out infinite alternate; }
.scn-sage-returns-reason .floor-plank { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #8b6914 0%, #6b4f10 100%); border-top: 3px solid #5a3a0a; }
.scn-sage-returns-reason .sage-figure { position:absolute; bottom:18%; left:40%; width:16%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: sage-standing 4s ease-in-out infinite; }
.scn-sage-returns-reason .sage-arm { position:absolute; bottom:42%; left:52%; width:6%; height:18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sage-arm-raise 5s ease-in-out infinite; }
.scn-sage-returns-reason .neighbor-1 { position:absolute; bottom:18%; left:20%; width:12%; height:35%; background: linear-gradient(180deg, #6b4f10 0%, #3a2a0a 100%); border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%; animation: sage-shift 3s ease-in-out infinite; }
.scn-sage-returns-reason .neighbor-2 { position:absolute; bottom:18%; right:18%; width:12%; height:35%; background: linear-gradient(180deg, #6b4f10 0%, #3a2a0a 100%); border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%; animation: sage-shift 3.5s ease-in-out infinite reverse; }
.scn-sage-returns-reason .table { position:absolute; bottom:18%; left:35%; width:30%; height:10%; background: linear-gradient(180deg, #8b6914 0%, #6b4f10 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
@keyframes sage-window { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.03); } 100% { opacity:0.8; transform: scale(1); } }
@keyframes sage-standing { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sage-arm-raise { 0% { transform: rotate(0) scaleY(1); } 30% { transform: rotate(-20deg) scaleY(1.1); } 60% { transform: rotate(10deg) scaleY(0.95); } 100% { transform: rotate(0) scaleY(1); } }
@keyframes sage-shift { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }

.scn-misdirected-blame {
  background: 
    linear-gradient(180deg, #4a3a2a 0%, #5a4a3a 30%, #3a2a1a 100%),
    radial-gradient(ellipse at 70% 40%, #f5deb3 0%, transparent 60%);
}
.scn-misdirected-blame .room-back { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-misdirected-blame .shadow-slice { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.2) 100%); animation: mis-shadow 4s ease-in-out infinite alternate; }
.scn-misdirected-blame .accuser { position:absolute; bottom:20%; left:15%; width:14%; height:38%; background: linear-gradient(180deg, #5a2a1a 0%, #3a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: mis-accuser 3s ease-in-out infinite; }
.scn-misdirected-blame .accused { position:absolute; bottom:22%; right:20%; width:12%; height:34%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: mis-accused 3.5s ease-in-out infinite reverse; }
.scn-misdirected-blame .finger { position:absolute; bottom:44%; left:28%; width:4%; height:16%; background: #a0795a; border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(20deg); animation: mis-finger 2s ease-in-out infinite; }
.scn-misdirected-blame .by-stander { position:absolute; bottom:18%; left:40%; width:10%; height:30%; background: linear-gradient(180deg, #6b4f10 0%, #3a2a0a 100%); border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%; animation: mis-bystander 5s ease-in-out infinite; }
.scn-misdirected-blame .lamp { position:absolute; top:10%; right:10%; width:12%; height:15%; background: radial-gradient(circle at 50% 30%, #fff5cc 0%, #f5deb3 40%, transparent 60%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(245,222,179,0.4); animation: mis-lamp 6s ease-in-out infinite; }
@keyframes mis-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes mis-accuser { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(8px) rotate(-3deg); } 50% { transform: translateX(4px) rotate(2deg); } 75% { transform: translateX(10px) rotate(-4deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes mis-accused { 0% { transform: translateX(0) scaleX(1); } 30% { transform: translateX(-6px) scaleX(0.95); } 60% { transform: translateX(-3px) scaleX(1.02); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes mis-finger { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(30deg) translateY(-4px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes mis-bystander { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mis-lamp { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(1); } }

.scn-sheridans-recanted-news {
  background: 
    linear-gradient(180deg, #fff8dc 0%, #f5deb3 50%, #deb887 100%),
    radial-gradient(circle at 50% 30%, #fff5ee 0%, transparent 70%);
}
.scn-sheridans-recanted-news .parlor-wall { position:absolute; inset:0; background: linear-gradient(135deg, #f5deb3 0%, #d2b48c 100%); }
.scn-sheridans-recanted-news .newspaper-sheet { position:absolute; top:35%; left:30%; width:40%; height:30%; background: linear-gradient(135deg, #fff5ee 0%, #f0e0c0 100%); border-radius: 4px; box-shadow: 2px 2px 10px rgba(0,0,0,0.2); transform: rotate(-2deg); animation: sher-paper 8s ease-in-out infinite alternate; }
.scn-sheridans-recanted-news .reader-figure { position:absolute; bottom:10%; left:35%; width:18%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: sher-reader 6s ease-in-out infinite; }
.scn-sheridans-recanted-news .reader-hand { position:absolute; bottom:40%; left:50%; width:5%; height:14%; background: linear-gradient(180deg, #6b4f10 0%, #3a2a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(15deg); animation: sher-hand 4s ease-in-out infinite; }
.scn-sheridans-recanted-news .chair-back { position:absolute; bottom:12%; left:30%; width:30%; height:55%; background: linear-gradient(180deg, #8b6914 0%, #6b4f10 100%); border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%; transform: skewX(-5deg); }
.scn-sheridans-recanted-news .gaslight { position:absolute; top:5%; left:50%; width:8%; height:12%; background: radial-gradient(circle at 50% 20%, #fff5cc 0%, #f5deb3 40%, transparent 60%); border-radius: 50%; box-shadow: 0 0 25px 15px rgba(245,222,179,0.5); animation: sher-gas 5s ease-in-out infinite; }
.scn-sheridans-recanted-news .startle-burst { position:absolute; top:30%; left:55%; width:10%; height:10%; background: radial-gradient(circle, #fff5cc 0%, transparent 70%); filter: blur(4px); animation: sher-burst 2s ease-in-out infinite; }
@keyframes sher-paper { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(0deg) scale(1.02); } 100% { transform: rotate(-2deg) scale(1); } }
@keyframes sher-reader { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-3px) rotate(2deg); } 60% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sher-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-5px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes sher-gas { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes sher-burst { 0% { opacity:0; transform: scale(0.5); } 50% { opacity:0.8; transform: scale(1.5); } 100% { opacity:0; transform: scale(0.5); } }

/* scroll-digressive-tortoise */

.scn-scroll-digressive-tortoise {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 40%, #b89a72 100%), radial-gradient(circle at 30% 20%, #fff8e0 0%, transparent 60%);
}
.scn-scroll-digressive-tortoise .desktop {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #8b6f4e 0%, #6b4f2e 100%);
  border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,0.2);
}
.scn-scroll-digressive-tortoise .scroll-unrolled {
  position: absolute; bottom: 18%; left: 20%; width: 55%; height: 14%;
  background: linear-gradient(180deg, #fef8e0 0%, #f0e0b0 50%, #d4c090 100%);
  border-radius: 2px; transform: skewX(-3deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  animation: dt-scroll 30s ease-in-out infinite alternate;
}
.scn-scroll-digressive-tortoise .tortoise-shell {
  position: absolute; bottom: 20%; left: 15%; width: 60px; height: 40px;
  background: radial-gradient(circle at 40% 30%, #7a9a4a, #3a5a2a 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 3px 8px rgba(0,0,0,0.3);
  animation: dt-shell 8s ease-in-out infinite;
}
.scn-scroll-digressive-tortoise .tortoise-head {
  position: absolute; bottom: 28%; left: 10%; width: 20px; height: 16px;
  background: linear-gradient(180deg, #8a9a5a, #5a7a3a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dt-head 4s ease-in-out infinite;
}
.scn-scroll-digressive-tortoise .quill {
  position: absolute; bottom: 25%; left: 55%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #e0d0b0, #b0a080);
  transform: rotate(30deg);
  transform-origin: bottom center;
  animation: dt-quill 5s ease-in-out infinite alternate;
}
.scn-scroll-digressive-tortoise .inkpot {
  position: absolute; bottom: 18%; left: 72%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #3a3a3a, #1a1a1a);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-scroll-digressive-tortoise .candle {
  position: absolute; bottom: 22%; left: 60%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #f0e0a0, #c0b070);
  border-radius: 2px;
  animation: dt-candle-glow 3s ease-in-out infinite alternate;
}
@keyframes dt-scroll { 0% { transform: skewX(-3deg) translateX(0); } 50% { transform: skewX(0deg) translateX(5px); } 100% { transform: skewX(-3deg) translateX(0); } }
@keyframes dt-shell { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes dt-head { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes dt-quill { 0% { transform: rotate(30deg) scaleY(1); } 50% { transform: rotate(35deg) scaleY(0.9); } 100% { transform: rotate(30deg) scaleY(1); } }
@keyframes dt-candle-glow { 0% { box-shadow: 0 0 6px 2px #f0d080; opacity: 0.8; } 50% { box-shadow: 0 0 12px 4px #f0d080; opacity: 1; } 100% { box-shadow: 0 0 6px 2px #f0d080; opacity: 0.8; } }

/* initiations-lords-orations */

.scn-initiations-lords-orations {
  background: linear-gradient(180deg, #fdf4e0 0%, #ecd8b8 40%, #c8a880 100%), radial-gradient(circle at 50% 30%, #fff8f0 0%, transparent 60%);
}
.scn-initiations-lords-orations .room-bg {
  position: absolute; inset: 0; opacity: 0.3;
  background: linear-gradient(180deg, transparent 0%, rgba(180,140,100,0.1) 100%);
  animation: in-room 20s ease-in-out infinite alternate;
}
.scn-initiations-lords-orations .podium {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b89878, #8a6a4a);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.1);
}
.scn-initiations-lords-orations .lord-figure {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a4a, #1a1a2a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: in-lord 6s ease-in-out infinite;
}
.scn-initiations-lords-orations .audience-left {
  position: absolute; bottom: 18%; left: 8%; width: 25%; height: 50px;
  background: linear-gradient(180deg, #3a2a2a, #1a1a1a);
  border-radius: 10% 10% 0 0;
  opacity: 0.7;
  animation: in-audience 12s ease-in-out infinite alternate;
}
.scn-initiations-lords-orations .audience-right {
  position: absolute; bottom: 18%; right: 8%; width: 25%; height: 50px;
  background: linear-gradient(180deg, #3a2a2a, #1a1a1a);
  border-radius: 10% 10% 0 0;
  opacity: 0.7;
  animation: in-audience 12s ease-in-out infinite alternate-reverse;
}
.scn-initiations-lords-orations .column-left {
  position: absolute; bottom: 20%; left: 5%; width: 10px; height: 80px;
  background: linear-gradient(180deg, #e0d0b0, #c0a880);
  border-radius: 2px;
}
.scn-initiations-lords-orations .column-right {
  position: absolute; bottom: 20%; right: 5%; width: 10px; height: 80px;
  background: linear-gradient(180deg, #e0d0b0, #c0a880);
  border-radius: 2px;
}
.scn-initiations-lords-orations .light-beam {
  position: absolute; top: 10%; left: 45%; width: 10%; height: 50%;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%);
  transform: rotate(-5deg);
  filter: blur(6px);
  animation: in-beam 4s ease-in-out infinite alternate;
}
@keyframes in-room { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.2; } }
@keyframes in-lord { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-2deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes in-audience { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes in-beam { 0% { opacity: 0.5; transform: rotate(-5deg) scaleX(1); } 50% { opacity: 0.8; transform: rotate(-3deg) scaleX(1.2); } 100% { opacity: 0.5; transform: rotate(-5deg) scaleX(1); } }

/* patience-time-lungs */

.scn-patience-time-lungs {
  background: linear-gradient(180deg, #f5ead0 0%, #e0c8a0 40%, #c0a070 100%), radial-gradient(circle at 70% 40%, #fff8e0 0%, transparent 60%);
}
.scn-patience-time-lungs .stage {
  position: absolute; bottom: 10%; left: 8%; right: 8%; height: 30%;
  background: linear-gradient(180deg, #b8a080, #8a6848);
  border-radius: 20% 20% 0 0;
}
.scn-patience-time-lungs .clock-face {
  position: absolute; bottom: 35%; left: 20%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff8e0 0%, #e8d8b0 60%, #c0a880 100%);
  border-radius: 50%; border: 4px solid #8a6a4a;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
.scn-patience-time-lungs .clock-pendulum {
  position: absolute; bottom: 20%; left: 25%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #8a6a4a, #5a4a2a);
  transform-origin: top center;
  animation: pt-pendulum 2s ease-in-out infinite;
}
.scn-patience-time-lungs .patience-figure {
  position: absolute; bottom: 25%; left: 55%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #4a6a5a, #2a4a3a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pt-patience 10s ease-in-out infinite alternate;
}
.scn-patience-time-lungs .child-figure {
  position: absolute; bottom: 20%; left: 70%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #d4b896, #b89a72);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pt-child 5s ease-in-out infinite;
}
.scn-patience-time-lungs .lungs-shape {
  position: absolute; bottom: 40%; left: 45%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #e08060, #a04020);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pt-lungs 3s ease-in-out infinite alternate;
}
.scn-patience-time-lungs .time-wings {
  position: absolute; bottom: 45%; left: 50%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #c0a880, #a08060);
  border-radius: 50%;
  filter: blur(4px);
  animation: pt-wings 8s ease-in-out infinite alternate;
}
@keyframes pt-pendulum { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }
@keyframes pt-patience { 0% { transform: translateY(0); } 50% { transform: translateY(-4px) scale(1.02); } 100% { transform: translateY(0); } }
@keyframes pt-child { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes pt-lungs { 0% { transform: scaleX(1) scaleY(1); opacity: 0.6; } 50% { transform: scaleX(1.2) scaleY(1.1); opacity: 0.9; } 100% { transform: scaleX(1) scaleY(1); opacity: 0.6; } }
@keyframes pt-wings { 0% { transform: scaleX(0.8) rotate(-5deg); } 50% { transform: scaleX(1.2) rotate(5deg); } 100% { transform: scaleX(0.8) rotate(-5deg); } }

/* blunder-boots-star */

.scn-blunder-boots-star {
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8a8 40%, #b8a080 100%), radial-gradient(circle at 20% 40%, #fff8e0 0%, transparent 60%);
}
.scn-blunder-boots-star .study-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8d8c0, #d0c0a0);
}
.scn-blunder-boots-star .window {
  position: absolute; top: 10%; left: 30%; width: 100px; height: 120px;
  background: linear-gradient(180deg, #1a2a3a, #2a4a5a 40%, #4a6a7a 100%);
  border: 6px solid #8a6a4a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.1);
}
.scn-blunder-boots-star .star {
  position: absolute; top: 22%; left: 35%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffe080, #ffd060);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px rgba(255,224,128,0.6);
  animation: bb-star 4s ease-in-out infinite alternate;
}
.scn-blunder-boots-star .lord-figure {
  position: absolute; bottom: 15%; left: 40%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a3a5a, #1a1a3a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bb-lord 8s ease-in-out infinite;
}
.scn-blunder-boots-star .boot {
  position: absolute; bottom: 12%; left: 45%; width: 20px; height: 16px;
  background: linear-gradient(180deg, #5a3a2a, #3a2a1a);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-15deg);
  animation: bb-boot 6s ease-in-out infinite alternate;
}
.scn-blunder-boots-star .telescope {
  position: absolute; bottom: 20%; left: 50%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #b89878, #8a6a4a);
  transform: rotate(25deg);
  transform-origin: bottom center;
  animation: bb-telescope 10s ease-in-out infinite alternate;
}
.scn-blunder-boots-star .frock-coat {
  position: absolute; bottom: 5%; left: 42%; width: 28px; height: 20px;
  background: linear-gradient(180deg, #b8a080, #9a7a5a);
  border-radius: 10% 10% 0 0;
  animation: bb-coat 7s ease-in-out infinite alternate;
}
@keyframes bb-star { 0% { transform: scale(0.8) rotate(0deg); opacity: 0.7; } 50% { transform: scale(1.2) rotate(15deg); opacity: 1; } 100% { transform: scale(0.8) rotate(0deg); opacity: 0.7; } }
@keyframes bb-lord { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-2deg); } }
@keyframes bb-boot { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes bb-telescope { 0% { transform: rotate(25deg) scaleY(1); } 50% { transform: rotate(30deg) scaleY(0.9); } 100% { transform: rotate(25deg) scaleY(1); } }
@keyframes bb-coat { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } 100% { transform: scaleX(1); } }

.scn-visit-of-gods-immortals {
  background: linear-gradient(180deg, #f9e7c0 0%, #e6c88a 40%, #c4a265 100%), radial-gradient(ellipse at 50% 30%, #fff2d0 0%, transparent 60%);
}
.scn-visit-of-gods-immortals .hall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d4c4a0 0%, #b09874 100%); box-shadow: inset 0 0 120px rgba(0,0,0,0.2);
}
.scn-visit-of-gods-immortals .pillar {
  position: absolute; bottom: 0; width: 24px; height: 80%; background: linear-gradient(180deg, #c8b898 0%, #a08868 100%); border-radius: 4px 4px 0 0; box-shadow: 0 0 20px rgba(0,0,0,0.3);
}
.scn-visit-of-gods-immortals .pillar-l { left: 12%; }
.scn-visit-of-gods-immortals .pillar-r { right: 12%; }
.scn-visit-of-gods-immortals .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #8a7560 0%, #5a4a38 100%); border-radius: 0 0 0 0;
}
.scn-visit-of-gods-immortals .throne {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%); width: 60px; height: 80px; background: linear-gradient(180deg, #c8a040 0%, #8a6a20 100%); border-radius: 8px 8px 12px 12px; box-shadow: 0 8px 16px rgba(0,0,0,0.5); animation: vo-float 6s ease-in-out infinite;
}
.scn-visit-of-gods-immortals .figure {
  position: absolute; bottom: 22%; width: 30px; height: 60px; background: linear-gradient(180deg, #e8d4b0 0%, #c8a880 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: vo-enter 8s ease-in-out infinite alternate;
}
.scn-visit-of-gods-immortals .figure-a { left: 30%; }
.scn-visit-of-gods-immortals .figure-b { right: 30%; animation-delay: -4s; }
.scn-visit-of-gods-immortals .radiance {
  position: absolute; top: 0; left: 50%; width: 80px; height: 100px; transform: translateX(-50%); background: radial-gradient(ellipse, #fff8d0 0%, #f0d080 50%, transparent 70%); opacity: 0.3; animation: vo-glow 4s ease-in-out infinite alternate;
}
@keyframes vo-float {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-8px) scale(1.02); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes vo-enter {
  0% { transform: translateY(20px) scale(0.9); opacity: 0.6; }
  50% { transform: translateY(-4px) scale(1); opacity: 1; }
  100% { transform: translateY(0) scale(0.95); opacity: 0.8; }
}
@keyframes vo-glow {
  0% { opacity: 0.2; transform: translateX(-50%) scale(0.9); }
  50% { opacity: 0.5; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.3; transform: translateX(-50%) scale(1); }
}

.scn-nectar-immortal-styx {
  background: linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 50%, #2a0a00 100%), radial-gradient(ellipse at 60% 40%, #8a3a1a 0%, transparent 70%);
}
.scn-nectar-immortal-styx .fire-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, #c86a2a 0%, transparent 50%); opacity: 0.6; animation: ni-fire 3s ease-in-out infinite alternate;
}
.scn-nectar-immortal-styx .goblet {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); width: 40px; height: 50px; background: linear-gradient(180deg, #b09878 0%, #7a6040 100%); border-radius: 10px 10px 4px 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.6); animation: ni-goblet 5s ease-in-out infinite;
}
.scn-nectar-immortal-styx .nectar-stream {
  position: absolute; bottom: 60%; left: 55%; width: 8px; height: 60px; background: linear-gradient(180deg, #f0c040 0%, #d0a020 80%, transparent 100%); border-radius: 4px; transform-origin: bottom; animation: ni-pour 4s ease-in-out infinite alternate;
}
.scn-nectar-immortal-styx .hand {
  position: absolute; bottom: 50%; left: 42%; width: 24px; height: 36px; background: linear-gradient(180deg, #e8c8a8 0%, #c09870 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-20deg); animation: ni-hand 4s ease-in-out infinite alternate;
}
.scn-nectar-immortal-styx .flame {
  position: absolute; bottom: 10%; left: 30%; width: 20px; height: 30px; background: linear-gradient(180deg, #f0a020 0%, #c06010 60%, transparent 100%); border-radius: 50% 50% 20% 20%; filter: blur(3px); animation: ni-flame 0.8s ease-in-out infinite alternate;
}
.scn-nectar-immortal-styx .sparkle {
  position: absolute; width: 6px; height: 6px; background: radial-gradient(circle, #fae090 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 8px #fae090; animation: ni-spark 6s linear infinite;
}
.scn-nectar-immortal-styx .sparkle-1 { top: 20%; left: 40%; }
.scn-nectar-immortal-styx .sparkle-2 { top: 35%; right: 30%; animation-delay: -3s; }
@keyframes ni-fire {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes ni-goblet {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-2px); }
}
@keyframes ni-pour {
  0% { height: 60px; opacity: 0.8; }
  50% { height: 45px; opacity: 1; }
  100% { height: 60px; opacity: 0.8; }
}
@keyframes ni-hand {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-4px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes ni-flame {
  0% { transform: scaleY(0.8); opacity: 0.7; }
  100% { transform: scaleY(1.4); opacity: 1; }
}
@keyframes ni-spark {
  0% { transform: translate(0, 0) scale(0.8); opacity: 0; }
  20% { opacity: 1; }
  50% { transform: translate(20px, -30px) scale(1.2); opacity: 0.6; }
  100% { transform: translate(40px, -60px) scale(0.6); opacity: 0; }
}

.scn-goethe-mignons-song-land {
  background: linear-gradient(180deg, #b0d4f0 0%, #e8f8ff 40%, #f0f0c0 100%), radial-gradient(ellipse at 50% 20%, #f8fcff 0%, transparent 70%);
}
.scn-goethe-mignons-song-land .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #80b4e0 0%, #b0d8f0 50%, #d0e8f8 100%); animation: ml-sky 15s ease-in-out infinite alternate;
}
.scn-goethe-mignons-song-land .sun {
  position: absolute; top: 8%; left: 55%; width: 60px; height: 60px; background: radial-gradient(circle, #ffe880 0%, #f0d060 60%, transparent 80%); box-shadow: 0 0 60px 20px rgba(255,232,128,0.4); animation: ml-sun 10s ease-in-out infinite alternate;
}
.scn-goethe-mignons-song-land .mountains {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #8a9a7a 0%, #5a6a4a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); animation: ml-mountains 20s ease-in-out infinite alternate;
}
.scn-goethe-mignons-song-land .tree {
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 100px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; transform-origin: bottom center; animation: ml-tree 8s ease-in-out infinite;
}
.scn-goethe-mignons-song-land .tree::before {
  content: ''; position: absolute; top: -60px; left: -30px; width: 100px; height: 80px; background: radial-gradient(ellipse, #3a8a3a 0%, #2a6a2a 70%, transparent 100%); border-radius: 50%; filter: blur(2px);
}
.scn-goethe-mignons-song-land .fruit {
  position: absolute; bottom: 35%; left: 38%; width: 14px; height: 14px; background: radial-gradient(circle, #f0c040 0%, #d08020 100%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(240,192,64,0.5); animation: ml-fruit 4s ease-in-out infinite alternate;
}
.scn-goethe-mignons-song-land .grass {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #5a8a3a 0%, #3a5a2a 100%); border-radius: 20% 60% 0 0 / 30% 70% 0 0; animation: ml-grass 10s ease-in-out infinite alternate;
}
.scn-goethe-mignons-song-land .cloud {
  position: absolute; top: 12%; right: 10%; width: 80px; height: 20px; background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.2) 100%); border-radius: 50%; filter: blur(6px); animation: ml-cloud 40s linear infinite;
}
@keyframes ml-sky {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 30%; }
}
@keyframes ml-sun {
  0% { transform: scale(0.9); box-shadow: 0 0 40px 15px rgba(255,232,128,0.3); }
  50% { transform: scale(1.1); box-shadow: 0 0 80px 30px rgba(255,232,128,0.5); }
  100% { transform: scale(0.95); box-shadow: 0 0 50px 20px rgba(255,232,128,0.4); }
}
@keyframes ml-mountains {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes ml-tree {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
}
@keyframes ml-fruit {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.2); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes ml-grass {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 0%; }
}
@keyframes ml-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(-120vw); }
}

.scn-water-ballad-boatman {
  background: linear-gradient(180deg, #80b8d0 0%, #b0dce8 30%, #c8e8f0 60%, #a0c8d8 100%), radial-gradient(ellipse at 50% 80%, #70a0b8 0%, transparent 60%);
}
.scn-water-ballad-boatman .water {
  position: absolute; top: 55%; left: 0; right: 0; bottom: 0; background: linear-gradient(180deg, #70a0b8 0%, #507888 50%, #385868 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: wb-water 15s ease-in-out infinite alternate;
}
.scn-water-ballad-boatman .boat {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%); width: 80px; height: 30px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: wb-boat 3s ease-in-out infinite;
}
.scn-water-ballad-boatman .oars {
  position: absolute; bottom: 35%; left: 40%; width: 60px; height: 6px; background: linear-gradient(90deg, #7a5a3a 0%, #5a3a1a 80%, transparent 100%); border-radius: 3px; transform-origin: right center; animation: wb-row 2s ease-in-out infinite alternate;
}
.scn-water-ballad-boatman .figure {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%); width: 24px; height: 44px; background: linear-gradient(180deg, #d0b898 0%, #b09878 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wb-figure 3s ease-in-out infinite;
}
.scn-water-ballad-boatman .ripple {
  position: absolute; bottom: 20%; width: 80px; height: 8px; background: radial-gradient(ellipse, rgba(255,255,255,0.3) 0%, transparent 70%); border-radius: 50%; animation: wb-ripple 5s linear infinite;
}
.scn-water-ballad-boatman .ripple-1 { left: 20%; }
.scn-water-ballad-boatman .ripple-2 { right: 20%; animation-delay: -2.5s; }
.scn-water-ballad-boatman .reeds {
  position: absolute; bottom: 25%; left: 8%; width: 6px; height: 50px; background: linear-gradient(180deg, #4a6a2a 0%, #2a4a1a 100%); border-radius: 3px 3px 0 0; animation: wb-reeds 4s ease-in-out infinite alternate;
}
.scn-water-ballad-boatman .reeds::before {
  content: ''; position: absolute; top: -10px; left: -4px; width: 14px; height: 14px; background: radial-gradient(circle, #6a8a3a 0%, #4a6a2a 100%); border-radius: 50%;
}
@keyframes wb-water {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 5%; }
}
@keyframes wb-boat {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-4px); }
}
@keyframes wb-row {
  0% { transform: rotate(-30deg); }
  100% { transform: rotate(30deg); }
}
@keyframes wb-figure {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
}
@keyframes wb-ripple {
  0% { transform: scaleX(0.5); opacity: 0.8; }
  50% { transform: scaleX(1.5); opacity: 0.3; }
  100% { transform: scaleX(2); opacity: 0; }
}
@keyframes wb-reeds {
  0% { transform: rotate(-5deg); }
  100% { transform: rotate(5deg); }
}

/* knights-tomb-variant - overcast calm */

.scn-knights-tomb-variant {
  background:
    linear-gradient(180deg, #5a5a5a 0%, #3f3f3f 40%, #2e2e2e 100%),
    radial-gradient(ellipse at 50% 30%, #6a6a6a 0%, transparent 70%);
}
.scn-knights-tomb-variant .gloom {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(0,0,0,0) 0%, rgba(0,0,0,0.3) 70%);
  animation: ktv-gloom 20s ease-in-out infinite alternate;
}
.scn-knights-tomb-variant .tomb {
  position: absolute; bottom: 20%; left: 50%; width: 160px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6b6b6b 0%, #4a4a4a 100%);
  border-radius: 10px; box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-knights-tomb-variant .effigy {
  position: absolute; bottom: 28%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a7a7a 0%, #555 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.3);
  animation: ktv-effigy 8s ease-in-out infinite;
}
.scn-knights-tomb-variant .sword {
  position: absolute; bottom: 38%; left: 36%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #8c8c8c 0%, #5e5e5e 100%);
  border-radius: 2px; transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ktv-sword 6s ease-in-out infinite;
}
.scn-knights-tomb-variant .dust {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, rgba(200,200,200,0.5) 0%, transparent 100%);
  border-radius: 50%;
}
.scn-knights-tomb-variant .dust-a { top: 20%; left: 30%; animation: ktv-drift 30s linear infinite; }
.scn-knights-tomb-variant .dust-b { top: 40%; left: 60%; animation: ktv-drift 40s linear infinite reverse; }
.scn-knights-tomb-variant .dust-c { top: 10%; left: 50%; animation: ktv-drift 25s linear infinite; animation-delay: -10s; }
@keyframes ktv-gloom { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes ktv-effigy { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes ktv-sword { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-15deg) } }
@keyframes ktv-drift { 0% { transform: translate(0,0) scale(1); opacity:0.3 } 50% { transform: translate(20px, -10px) scale(1.5); opacity:0.8 } 100% { transform: translate(40px, -20px) scale(1); opacity:0.3 } }

/* knights-tomb-second-variant - overcast calm with tree */

.scn-knights-tomb-second-variant {
  background:
    linear-gradient(180deg, #5e6b5e 0%, #3a4a3a 50%, #1a2a1a 100%),
    radial-gradient(ellipse at 50% 80%, #4a5a4a 0%, transparent 60%);
}
.scn-knights-tomb-second-variant .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%);
  border-radius: 30% 20% 0 0 / 50% 30% 0 0;
}
.scn-knights-tomb-second-variant .tombstone {
  position: absolute; bottom: 25%; left: 30%; width: 70px; height: 80px;
  background: linear-gradient(180deg, #6e6e6e 0%, #4b4b4b 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: kts-tombstone 12s ease-in-out infinite;
}
.scn-knights-tomb-second-variant .trunk {
  position: absolute; bottom: 20%; left: 60%; width: 20px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
}
.scn-knights-tomb-second-variant .branches {
  position: absolute; bottom: 70%; left: 55%; width: 80px; height: 50px;
  background: radial-gradient(ellipse at 50% 30%, #2a4a2a 0%, transparent 70%);
  border-radius: 50%;
  animation: kts-branch 18s ease-in-out infinite alternate;
}
.scn-knights-tomb-second-variant .leaf {
  position: absolute; width: 12px; height: 8px;
  background: radial-gradient(circle, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 50% 0 50% 0;
  animation: kts-fall 6s ease-in infinite;
}
.scn-knights-tomb-second-variant .leaf-a { top: 20%; left: 40%; animation-duration: 5s; }
.scn-knights-tomb-second-variant .leaf-b { top: 30%; left: 60%; animation-duration: 7s; animation-delay: -2s; }
.scn-knights-tomb-second-variant .leaf-c { top: 15%; left: 50%; animation-duration: 6s; animation-delay: -4s; }
@keyframes kts-tombstone { 0% { transform: scale(1) } 50% { transform: scale(0.98) rotate(0.5deg) } 100% { transform: scale(1) } }
@keyframes kts-branch { 0% { transform: rotate(-3deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-3deg) } }
@keyframes kts-fall { 0% { transform: translate(0,0) rotate(0deg); opacity:1 } 50% { transform: translate(20px, 30px) rotate(180deg); opacity:0.8 } 100% { transform: translate(40px, 60px) rotate(360deg); opacity:0 } }

/* on-donnes-poetry - funny dim interior forge */

.scn-on-donnes-poetry {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #1a0a00 50%, #0f0500 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 80%);
}
.scn-on-donnes-poetry .bg-walls {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, rgba(0,0,0,0.2) 0px, transparent 2px, transparent 20px);
  animation: odp-walls 30s linear infinite;
}
.scn-on-donnes-poetry .forge {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-on-donnes-poetry .fire {
  position: absolute; bottom: 25%; left: 50%; width: 50px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffaa40 0%, #ff6020 50%, transparent 100%);
  border-radius: 50%;
  animation: odp-fire 0.8s ease-in-out infinite alternate;
}
.scn-on-donnes-poetry .dromedary {
  position: absolute; bottom: 30%; left: 20%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: inset 0 -10px 8px rgba(0,0,0,0.3);
  animation: odp-trot 1.2s ease-in-out infinite;
}
.scn-on-donnes-poetry .poker {
  position: absolute; bottom: 28%; left: 60%; width: 8px; height: 80px;
  background: linear-gradient(180deg, #aa8a6a 0%, #6a4a2a 100%);
  border-radius: 2px; transform: rotate(20deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: odp-poker 3s ease-in-out infinite;
}
.scn-on-donnes-poetry .knot {
  position: absolute; bottom: 40%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, #b09070 0%, #7a5a3a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  transform: rotate(45deg);
  animation: odp-knot 4s ease-in-out infinite;
}
.scn-on-donnes-poetry .sparks {
  position: absolute; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffcc40 0%, transparent 100%);
  border-radius: 50%;
}
.scn-on-donnes-poetry .spark-a { bottom: 28%; left: 48%; animation: odp-spark 1.5s ease-out infinite; }
.scn-on-donnes-poetry .spark-b { bottom: 30%; left: 52%; animation: odp-spark 1.8s ease-out infinite; animation-delay: -0.5s; }
@keyframes odp-walls { 0% { background-position: 0 0 } 100% { background-position: 20px 0 } }
@keyframes odp-fire { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.2) } 100% { transform: translateX(-50%) scale(0.9) } }
@keyframes odp-trot { 0% { transform: translate(0,0) rotate(-2deg) } 25% { transform: translate(5px, -2px) rotate(1deg) } 50% { transform: translate(10px, 0) rotate(2deg) } 75% { transform: translate(5px, -2px) rotate(1deg) } 100% { transform: translate(0,0) rotate(-2deg) } }
@keyframes odp-poker { 0% { transform: rotate(20deg) } 50% { transform: rotate(15deg) scaleY(1.05) } 100% { transform: rotate(20deg) } }
@keyframes odp-knot { 0% { transform: rotate(45deg) scale(1) } 50% { transform: rotate(55deg) scale(1.1) } 100% { transform: rotate(45deg) scale(1) } }
@keyframes odp-spark { 0% { transform: translate(0,0) scale(1); opacity:1 } 100% { transform: translate(-8px, -20px) scale(0); opacity:0 } }

/* israels-lament-intro - dark dim interior */

.scn-israels-lament-intro {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 60%, #05050a 100%),
    radial-gradient(ellipse at 50% 40%, #2a2a3e 0%, transparent 80%);
}
.scn-israels-lament-intro .chamber {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 70%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.5);
}
.scn-israels-lament-intro .window-glow {
  position: absolute; top: 15%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #8a8aaa 0%, #4a4a6a 50%, transparent 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(100,100,150,0.3);
  animation: ili-glow 4s ease-in-out infinite alternate;
}
.scn-israels-lament-intro .virgin {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -10px 12px rgba(0,0,0,0.4);
  animation: ili-virgin 10s ease-in-out infinite;
}
.scn-israels-lament-intro .lamb {
  position: absolute; bottom: 15%; left: 40%; width: 25px; height: 20px;
  background: radial-gradient(circle at 40% 50%, #6a6a7a 0%, #4a4a5a 100%);
  border-radius: 50% 40% 30% 30% / 50% 40% 30% 40%;
  animation: ili-lamb 5s ease-in-out infinite;
}
.scn-israels-lament-intro .candle {
  position: absolute; bottom: 35%; left: 55%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #d0b080 0%, #8a6a4a 100%);
  border-radius: 2px; box-shadow: 0 0 12px 4px #ffd090;
  animation: ili-candle 2s ease-in-out infinite alternate;
}
.scn-israels-lament-intro .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: ili-shadow 15s ease-in-out infinite;
}
@keyframes ili-glow { 0% { opacity:0.6; box-shadow: 0 0 20px 4px rgba(100,100,150,0.2) } 50% { opacity:0.8; box-shadow: 0 0 30px 8px rgba(100,100,150,0.4) } 100% { opacity:0.6; box-shadow: 0 0 20px 4px rgba(100,100,150,0.2) } }
@keyframes ili-virgin { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) translateY(-2px) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes ili-lamb { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(2px, -1px) scale(0.95) } 100% { transform: translate(0,0) scale(1) } }
@keyframes ili-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(0.95) } }
@keyframes ili-shadow { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.5 } }

/* scene 1: improvisatore-love-maturity */

.scn-improvisatore-love-maturity {
  background: 
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, #1a1010 70%),
    linear-gradient(180deg, #2a1a0a 0%, #0d0806 100%);
}
.scn-improvisatore-love-maturity .room {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, rgba(20,12,8,0.8) 0%, rgba(10,6,4,0.9) 100%);
  animation: il-ambient 12s ease-in-out infinite alternate;
}
.scn-improvisatore-love-maturity .orb {
  position: absolute; top: 30%; left: 55%; width: 60px; height: 60px;
  background: radial-gradient(circle at 35% 35%, #f0c8a0 0%, #c08050 50%, #5a3020 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(192,128,80,0.6), 0 0 80px 30px rgba(192,128,80,0.2);
  animation: il-orb 8s ease-in-out infinite alternate;
}
.scn-improvisatore-love-maturity .figure {
  position: absolute; bottom: 25%; left: 20%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a1a12 0%, #120a06 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(0);
  animation: il-figure 6s ease-in-out infinite alternate;
}
.scn-improvisatore-love-maturity .glow {
  position: absolute; top: 28%; left: 53%; width: 70px; height: 70px;
  background: radial-gradient(circle, rgba(240,200,160,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: il-glow-pulse 4s ease-in-out infinite alternate;
}
.scn-improvisatore-love-maturity .shadow {
  position: absolute; bottom: 20%; left: 15%; width: 80px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%);
  border-radius: 50%;
  animation: il-shadow 6s ease-in-out infinite alternate;
}
.scn-improvisatore-love-maturity .candle {
  position: absolute; bottom: 28%; left: 50%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #8a6030 0%, #4a2a10 100%);
  border-radius: 4px 4px 0 0;
  transform: translateX(-50%);
  animation: il-candle 7s ease-in-out infinite;
}
.scn-improvisatore-love-maturity .table {
  position: absolute; bottom: 22%; left: 25%; right: 25%; height: 8px;
  background: linear-gradient(180deg, #5a3a20 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.5);
  animation: il-table 10s ease-in-out infinite alternate;
}
@keyframes il-ambient { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes il-orb { 0% { transform: scale(1) translateY(0); box-shadow: 0 0 40px 15px rgba(192,128,80,0.6), 0 0 80px 30px rgba(192,128,80,0.2); } 50% { transform: scale(1.02) translateY(-2px); box-shadow: 0 0 50px 20px rgba(200,140,90,0.7), 0 0 100px 40px rgba(200,140,90,0.3); } 100% { transform: scale(0.98) translateY(1px); box-shadow: 0 0 35px 10px rgba(180,110,70,0.5), 0 0 70px 25px rgba(180,110,70,0.15); } }
@keyframes il-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(-4px) rotate(-1deg); } }
@keyframes il-glow-pulse { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes il-shadow { 0% { transform: scale(1) translateX(0); opacity: 0.7; } 50% { transform: scale(1.1) translateX(5px); opacity: 0.9; } 100% { transform: scale(0.9) translateX(-3px); opacity: 0.6; } }
@keyframes il-candle { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05) rotate(1deg); } }
@keyframes il-table { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(-1px); } }

/* scene 2: improvisatore-ideal-rare */

.scn-improvisatore-ideal-rare {
  background: 
    radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a1010 70%),
    linear-gradient(180deg, #1a1010 0%, #0d0806 100%);
}
.scn-improvisatore-ideal-rare .wall {
  position: absolute; inset: 0; bottom: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1010 100%);
  border-bottom: 2px solid #4a2a10;
  animation: ir-wall 15s ease-in-out infinite alternate;
}
.scn-improvisatore-ideal-rare .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0d0806 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: ir-floor 12s ease-in-out infinite alternate;
}
.scn-improvisatore-ideal-rare .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #2a1a12 0%, #100804 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  animation: ir-left 5s ease-in-out infinite alternate;
}
.scn-improvisatore-ideal-rare .figure-right {
  position: absolute; bottom: 20%; right: 20%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #2a1a12 0%, #100804 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(5deg);
  animation: ir-right 5s ease-in-out infinite alternate;
}
.scn-improvisatore-ideal-rare .lamp {
  position: absolute; top: 25%; left: 50%; width: 16px; height: 24px;
  background: radial-gradient(circle at 50% 50%, #c09060 0%, #6a3a20 100%);
  border-radius: 50% 50% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 8px rgba(192,144,96,0.4);
  animation: ir-lamp 6s ease-in-out infinite alternate;
}
.scn-improvisatore-ideal-rare .lamp-glow {
  position: absolute; top: 22%; left: 48%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(192,144,96,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ir-glow 8s ease-in-out infinite alternate;
}
.scn-improvisatore-ideal-rare .book {
  position: absolute; bottom: 22%; left: 45%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ir-book 10s ease-in-out infinite alternate;
}
@keyframes ir-wall { 0% { opacity: 1; } 50% { opacity: 0.95; } 100% { opacity: 1; } }
@keyframes ir-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(0.99); } }
@keyframes ir-left { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(4px); } 100% { transform: rotate(-6deg) translateX(-2px); } }
@keyframes ir-right { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(3deg) translateX(-4px); } 100% { transform: rotate(6deg) translateX(2px); } }
@keyframes ir-lamp { 0% { transform: translateX(-50%) scale(1); opacity: 0.9; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; } 100% { transform: translateX(-50%) scale(0.95); opacity: 0.85; } }
@keyframes ir-glow { 0% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.15); opacity: 0.8; } 100% { transform: scale(0.9); opacity: 0.4; } }
@keyframes ir-book { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-1px); } 100% { transform: rotate(-12deg) translateY(1px); } }

/* scene 3: improvisatore-self-importance */

.scn-improvisatore-self-importance {
  background: 
    radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, #1a1010 70%),
    linear-gradient(180deg, #0d0806 0%, #1a1010 100%);
}
.scn-improvisatore-self-importance .den {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0603 100%);
  animation: si-ambient 14s ease-in-out infinite alternate;
}
.scn-improvisatore-self-importance .bear {
  position: absolute; bottom: 15%; left: 30%; width: 90px; height: 110px;
  background: radial-gradient(ellipse at 40% 30%, #4a3a2a 0%, #2a1a0a 60%, #0d0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-20%);
  animation: si-bear 10s ease-in-out infinite alternate;
}
.scn-improvisatore-self-importance .paw {
  position: absolute; bottom: 30%; left: 25%; width: 25px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(20deg);
  animation: si-paw 3s ease-in-out infinite alternate;
}
.scn-improvisatore-self-importance .chair {
  position: absolute; bottom: 12%; left: 35%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #5a3a20 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: si-chair 8s ease-in-out infinite alternate;
}
.scn-improvisatore-self-importance .candle {
  position: absolute; bottom: 30%; left: 60%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #8a6030 0%, #4a2a10 100%);
  border-radius: 4px 4px 0 0;
  transform: translateX(-50%);
  animation: si-candle 6s ease-in-out infinite;
}
.scn-improvisatore-self-importance .moth {
  position: absolute; top: 40%; left: 55%; width: 8px; height: 6px;
  background: #bba080;
  border-radius: 50%;
  filter: blur(1px);
  animation: si-moth 4s ease-in-out infinite alternate;
}
.scn-improvisatore-self-importance .moth-glow {
  position: absolute; top: 38%; left: 53%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(200,160,120,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: si-moth-glow 4s ease-in-out infinite alternate;
}
@keyframes si-ambient { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes si-bear { 0% { transform: translateX(-20%) rotate(0deg); } 50% { transform: translateX(-18%) rotate(3deg); } 100% { transform: translateX(-22%) rotate(-2deg); } }
@keyframes si-paw { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-3px); } 100% { transform: rotate(25deg) translateY(0); } }
@keyframes si-chair { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes si-candle { 0%,100% { transform: translateX(-50%) scaleY(1) rotate(0deg); } 50% { transform: translateX(-50%) scaleY(1.04) rotate(1deg); } }
@keyframes si-moth { 0% { transform: translate(0, 0); } 25% { transform: translate(5px, -8px); } 50% { transform: translate(-3px, -12px); } 75% { transform: translate(4px, -5px); } 100% { transform: translate(-2px, 2px); } }
@keyframes si-moth-glow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(0.9); } }

/* scene 4: improvisatore-happiness-fragments */

.scn-improvisatore-happiness-fragments {
  background: 
    radial-gradient(ellipse at 50% 70%, #2a1a12 0%, #0d0806 70%),
    linear-gradient(180deg, #0a0603 0%, #1a1010 100%);
}
.scn-improvisatore-happiness-fragments .darkness {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,6,3,0.9) 0%, rgba(20,12,8,0.95) 100%);
  animation: hf-dark 20s ease-in-out infinite alternate;
}
.scn-improvisatore-happiness-fragments .shard-1 {
  position: absolute; top: 20%; left: 20%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #5a3020 0%, #2a1a0a 100%);
  clip-path: polygon(50% 0%, 100% 30%, 80% 100%, 20% 80%, 0% 30%);
  animation: hf-shard1 6s ease-in-out infinite alternate;
}
.scn-improvisatore-happiness-fragments .shard-2 {
  position: absolute; top: 15%; right: 25%; width: 35px; height: 45px;
  background: linear-gradient(225deg, #4a2a1a 0%, #1a0e08 100%);
  clip-path: polygon(50% 0%, 90% 25%, 70% 100%, 30% 90%, 10% 30%);
  animation: hf-shard2 8s ease-in-out infinite alternate;
  animation-delay: -3s;
}
.scn-improvisatore-happiness-fragments .shard-3 {
  position: absolute; top: 40%; left: 50%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6a3a20 0%, #3a1a0a 100%);
  clip-path: polygon(50% 0%, 80% 40%, 60% 100%, 40% 100%, 20% 40%);
  transform: translateX(-50%);
  animation: hf-shard3 7s ease-in-out infinite alternate;
  animation-delay: -1.5s;
}
.scn-improvisatore-happiness-fragments .teardrop {
  position: absolute; bottom: 35%; left: 55%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #8a7060 0%, #4a3020 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: hf-teardrop 5s ease-in-out infinite;
}
.scn-improvisatore-happiness-fragments .hand {
  position: absolute; bottom: 30%; left: 45%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #2a1a12 0%, #0d0806 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  transform: rotate(-15deg);
  animation: hf-hand 4s ease-in-out infinite alternate;
}
.scn-improvisatore-happiness-fragments .child-silhouette {
  position: absolute; bottom: 20%; right: 30%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #1a0a06 0%, #0a0402 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: scale(0.8);
  opacity: 0.6;
  animation: hf-child 12s ease-in-out infinite alternate;
}
@keyframes hf-dark { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes hf-shard1 { 0% { transform: translate(0, 0) rotate(0deg) scale(1); } 50% { transform: translate(5px, -8px) rotate(10deg) scale(1.05); } 100% { transform: translate(-3px, 4px) rotate(-5deg) scale(0.95); } }
@keyframes hf-shard2 { 0% { transform: translate(0, 0) rotate(0deg) scale(1); } 50% { transform: translate(-6px, -5px) rotate(-8deg) scale(1.02); } 100% { transform: translate(4px, 3px) rotate(6deg) scale(0.98); } }
@keyframes hf-shard3 { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 50% { transform: translateX(-50%) translateY(-3px) rotate(5deg) scale(1.03); } 100% { transform: translateX(-50%) translateY(2px) rotate(-3deg) scale(0.97); } }
@keyframes hf-teardrop { 0%,100% { transform: translateY(0) scaleY(1); opacity: 0.7; } 50% { transform: translateY(-6px) scaleY(1.1); opacity: 1; } }
@keyframes hf-hand { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-3px); } 100% { transform: rotate(-20deg) translateY(2px); } }
@keyframes hf-child { 0% { transform: scale(0.8) translateY(0); opacity: 0.6; } 50% { transform: scale(0.82) translateY(-2px); opacity: 0.7; } 100% { transform: scale(0.78) translateY(1px); opacity: 0.5; } }

.scn-human-life-continued {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 100%, #2a2a44 0%, transparent 70%);
}
.scn-human-life-continued .wall-bg { position:absolute; inset:10% 10% 15% 10%; background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 50%, #0e0e1a 100%); border-radius: 12px; box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-human-life-continued .arch-left { position:absolute; left:12%; bottom:15%; width:30%; height:60%; background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%); border-radius: 50% 0 0 0 / 80% 0 0 0; clip-path: polygon(0 0, 100% 0, 100% 30%, 70% 100%, 0 100%); opacity:.4; }
.scn-human-life-continued .arch-right { position:absolute; right:12%; bottom:15%; width:30%; height:60%; background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%); border-radius: 0 50% 0 0 / 0 80% 0 0; clip-path: polygon(0 0, 100% 0, 100% 100%, 30% 100%, 0 30%); opacity:.4; }
.scn-human-life-continued .figure-hood { position:absolute; bottom:18%; left:50%; width:50px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3e 0%, #0f0f1a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 20px rgba(0,0,0,.7); animation: hlc-figure 8s ease-in-out infinite; }
.scn-human-life-continued .candle-glow { position:absolute; bottom:28%; left:48%; width:16px; height:16px; background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 8px #c08040, 0 0 60px 20px rgba(192,128,64,.4); animation: hlc-candle 4s ease-in-out infinite alternate; }
.scn-human-life-continued .candle-body { position:absolute; bottom:25%; left:48.5%; width:6px; height:20px; background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%); border-radius: 2px 2px 3px 3px; transform:translateX(-50%); }
.scn-human-life-continued .shadow-on-wall { position:absolute; left:44%; bottom:10%; width:80px; height:60px; background: radial-gradient(ellipse at 50% 100%, #000 0%, transparent 80%); opacity:.5; animation: hlc-shadow 8s ease-in-out infinite; }
.scn-human-life-continued .dust-mote { position:absolute; top:30%; left:45%; width:3px; height:3px; background: #ffd080; border-radius:50%; box-shadow: 0 0 4px 2px rgba(255,208,128,.3); animation: hlc-dust 12s ease-in-out infinite; }
@keyframes hlc-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes hlc-candle { 0% { opacity:.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.8; transform: scale(.95); } }
@keyframes hlc-shadow { 0% { opacity:.3; transform: scale(1) translateX(0); } 50% { opacity:.6; transform: scale(1.05) translateX(4px); } 100% { opacity:.4; transform: scale(1) translateX(0); } }
@keyframes hlc-dust { 0% { transform: translate(0, 0) scale(1); opacity:.3; } 33% { transform: translate(8px, -12px) scale(1.2); opacity:.8; } 66% { transform: translate(-4px, -6px) scale(.8); opacity:.5; } 100% { transform: translate(0, 0) scale(1); opacity:.3; } }

.scn-song-zapolya-glycerine {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 30%, #f0e68c 60%, #ffd700 80%, #ff8c00 100%), radial-gradient(ellipse at 50% 30%, rgba(255,255,255,.3) 0%, transparent 60%);
}
.scn-song-zapolya-glycerine .sky-bright { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a90d9 0%, #87ceeb 50%, #b0e0ff 100%); animation: szg-sky 15s ease-in-out infinite alternate; }
.scn-song-zapolya-glycerine .sunbeam-shaft { position:absolute; top:0; left:30%; width:40%; height:70%; background: linear-gradient(180deg, rgba(255,215,0,0.6) 0%, rgba(255,255,200,0.3) 50%, transparent 100%); clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%); animation: szg-beam 8s ease-in-out infinite alternate; }
.scn-song-zapolya-glycerine .bird-body { position:absolute; top:25%; left:40%; width:18px; height:14px; background: radial-gradient(ellipse at 50% 50%, #ff6b35 0%, #c04020 100%); border-radius: 50% 50% 60% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: szg-bird 3s ease-in-out infinite; }
.scn-song-zapolya-glycerine .bird-wing { position:absolute; top:22%; left:40%; width:20px; height:8px; background: linear-gradient(180deg, #ff8c42 0%, #d06030 100%); border-radius: 80% 20% 50% 50% / 60% 20% 80% 40%; transform-origin: left center; animation: szg-wing 0.6s ease-in-out infinite alternate; }
.scn-song-zapolya-glycerine .mist-glory { position:absolute; top:20%; left:30%; width:40%; height:30%; background: radial-gradient(ellipse at 50% 50%, rgba(255,215,0,0.2) 0%, rgba(255,200,100,0.1) 50%, transparent 100%); animation: szg-mist 10s ease-in-out infinite alternate; }
.scn-song-zapolya-glycerine .grass-blades { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7ccd7c 0%, #3a8a3a 50%, #1a5a1a 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; animation: szg-grass 6s ease-in-out infinite; }
@keyframes szg-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes szg-beam { 0% { transform: rotate(-2deg) scaleY(1); opacity:.6; } 50% { transform: rotate(2deg) scaleY(1.05); opacity:.9; } 100% { transform: rotate(-1deg) scaleY(1); opacity:.7; } }
@keyframes szg-bird { 0%,100% { transform: translate(0, 0) rotate(-5deg); } 25% { transform: translate(6px, -4px) rotate(3deg); } 50% { transform: translate(12px, -2px) rotate(-2deg); } 75% { transform: translate(6px, -6px) rotate(4deg); } 100% { transform: translate(0, 0) rotate(-5deg); } }
@keyframes szg-wing { 0% { transform: rotate(0deg) scaleX(1); } 100% { transform: rotate(-40deg) scaleX(.8); } }
@keyframes szg-mist { 0% { opacity:.2; transform: scale(1); } 50% { opacity:.5; transform: scale(1.1); } 100% { opacity:.3; transform: scale(.95); } }
@keyframes szg-grass { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

.scn-hunting-song-zapolya {
  background: linear-gradient(180deg, #4a90d9 0%, #87ceeb 30%, #ffd700 60%, #daa520 80%, #8b4513 100%), radial-gradient(ellipse at 50% 100%, #3a6a3a 0%, transparent 70%);
}
.scn-hunting-song-zapolya .meadow-green { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a8a3a 0%, #3a6a1a 50%, #1a4a0a 100%); border-radius: 20% 80% 0 0 / 30% 70% 0 0; animation: hsz-meadow 14s ease-in-out infinite alternate; }
.scn-hunting-song-zapolya .hill-far { position:absolute; bottom:25%; left:10%; width:50%; height:20%; background: linear-gradient(180deg, #6a9a4a 0%, #4a7a2a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; opacity:.6; animation: hsz-hill 20s ease-in-out infinite alternate; }
.scn-hunting-song-zapolya .shepherd-fig { position:absolute; bottom:28%; left:35%; width:16px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hsz-walk 5s ease-in-out infinite; }
.scn-hunting-song-zapolya .lance-staff { position:absolute; bottom:32%; left:36%; width:3px; height:45px; background: linear-gradient(180deg, #a08060 0%, #604020 100%); border-radius: 2px; transform: rotate(-15deg); transform-origin: bottom center; animation: hsz-lance 5s ease-in-out infinite; }
.scn-hunting-song-zapolya .wolf-silhouette { position:absolute; bottom:30%; right:15%; width:30px; height:18px; background: #1a1a2a; border-radius: 50% 50% 40% 60% / 60% 40% 60% 40%; clip-path: polygon(0 20%, 20% 0, 60% 10%, 80% 0, 100% 20%, 90% 60%, 80% 100%, 60% 90%, 40% 100%, 20% 90%, 10% 60%); animation: hsz-wolf 8s ease-in-out infinite; }
.scn-hunting-song-zapolya .cloud-bank { position:absolute; top:10%; left:0; right:0; height:15%; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(200,220,240,.3) 100%); border-radius: 30% 70% 50% 50% / 40% 60% 40% 60%; filter: blur(8px); animation: hsz-cloud 35s linear infinite; }
.scn-hunting-song-zapolya .flower-dots { position:absolute; bottom:15%; left:20%; width:50%; height:8%; background: radial-gradient(circle, #ff6b6b 0%, transparent 60%), radial-gradient(circle at 30% 50%, #ffd700 0%, transparent 40%), radial-gradient(circle at 70% 30%, #ff69b4 0%, transparent 50%); background-size: 12px 12px, 8px 8px, 10px 10px; background-repeat: repeat; animation: hsz-flowers 7s ease-in-out infinite alternate; }
@keyframes hsz-meadow { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hsz-hill { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-5px) scale(1.02); } 100% { transform: translateX(0) scale(1); } }
@keyframes hsz-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(2deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes hsz-lance { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(2px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes hsz-wolf { 0%,100% { transform: translate(0, 0) rotate(0deg); } 33% { transform: translate(3px, -2px) rotate(2deg); } 66% { transform: translate(-2px, 1px) rotate(-3deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes hsz-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(100vw); } }
@keyframes hsz-flowers { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }

.scn-faith-hope-charity-guarini {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 30%, #3a3a6e 60%, #2a2a4e 100%), radial-gradient(ellipse at 50% 80%, #4a4a7e 0%, transparent 70%);
}
.scn-faith-hope-charity-guarini .apse-dark { position:absolute; left:20%; bottom:10%; width:60%; height:70%; background: linear-gradient(135deg, #1a1a3e 0%, #0e0e2e 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 60px rgba(0,0,0,.5); }
.scn-faith-hope-charity-guarini .altar-glow { position:absolute; left:50%; bottom:15%; width:40px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #ffd080 0%, #c08040 60%, transparent 100%); box-shadow: 0 0 50px 15px #c08040, 0 0 100px 30px rgba(192,128,64,.3); animation: fhcg-altar 6s ease-in-out infinite alternate; }
.scn-faith-hope-charity-guarini .kneeling-fig { position:absolute; bottom:20%; left:35%; width:30px; height:50px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fhcg-kneel 8s ease-in-out infinite alternate; }
.scn-faith-hope-charity-guarini .halo-light { position:absolute; top:18%; left:38%; width:24px; height:24px; background: radial-gradient(circle, rgba(255,215,0,0.3) 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,215,0,0.2); animation: fhcg-halo 7s ease-in-out infinite alternate; }
.scn-faith-hope-charity-guarini .prayer-hands { position:absolute; bottom:28%; left:38%; width:8px; height:12px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform-origin: bottom center; animation: fhcg-hands 5s ease-in-out infinite; }
.scn-faith-hope-charity-guarini .sphere-ring { position:absolute; top:10%; left:50%; width:40px; height:40px; transform:translateX(-50%); border: 1px solid rgba(255,215,0,0.3); border-radius:50%; box-shadow: 0 0 20px rgba(255,215,0,0.1); animation: fhcg-sphere 15s linear infinite; }
.scn-faith-hope-charity-guarini .ray-soft { position:absolute; top:0; left:30%; width:6%; height:60%; background: linear-gradient(180deg, rgba(255,255,200,0.15) 0%, transparent 100%); transform: skewX(-5deg); animation: fhcg-ray 9s ease-in-out infinite alternate; }
@keyframes fhcg-altar { 0% { opacity:.7; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.05); } 100% { opacity:.8; transform: translateX(-50%) scale(.98); } }
@keyframes fhcg-kneel { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes fhcg-halo { 0% { opacity:.4; transform: scale(1); } 50% { opacity:.8; transform: scale(1.1); } 100% { opacity:.5; transform: scale(.95); } }
@keyframes fhcg-hands { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }
@keyframes fhcg-sphere { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(360deg); } }
@keyframes fhcg-ray { 0% { opacity:.1; transform: skewX(-5deg) scaleY(1); } 50% { opacity:.4; transform: skewX(-2deg) scaleY(1.1); } 100% { opacity:.2; transform: skewX(-5deg) scaleY(1); } }

/* river-rock-warrior: overcast, turbulent */

.scn-river-rock-warrior {
  background: linear-gradient(180deg, #4b5a6a 0%, #2c3a4a 50%, #1a2a3a 100%), radial-gradient(ellipse at 50% 0%, #5a6a7a 0%, transparent 70%);
}
.scn-river-rock-warrior .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a4a5a 0%, transparent 100%); animation: rr-sky 14s ease-in-out infinite alternate; }
.scn-river-rock-warrior .cliffs { position:absolute; bottom:40%; left:5%; right:5%; height:20%; background: linear-gradient(135deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 10% 20% 0 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,.6); animation: rr-cliffs 10s ease-in-out infinite alternate; }
.scn-river-rock-warrior .river-bg { position:absolute; bottom:20%; left:0; right:0; height:25%; background: linear-gradient(90deg, #2a4a5a 0%, #3a5a6a 30%, #2a4a5a 70%, #1a3a4a 100%); animation: rr-river-bg 6s linear infinite; }
.scn-river-rock-warrior .river-waves { position:absolute; bottom:25%; left:0; right:0; height:10%; background: linear-gradient(180deg, rgba(200,220,240,.3) 0%, transparent 100%); background-size: 100% 100%; animation: rr-waves 3s ease-in-out infinite; }
.scn-river-rock-warrior .rocks { position:absolute; bottom:25%; left:20%; width:30px; height:20px; background: linear-gradient(135deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 40% 60% 20% 80%; box-shadow: 0 4px 6px rgba(0,0,0,.5); animation: rr-rocks 4s ease-in-out infinite; }
.scn-river-rock-warrior .warrior { position:absolute; bottom:30%; left:40%; width:16px; height:40px; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: rr-warrior 5s ease-in-out infinite; }
.scn-river-rock-warrior .spray { position:absolute; bottom:30%; left:55%; width:20px; height:20px; background: radial-gradient(circle at 30% 30%, rgba(200,230,255,.4) 0%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: rr-spray 2s ease-in-out infinite alternate; }
@keyframes rr-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rr-cliffs { 0% { transform: translateY(0) scaleY(1) } 100% { transform: translateY(-2px) scaleY(1.02) } }
@keyframes rr-river-bg { 0% { background-position: 0 0 } 100% { background-position: -100% 0 } }
@keyframes rr-waves { 0%,100% { opacity:.3; transform: translateY(0) } 50% { opacity:.7; transform: translateY(-3px) } }
@keyframes rr-rocks { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(5px) rotate(5deg) } }
@keyframes rr-warrior { 0%,100% { transform: translateX(0) } 50% { transform: translateX(8px) rotate(2deg) } }
@keyframes rr-spray { 0% { transform: translateY(0) scale(1) } 100% { transform: translateY(-6px) scale(1.1) } }

/* love-all-thoughts-passions: moonlit, passionate */

.scn-love-all-thoughts-passions {
  background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 40%, #2a3a4a 100%), radial-gradient(ellipse at 50% 10%, #4a5a6a 0%, transparent 60%);
}
.scn-love-all-thoughts-passions .moon { position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle at 50% 50%, #d0d8e0 0%, #a0b0c0 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(160,180,200,.5); animation: la-moon 12s ease-in-out infinite alternate; }
.scn-love-all-thoughts-passions .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0a1a2a 0%, transparent 100%); animation: la-sky 15s ease-in-out infinite alternate; }
.scn-love-all-thoughts-passions .tower { position:absolute; bottom:35%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 0 0 8% 8%; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: la-tower 8s ease-in-out infinite; }
.scn-love-all-thoughts-passions .hill { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 60% 0 0 / 100% 80% 0 0; animation: la-hill 20s ease-in-out infinite alternate; }
.scn-love-all-thoughts-passions .lover { position:absolute; bottom:30%; left:50%; width:14px; height:30px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: la-lover 6s ease-in-out infinite; }
.scn-love-all-thoughts-passions .flame { position:absolute; bottom:38%; left:44%; width:10px; height:14px; background: radial-gradient(ellipse at 50% 30%, #d08050 0%, #b06040 70%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 8px #b06040; animation: la-flame 3s ease-in-out infinite alternate; }
@keyframes la-moon { 0% { transform: translateX(0) scale(1) } 100% { transform: translateX(-5px) scale(1.05) } }
@keyframes la-sky { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes la-tower { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(0.5deg) } }
@keyframes la-hill { 0% { transform: translateY(0) } 100% { transform: translateY(-2px) } }
@keyframes la-lover { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes la-flame { 0% { opacity:.7; transform: scaleY(1) } 100% { opacity:1; transform: scaleY(1.15) } }

/* genevieve-listens-song: moonlit, tender */

.scn-genevieve-listens-song {
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 30%, #0a1a2a 100%), radial-gradient(ellipse at 50% 10%, #3a4a5a 0%, transparent 70%);
}
.scn-genevieve-listens-song .moon { position:absolute; top:10%; left:75%; width:30px; height:30px; background: radial-gradient(circle, #d8e0e8 0%, #a8b8c8 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(160,180,200,.4); animation: gl-moon 10s ease-in-out infinite alternate; }
.scn-genevieve-listens-song .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a2a3a 0%, transparent 100%); animation: gl-sky 18s ease-in-out infinite alternate; }
.scn-genevieve-listens-song .arch-ruin { position:absolute; bottom:30%; left:20%; right:20%; height:35%; background: linear-gradient(135deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); animation: gl-arch 12s ease-in-out infinite; }
.scn-genevieve-listens-song .singer { position:absolute; bottom:40%; left:35%; width:16px; height:34px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: gl-singer 8s ease-in-out infinite; }
.scn-genevieve-listens-song .listener { position:absolute; bottom:38%; left:55%; width:14px; height:30px; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 40% 30% 30% 40% / 60% 50% 40% 50%; transform: rotate(-5deg); animation: gl-listener 6s ease-in-out infinite alternate; }
.scn-genevieve-listens-song .lute { position:absolute; bottom:42%; left:38%; width:12px; height:20px; background: linear-gradient(90deg, #5a4a3a 0%, #7a5a3a 50%, #5a4a3a 100%); border-radius: 50% 50% 10% 10%; transform: rotate(25deg); animation: gl-lute 4s ease-in-out infinite; }
@keyframes gl-moon { 0% { transform: translateY(0) scale(1) } 100% { transform: translateY(-3px) scale(1.02) } }
@keyframes gl-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes gl-arch { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes gl-singer { 0%,100% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(1deg) } }
@keyframes gl-listener { 0% { transform: translateY(0) rotate(-5deg) } 100% { transform: translateY(-1px) rotate(-3deg) } }
@keyframes gl-lute { 0%,100% { transform: rotate(25deg) scale(1) } 50% { transform: rotate(30deg) scale(1.05) } }

/* knight-lady-wooing: moonlit, romantic */

.scn-knight-lady-wooing {
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 50%, #0a1a2a 100%), radial-gradient(ellipse at 50% 10%, #3a4a5a 0%, transparent 60%);
}
.scn-knight-lady-wooing .moon { position:absolute; top:8%; left:65%; width:35px; height:35px; background: radial-gradient(circle, #e0e8f0 0%, #b0c0d0 100%); border-radius: 50%; box-shadow: 0 0 25px 10px rgba(160,180,200,.4); animation: kl-moon 14s ease-in-out infinite alternate; }
.scn-knight-lady-wooing .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1a2a3a 0%, transparent 100%); animation: kl-sky 20s ease-in-out infinite alternate; }
.scn-knight-lady-wooing .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; animation: kl-ground 16s ease-in-out infinite alternate; }
.scn-knight-lady-wooing .knight { position:absolute; bottom:30%; left:30%; width:18px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: kl-knight 6s ease-in-out infinite; }
.scn-knight-lady-wooing .lady { position:absolute; bottom:32%; left:55%; width:16px; height:36px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-3deg); animation: kl-lady 7s ease-in-out infinite alternate; }
.scn-knight-lady-wooing .shield { position:absolute; bottom:38%; left:33%; width:14px; height:18px; background: linear-gradient(135deg, #6a3a3a 0%, #4a2a2a 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 6px rgba(0,0,0,.5); animation: kl-shield 4s ease-in-out infinite; }
.scn-knight-lady-wooing .glow { position:absolute; bottom:40%; left:50%; width:20px; height:20px; background: radial-gradient(circle at 50% 50%, rgba(200,180,220,.3) 0%, transparent 70%); border-radius: 50%; filter: blur(3px); animation: kl-glow 5s ease-in-out infinite alternate; }
@keyframes kl-moon { 0% { transform: translateX(0) scale(1) } 100% { transform: translateX(-4px) scale(1.03) } }
@keyframes kl-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes kl-ground { 0% { transform: translateY(0) } 100% { transform: translateY(-1px) } }
@keyframes kl-knight { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(1deg) } }
@keyframes kl-lady { 0% { transform: translateY(0) rotate(-3deg) } 100% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes kl-shield { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(1px) rotate(2deg) } }
@keyframes kl-glow { 0% { opacity:.4; transform: scale(1) } 100% { opacity:.7; transform: scale(1.08) } }

.scn-eye-blindness-mystery {
  background:
    linear-gradient(180deg, #0c0a0e 0%, #1a1515 40%, #2a1a12 70%, #3a2010 100%),
    radial-gradient(ellipse at 50% 70%, #4a2a1a 0%, transparent 60%);
}
.scn-eye-blindness-mystery .deep-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #0a080a 0%, transparent 100%);
}
.scn-eye-blindness-mystery .hearth {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 28%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1810 100%);
  border-radius: 20% 20% 50% 50% / 40% 40% 30% 30%;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,.6);
}
.scn-eye-blindness-mystery .embers {
  position: absolute; bottom: 28%; left: 42%; width: 16%; height: 10%;
  background: radial-gradient(circle, #ff6a20 0%, #c04018 40%, #8a2008 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,100,30,.4), 0 0 60px 30px rgba(255,80,20,.2);
  animation: ebm1-ember 3s ease-in-out infinite alternate;
}
.scn-eye-blindness-mystery .fire-glow {
  position: absolute; bottom: 20%; left: 38%; width: 24%; height: 30%;
  background: radial-gradient(circle, rgba(255,140,60,.3) 0%, rgba(255,80,20,.1) 50%, transparent 70%);
  border-radius: 50%;
  filter: blur(20px);
  animation: ebm1-glow 4s ease-in-out infinite alternate;
}
.scn-eye-blindness-mystery .figure-silhouette {
  position: absolute; bottom: 14%; left: 48%; width: 8%; height: 32%;
  background: linear-gradient(180deg, #0a0808 0%, #141010 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: ebm1-figure 6s ease-in-out infinite;
}
.scn-eye-blindness-mystery .figure-staff {
  position: absolute; bottom: 14%; left: 52%; width: 1.5%; height: 38%;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 40%;
  transform: rotate(-8deg);
  transform-origin: bottom;
  animation: ebm1-staff 6s ease-in-out infinite;
}
.scn-eye-blindness-mystery .smoke-puff {
  position: absolute; bottom: 42%; left: 46%; width: 6%; height: 4%;
  background: radial-gradient(circle, rgba(180,160,140,.25) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: ebm1-smoke 8s ease-in-out infinite;
}
@keyframes ebm1-ember { 0% { transform: scale(1) translateY(0); opacity:.7 } 50% { transform: scale(1.2) translateY(-4px); opacity:1 } 100% { transform: scale(1) translateY(0); opacity:.8 } }
@keyframes ebm1-glow { 0% { opacity:.4; transform: scaleY(1) } 50% { opacity:.7; transform: scaleY(1.1) } 100% { opacity:.5; transform: scaleY(1) } }
@keyframes ebm1-figure { 0% { transform: translateX(0) rotate(-1deg) } 33% { transform: translateX(-2px) rotate(0deg) } 66% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes ebm1-staff { 0% { transform: rotate(-8deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(-8deg) } }
@keyframes ebm1-smoke { 0% { transform: translateY(0) translateX(0) scale(1); opacity:.3 } 50% { transform: translateY(-20px) translateX(10px) scale(2); opacity:.1 } 100% { transform: translateY(0) translateX(0) scale(1); opacity:.3 } }

.scn-lonely-want-you {
  background:
    linear-gradient(180deg, #1c1a1a 0%, #2a2420 50%, #3a3028 100%),
    radial-gradient(ellipse at 60% 50%, #4a3a2a 0%, transparent 60%);
}
.scn-lonely-want-you .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2420 0%, #1c1a1a 100%);
  box-shadow: inset 0 -4px 20px rgba(0,0,0,.5);
}
.scn-lonely-want-you .window-sill {
  position: absolute; bottom: 35%; left: 5%; width: 25%; height: 2%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
}
.scn-lonely-want-you .desk {
  position: absolute; bottom: 12%; left: 10%; width: 50%; height: 18%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
}
.scn-lonely-want-you .lamp {
  position: absolute; bottom: 28%; left: 28%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-3deg);
}
.scn-lonely-want-you .lamp-glow {
  position: absolute; bottom: 26%; left: 26%; width: 10%; height: 14%;
  background: radial-gradient(circle, #c0a060 0%, rgba(192,160,96,.2) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: lw2-glow 4s ease-in-out infinite alternate;
}
.scn-lonely-want-you .figure-seated {
  position: absolute; bottom: 14%; left: 16%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #1c1818 0%, #0e0c0c 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom;
  animation: lw2-seated 6s ease-in-out infinite;
}
.scn-lonely-want-you .letter-sheet {
  position: absolute; bottom: 16%; left: 22%; width: 8%; height: 6%;
  background: linear-gradient(180deg, #d0c8b8 0%, #c0b8a8 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: lw2-letter 5s ease-in-out infinite;
}
.scn-lonely-want-you .paper-stack {
  position: absolute; bottom: 15%; left: 32%; width: 6%; height: 4%;
  background: linear-gradient(180deg, #c8b8a8 0%, #b8a898 100%);
  border-radius: 2px;
  transform: rotate(2deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,.2);
  animation: lw2-stack 7s ease-in-out infinite;
}
@keyframes lw2-glow { 0% { transform: scale(1); opacity:.6 } 50% { transform: scale(1.1); opacity:.9 } 100% { transform: scale(1); opacity:.7 } }
@keyframes lw2-seated { 0% { transform: translateY(0) rotate(-1deg) } 33% { transform: translateY(-2px) rotate(0deg) } 66% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes lw2-letter { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes lw2-stack { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-1px) } 100% { transform: rotate(2deg) translateY(0) } }

.scn-metrical-notes {
  background:
    linear-gradient(135deg, #e8dcc8 0%, #d4c4a8 40%, #f0e4d0 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e8 0%, transparent 60%);
}
.scn-metrical-notes .study-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8bca0 0%, #d4c4a8 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,.1);
}
.scn-metrical-notes .bookshelf {
  position: absolute; top: 5%; left: 5%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #a09078 0%, #807060 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.2);
  overflow: visible;
}
/* Use pseudo elements not allowed? We will add extra div for books */
.scn-metrical-notes .desk-top {
  position: absolute; bottom: 12%; left: 15%; width: 65%; height: 20%;
  background: linear-gradient(180deg, #b8a888 0%, #a09078 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.2);
}
.scn-metrical-notes .open-book {
  position: absolute; bottom: 24%; left: 30%; width: 20%; height: 12%;
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 100%);
  border-radius: 4% 4% 8% 8% / 4% 4% 20% 20%;
  transform: rotate(-2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: mn3-book 8s ease-in-out infinite;
}
.scn-metrical-notes .inkwell {
  position: absolute; bottom: 20%; left: 55%; width: 6%; height: 8%;
  background: radial-gradient(circle, #1a1818 0%, #0a0a0a 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
.scn-metrical-notes .quill {
  position: absolute; bottom: 26%; left: 56%; width: 2%; height: 16%;
  background: linear-gradient(180deg, #d0c0a0 0%, #b8a888 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  transform: rotate(25deg);
  transform-origin: bottom;
  animation: mn3-quill 3s ease-in-out infinite alternate;
}
.scn-metrical-notes .candle {
  position: absolute; bottom: 22%; left: 20%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #e8d8b8 0%, #d0c0a0 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 8px 2px rgba(255,200,100,.3);
}
.scn-metrical-notes .candle-glow {
  position: absolute; bottom: 28%; left: 18%; width: 8%; height: 14%;
  background: radial-gradient(circle, rgba(255,200,100,.6) 0%, rgba(255,180,80,.2) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: mn3-candle-glow 4s ease-in-out infinite alternate;
}
@keyframes mn3-book { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes mn3-quill { 0% { transform: rotate(25deg) } 50% { transform: rotate(22deg) } 100% { transform: rotate(25deg) } }
@keyframes mn3-candle-glow { 0% { transform: scale(1); opacity:.7 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(1); opacity:.8 } }

.scn-ottfried-translation {
  background:
    linear-gradient(180deg, #1a1420 0%, #2a1e30 40%, #3a2840 70%, #4a3050 100%),
    radial-gradient(ellipse at 50% 80%, #5a3a5a 0%, transparent 50%);
}
.scn-ottfried-translation .church-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1420 0%, #2a1e30 100%);
  box-shadow: inset 0 -8px 30px rgba(0,0,0,.5);
}
.scn-ottfried-translation .stained-glass {
  position: absolute; top: 8%; left: 35%; width: 30%; height: 40%;
  background:
    linear-gradient(135deg, #8040a0 0%, #c06080 30%, #e0a040 60%, #4080c0 100%);
  border-radius: 8px 8px 50% 50% / 8px 8px 20% 20%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.4), 0 0 40px rgba(200,140,240,.3);
  opacity: .6;
  animation: ot4-stained 10s ease-in-out infinite alternate;
}
.scn-ottfried-translation .altar {
  position: absolute; bottom: 12%; left: 38%; width: 24%; height: 18%;
  background: linear-gradient(180deg, #5a3a4a 0%, #3a2030 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 4px 20px rgba(0,0,0,.5);
}
.scn-ottfried-translation .candle-pair {
  position: absolute; bottom: 28%; left: 44%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b898 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 10px 3px rgba(255,200,100,.4);
}
.scn-ottfried-translation .monk-figure {
  position: absolute; bottom: 12%; left: 42%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #1a1420 0%, #0e0a12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom;
  animation: ot4-monk 8s ease-in-out infinite;
}
.scn-ottfried-translation .prayer-book {
  position: absolute; bottom: 18%; left: 48%; width: 8%; height: 6%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%);
  border-radius: 4px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
.scn-ottfried-translation .incense-smoke {
  position: absolute; bottom: 40%; left: 46%; width: 4%; height: 30%;
  background: radial-gradient(ellipse at top, rgba(200,180,160,.15) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(8px);
  opacity: .3;
  animation: ot4-smoke 12s ease-in-out infinite;
}
.scn-ottfried-translation .halo-light {
  position: absolute; bottom: 22%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(circle, rgba(240,200,160,.15) 0%, rgba(200,160,120,.05) 40%, transparent 60%);
  border-radius: 50%;
  filter: blur(20px);
  animation: ot4-halo 6s ease-in-out infinite alternate;
}
@keyframes ot4-stained { 0% { opacity:.5; transform: scaleY(1) } 50% { opacity:.7; transform: scaleY(1.02) } 100% { opacity:.6; transform: scaleY(1) } }
@keyframes ot4-monk { 0% { transform: translateY(0) rotate(-1deg) } 33% { transform: translateY(-2px) rotate(0deg) } 66% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ot4-smoke { 0% { transform: translateY(0) translateX(0) scale(1); opacity:.2 } 50% { transform: translateY(-30px) translateX(5px) scale(2); opacity:.05 } 100% { transform: translateY(0) translateX(0) scale(1); opacity:.2 } }
@keyframes ot4-halo { 0% { transform: scale(1); opacity:.3 } 50% { transform: scale(1.1); opacity:.5 } 100% { transform: scale(1); opacity:.35 } }

/* snowdrop-variants */

.scn-sv { background: linear-gradient(180deg, #2a1f1a 0%, #3a2a1f 50%, #1f1410 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%); }
.scn-sv .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1f1410 0%, #2a1f1a 50%, #1a100c 100%); }
.scn-sv .curtain-left { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(90deg, #3a2a1f 0%, #2a1f1a 100%); border-radius:0 40% 40% 0 / 0 20% 20% 0; transform-origin: left center; animation: sv-curtain 12s ease-in-out infinite alternate; }
.scn-sv .curtain-right { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(270deg, #3a2a1f 0%, #2a1f1a 100%); border-radius:40% 0 0 40% / 20% 0 0 20%; transform-origin: right center; animation: sv-curtain 12s ease-in-out infinite alternate-reverse; }
.scn-sv .desk { position:absolute; bottom:10%; left:15%; width:70%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-sv .papers { position:absolute; bottom:16%; left:30%; width:20%; height:6%; background: linear-gradient(180deg, #c8b898 0%, #a08868 100%); border-radius:2px; box-shadow: 2px 2px 4px rgba(0,0,0,0.4); animation: sv-papers 8s ease-in-out infinite alternate; }
.scn-sv .candle { position:absolute; bottom:16%; left:60%; width:4%; height:18%; background: linear-gradient(180deg, #e8d0a0 0%, #c8a070 40%, #8a6030 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 8px 2px rgba(200,160,80,0.3); animation: sv-candle 3s ease-in-out infinite alternate; }
.scn-sv .flame-glow { position:absolute; bottom:32%; left:60%; width:8%; height:10%; transform:translate(-50%,0); background: radial-gradient(circle, #f0c060 0%, #e0a040 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(240,192,96,0.5); animation: sv-flame 2s ease-in-out infinite alternate; }
.scn-sv .snowdrop { position:absolute; bottom:18%; left:22%; width:6%; height:20%; background: radial-gradient(ellipse at 50% 30%, #e8e8f0 0%, #a0a0b0 100%); border-radius:50% 50% 20% 20% / 30% 30% 10% 10%; transform:rotate(15deg); transform-origin: bottom center; animation: sv-snowdrop 6s ease-in-out infinite alternate; }
@keyframes sv-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }
@keyframes sv-papers { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sv-candle { 0% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(0.98); opacity:1; } 100% { transform: scaleY(1); opacity:0.9; } }
@keyframes sv-flame { 0% { transform: translate(-50%,0) scale(1) translateY(0); } 50% { transform: translate(-50%,0) scale(1.1) translateY(-2px); } 100% { transform: translate(-50%,0) scale(0.95) translateY(1px); } }
@keyframes sv-snowdrop { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(18deg) scaleY(1.03); } 100% { transform: rotate(15deg) scaleY(1); } }

/* after-bathing-intro */

.scn-ab { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #1e1e3a 100%), radial-gradient(ellipse at 50% 80%, #2a2a4e 0%, transparent 70%); }
.scn-ab .bg { position:absolute; inset:0; background: linear-gradient(180deg, #12122a 0%, #1a1a3e 50%, #0e0e1e 100%); }
.scn-ab .window-frame { position:absolute; top:10%; left:20%; width:60%; height:70%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:8px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 8px 16px rgba(0,0,0,0.6); }
.scn-ab .sea-view { position:absolute; top:12%; left:22%; width:56%; height:66%; background: linear-gradient(180deg, #1a2a4e 0%, #2a3a5e 50%, #1a2a3e 100%); border-radius:4px; overflow:hidden; animation: ab-sea 20s ease-in-out infinite alternate; }
.scn-ab .curtain-left { position:absolute; top:10%; left:18%; width:12%; height:70%; background: linear-gradient(90deg, #2a2a3e 0%, #1a1a2e 100%); border-radius:0 40% 40% 0; transform-origin: left center; animation: ab-curtain 15s ease-in-out infinite alternate; }
.scn-ab .curtain-right { position:absolute; top:10%; right:18%; width:12%; height:70%; background: linear-gradient(270deg, #2a2a3e 0%, #1a1a2e 100%); border-radius:40% 0 0 40%; transform-origin: right center; animation: ab-curtain 15s ease-in-out infinite alternate-reverse; }
.scn-ab .figure { position:absolute; bottom:16%; left:45%; width:8%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 100%); border-radius:50% 50% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ab-figure-walk 8s ease-in-out infinite; }
.scn-ab .floor { position:absolute; bottom:8%; left:10%; width:80%; height:6%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 100%); border-radius:4px; }
@keyframes ab-sea { 0% { opacity:0.7; background-position: 0% 0%; } 50% { opacity:0.8; background-position: 0% 20%; } 100% { opacity:0.7; background-position: 0% 0%; } }
@keyframes ab-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.92); } 100% { transform: scaleX(1); } }
@keyframes ab-figure-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* after-bathing-body */

.scn-bb { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 70%, #f5deb3 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 60%); }
.scn-bb .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 60%, #f0e68c 100%); }
.scn-bb .sun { position:absolute; top:10%; left:70%; width:10%; height:10%; background: radial-gradient(circle, #fff8dc 0%, #ffd700 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(255,215,0,0.4); animation: bb-sun 6s ease-in-out infinite alternate; }
.scn-bb .rays { position:absolute; top:10%; left:70%; width:20%; height:30%; background: linear-gradient(135deg, transparent 0%, rgba(255,255,200,0.2) 50%, transparent 100%); transform:translate(-50%,-50%) rotate(45deg); animation: bb-rays 10s linear infinite; }
.scn-bb .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #7cfc00 0%, #228b22 100%); border-radius: 80% 80% 0 0 / 60% 60% 0 0; }
.scn-bb .figure { position:absolute; bottom:30%; left:40%; width:12%; height:40%; background: linear-gradient(180deg, #deb887 0%, #8b4513 100%); border-radius:50% 50% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bb-figure 8s ease-in-out infinite; }
.scn-bb .towel { position:absolute; bottom:32%; left:55%; width:10%; height:15%; background: linear-gradient(180deg, #fafad2 0%, #f0e68c 100%); border-radius:20% 20% 10% 10%; transform:rotate(-20deg); transform-origin: top center; animation: bb-towel 4s ease-in-out infinite alternate; }
.scn-bb .grass1 { position:absolute; bottom:50%; left:10%; width:4%; height:15%; background: linear-gradient(180deg, #228b22 0%, #006400 100%); border-radius:0 0 50% 50%; transform:rotate(10deg); animation: bb-grass 3s ease-in-out infinite alternate; }
.scn-bb .grass2 { position:absolute; bottom:50%; left:20%; width:3%; height:12%; background: linear-gradient(180deg, #228b22 0%, #006400 100%); border-radius:0 0 50% 50%; transform:rotate(-15deg); animation: bb-grass 4s ease-in-out infinite alternate-reverse; }
@keyframes bb-sun { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(0.95); opacity:0.8; } }
@keyframes bb-rays { 0% { transform: translate(-50%,-50%) rotate(0deg); } 100% { transform: translate(-50%,-50%) rotate(360deg); } }
@keyframes bb-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bb-towel { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes bb-grass { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(15deg) scaleY(1.05); } 100% { transform: rotate(10deg) scaleY(1); } }

/* after-bathing-variants */

.scn-bv { background: linear-gradient(180deg, #2a1f1a 0%, #3a2a1f 40%, #1f1410 100%), radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 70%); }
.scn-bv .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1f1410 0%, #2a1f1a 50%, #140e0a 100%); }
.scn-bv .bookshelf { position:absolute; top:10%; left:5%; width:20%; height:70%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-bv .desk { position:absolute; bottom:15%; left:30%; width:50%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-bv .lamp { position:absolute; bottom:20%; left:60%; width:4%; height:25%; background: linear-gradient(180deg, #c8a070 0%, #8a6030 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 10px 2px rgba(200,160,80,0.3); animation: bv-lamp 3s ease-in-out infinite alternate; }
.scn-bv .manuscript { position:absolute; bottom:18%; left:35%; width:25%; height:5%; background: linear-gradient(180deg, #c8b898 0%, #a08868 100%); border-radius:2px; box-shadow: 2px 2px 4px rgba(0,0,0,0.4); animation: bv-manuscript 8s ease-in-out infinite alternate; }
.scn-bv .chair { position:absolute; bottom:14%; left:42%; width:16%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:40% 40% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-bv .lamp-glow { position:absolute; bottom:42%; left:60%; width:12%; height:12%; transform:translate(-50%,0); background: radial-gradient(circle, #f0c060 0%, #e0a040 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(240,192,96,0.4); animation: bv-glow 2s ease-in-out infinite alternate; }
@keyframes bv-lamp { 0% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(0.98); opacity:1; } 100% { transform: scaleY(1); opacity:0.9; } }
@keyframes bv-manuscript { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bv-glow { 0% { transform: translate(-50%,0) scale(1); opacity:0.7; } 50% { transform: translate(-50%,0) scale(1.1); opacity:1; } 100% { transform: translate(-50%,0) scale(0.95); opacity:0.8; } }

/* striplings-war-song — eager, bright-interior */

.scn-striplings-war-song {
  background: linear-gradient(135deg, #3a2a1a 0%, #5a3a2a 40%, #7a5a3a 100%), radial-gradient(ellipse at 70% 50%, #c8a060 0%, transparent 60%);
}
.scn-striplings-war-song .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); opacity: .7;
}
.scn-striplings-war-song .window-frame {
  position: absolute; top: 12%; right: 15%; width: 100px; height: 130px; background: #2a1a0a; border: 6px solid #4a3a2a; border-radius: 4px; box-shadow: inset 0 0 0 2px #6a5a4a, 0 4px 12px rgba(0,0,0,.5); transform: perspective(400px) rotateY(-2deg);
}
.scn-striplings-war-song .window-light {
  position: absolute; top: 14%; right: 17%; width: 80px; height: 110px; background: radial-gradient(ellipse at 50% 40%, #f0d8a0 0%, #d0b060 60%, transparent 100%); box-shadow: 0 0 40px 20px rgba(240,216,160,.35), 0 0 80px 40px rgba(240,216,160,.15); animation: sws-glow 4s ease-in-out infinite alternate;
}
.scn-striplings-war-song .sabre-wall {
  position: absolute; left: 35%; top: 20%; width: 60px; height: 8px; background: linear-gradient(90deg, #a0a0b0 0%, #c8c8c8 40%, #a0a0b0 100%); border-radius: 2px; transform: rotate(-30deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: sws-sabre 6s ease-in-out infinite;
}
.scn-striplings-war-song .youth-body {
  position: absolute; bottom: 18%; left: 28%; width: 36px; height: 60px; background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sws-youth-body 5s ease-in-out infinite;
}
.scn-striplings-war-song .youth-arm {
  position: absolute; bottom: 32%; left: 32%; width: 40px; height: 6px; background: #3a4a2a; border-radius: 4px; transform-origin: 0% 50%; transform: rotate(-60deg); animation: sws-youth-arm 5s ease-in-out infinite;
}
.scn-striplings-war-song .youth-face {
  position: absolute; bottom: 54%; left: 27%; width: 18px; height: 22px; background: #d0b890; border-radius: 50% 50% 45% 45% / 55% 55% 40% 40%; filter: drop-shadow(1px 1px 2px rgba(0,0,0,.3)); animation: sws-youth-face 5s ease-in-out infinite;
}
.scn-striplings-war-song .warrior-shadow {
  position: absolute; bottom: 15%; right: 25%; width: 60px; height: 90px; background: linear-gradient(180deg, rgba(30,20,10,.6) 0%, rgba(30,20,10,.2) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(4px); animation: sws-shadow 8s ease-in-out infinite alternate;
}
.scn-striplings-war-song .dust-motes {
  position: absolute; inset: 0; background: radial-gradient(2px 2px at 20% 30%, rgba(255,220,160,.6) 0%, transparent 100%), radial-gradient(2px 2px at 60% 20%, rgba(255,220,160,.5) 0%, transparent 100%), radial-gradient(1px 1px at 40% 60%, rgba(255,220,160,.4) 0%, transparent 100%), radial-gradient(2px 2px at 80% 50%, rgba(255,220,160,.3) 0%, transparent 100%); background-size: 100% 100%; animation: sws-dust 12s ease-in-out infinite alternate;
}

@keyframes sws-glow { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.04); } 100% { opacity: .8; transform: scale(.98); } }
@keyframes sws-sabre { 0%,100% { transform: rotate(-30deg); } 50% { transform: rotate(-25deg) translateY(-2px); } }
@keyframes sws-youth-body { 0%,100% { transform: translate(0,0) rotate(0deg); } 30% { transform: translate(4px,-4px) rotate(2deg); } 70% { transform: translate(-2px,-2px) rotate(-1deg); } }
@keyframes sws-youth-arm { 0%,100% { transform: rotate(-60deg); } 30% { transform: rotate(-50deg) translateX(2px); } 70% { transform: rotate(-70deg) translateX(-2px); } }
@keyframes sws-youth-face { 0%,100% { transform: translate(0,0) rotate(0deg); } 30% { transform: translate(2px,-1px) rotate(2deg); } 70% { transform: translate(-1px,0) rotate(-1deg); } }
@keyframes sws-shadow { 0% { opacity: .5; transform: scale(1); } 50% { opacity: .8; transform: scale(1.05); } 100% { opacity: .4; transform: scale(.95); } }
@keyframes sws-dust { 0% { opacity: .3; transform: translateY(0); } 50% { opacity: .7; transform: translateY(-10px); } 100% { opacity: .2; transform: translateY(5px); } }

/* playful-battle-dreams — proud, dim-interior */

.scn-playful-battle-dreams {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 70%, #3a3a5a 0%, transparent 70%);
}
.scn-playful-battle-dreams .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); opacity: .8;
}
.scn-playful-battle-dreams .toy-soldier {
  position: absolute; bottom: 25%; left: 25%; width: 14px; height: 28px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 25% 25% / 40% 40% 30% 30%; transform-origin: bottom center; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: pbd-soldier 4s ease-in-out infinite;
}
.scn-playful-battle-dreams .toy-soldier2 {
  position: absolute; bottom: 25%; left: 35%; width: 14px; height: 28px; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 30% 30% 25% 25% / 40% 40% 30% 30%; transform-origin: bottom center; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: pbd-soldier2 3.5s ease-in-out infinite;
}
.scn-playful-battle-dreams .toy-trumpet {
  position: absolute; bottom: 40%; left: 30%; width: 30px; height: 4px; background: linear-gradient(90deg, #b0a060 0%, #c8b870 40%, #b0a060 100%); border-radius: 2px; transform: rotate(20deg); transform-origin: 0% 50%; box-shadow: 0 1px 3px rgba(0,0,0,.4); animation: pbd-trumpet 5s ease-in-out infinite;
}
.scn-playful-battle-dreams .child-hand {
  position: absolute; bottom: 38%; left: 27%; width: 12px; height: 10px; background: #d0b890; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 50% 100%; animation: pbd-hand 5s ease-in-out infinite;
}
.scn-playful-battle-dreams .child-head {
  position: absolute; bottom: 48%; left: 22%; width: 20px; height: 22px; background: #d0b890; border-radius: 50%; filter: drop-shadow(0 2px 4px rgba(0,0,0,.4)); animation: pbd-head 6s ease-in-out infinite;
}
.scn-playful-battle-dreams .lamp-glow {
  position: absolute; bottom: 30%; right: 20%; width: 8px; height: 8px; background: #f0c060; border-radius: 50%; box-shadow: 0 0 20px 6px rgba(240,192,96,.5), 0 0 40px 12px rgba(240,192,96,.25); animation: pbd-lamp 3s ease-in-out infinite alternate;
}
.scn-playful-battle-dreams .dream-shimmer {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 40%, rgba(200,180,255,.08) 0%, transparent 70%); animation: pbd-shimmer 8s ease-in-out infinite alternate;
}

@keyframes pbd-soldier { 0%,100% { transform: rotate(0deg); } 30% { transform: rotate(-8deg); } 70% { transform: rotate(6deg); } }
@keyframes pbd-soldier2 { 0%,100% { transform: rotate(0deg); } 30% { transform: rotate(10deg); } 70% { transform: rotate(-6deg); } }
@keyframes pbd-trumpet { 0%,100% { transform: rotate(20deg); } 30% { transform: rotate(30deg) translateY(-2px); } 70% { transform: rotate(10deg) translateY(1px); } }
@keyframes pbd-hand { 0%,100% { transform: rotate(0deg); } 30% { transform: rotate(15deg); } 70% { transform: rotate(-5deg); } }
@keyframes pbd-head { 0%,100% { transform: translate(0,0) rotate(0deg); } 30% { transform: translate(2px,-2px) rotate(4deg); } 70% { transform: translate(-1px,1px) rotate(-2deg); } }
@keyframes pbd-lamp { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .7; transform: scale(.95); } }
@keyframes pbd-shimmer { 0% { opacity: .3; } 50% { opacity: .7; } 100% { opacity: .2; } }

/* mock-lance-heath — determined, sunlit */

.scn-mock-lance-heath {
  background: linear-gradient(180deg, #4a7a9a 0%, #7ab0c8 40%, #b0d0d8 70%, #d0c8a0 100%), radial-gradient(ellipse at 60% 20%, #f0e0c0 0%, transparent 60%);
}
.scn-mock-lance-heath .heath-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #8a9a6a 0%, #6a7a4a 50%, #5a6a3a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.2);
}
.scn-mock-lance-heath .heath-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 65%; background: linear-gradient(180deg, #6a9ab0 0%, #8ab8c8 40%, #b0d0d8 100%);
}
.scn-mock-lance-heath .sun-glare {
  position: absolute; top: 15%; right: 20%; width: 60px; height: 60px; background: radial-gradient(circle, #fff8e0 0%, #f0d8a0 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 80px 40px rgba(240,216,160,.4); animation: mlh-sun 10s ease-in-out infinite alternate;
}
.scn-mock-lance-heath .lone-figure {
  position: absolute; bottom: 32%; left: 45%; width: 24px; height: 50px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 40% 40% 35% 35% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: mlh-figure 6s ease-in-out infinite;
}
.scn-mock-lance-heath .make-lance {
  position: absolute; bottom: 38%; left: 47%; width: 60px; height: 3px; background: linear-gradient(90deg, #5a4a2a 0%, #7a6a4a 40%, #5a4a2a 100%); border-radius: 2px; transform: rotate(-15deg); transform-origin: 0% 50%; box-shadow: 0 1px 2px rgba(0,0,0,.3); animation: mlh-lance 6s ease-in-out infinite;
}
.scn-mock-lance-heath .heath-grass-left {
  position: absolute; bottom: 30%; left: 10%; width: 120px; height: 8px; background: linear-gradient(90deg, #6a7a4a 0%, #8a9a5a 50%, transparent 100%); border-radius: 50%; filter: blur(2px); transform: rotate(-5deg); animation: mlh-grass 8s ease-in-out infinite alternate;
}
.scn-mock-lance-heath .heath-grass-right {
  position: absolute; bottom: 28%; right: 8%; width: 100px; height: 6px; background: linear-gradient(270deg, #5a6a3a 0%, #7a8a4a 50%, transparent 100%); border-radius: 50%; filter: blur(2px); transform: rotate(5deg); animation: mlh-grass2 10s ease-in-out infinite alternate;
}
.scn-mock-lance-heath .wind-sweep {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 60% 30%, rgba(255,240,200,.08) 0%, transparent 60%); animation: mlh-wind 15s ease-in-out infinite alternate;
}

@keyframes mlh-sun { 0% { opacity: .7; transform: scale(1) translate(0,0); } 50% { opacity: 1; transform: scale(1.05) translate(-5px,3px); } 100% { opacity: .8; transform: scale(.98) translate(3px,-2px); } }
@keyframes mlh-figure { 0%,100% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(6px,-3px) rotate(3deg); } 50% { transform: translate(0,-2px) rotate(-2deg); } 75% { transform: translate(-4px,-1px) rotate(1deg); } }
@keyframes mlh-lance { 0%,100% { transform: rotate(-15deg); } 25% { transform: rotate(-10deg) translateX(2px); } 50% { transform: rotate(-20deg) translateX(-2px); } 75% { transform: rotate(-12deg) translateX(1px); } }
@keyframes mlh-grass { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(10px); } 100% { transform: rotate(-3deg) translateX(-5px); } }
@keyframes mlh-grass2 { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(8deg) translateX(-8px); } 100% { transform: rotate(3deg) translateX(4px); } }
@keyframes mlh-wind { 0% { opacity: .2; } 50% { opacity: .5; } 100% { opacity: .1; } }

/* sabre-forefathers-fight — resolute, bright-sun */

.scn-sabre-forefathers-fight {
  background: linear-gradient(180deg, #5a8a9a 0%, #8ab8c0 30%, #b0d0c8 60%, #c8b880 100%), radial-gradient(ellipse at 40% 20%, #f0e8c0 0%, transparent 70%);
}
.scn-sabre-forefathers-fight .battle-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 55%; background: linear-gradient(180deg, #5a8a9a 0%, #8ab8c0 50%, #a8c8c8 100%);
}
.scn-sabre-forefathers-fight .sunburst {
  position: absolute; top: 10%; left: 20%; width: 80px; height: 80px; background: radial-gradient(circle, #fff8d0 0%, #f0d8a0 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 100px 50px rgba(240,216,160,.35); animation: sff-sun 8s ease-in-out infinite alternate;
}
.scn-sabre-forefathers-fight .field-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #8a9a5a 0%, #6a7a3a 50%, #4a5a2a 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.25);
}
.scn-sabre-forefathers-fight .hero-body {
  position: absolute; bottom: 28%; left: 45%; width: 30px; height: 60px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: sff-hero 5s ease-in-out infinite;
}
.scn-sabre-forefathers-fight .hero-sabre {
  position: absolute; bottom: 48%; left: 50%; width: 50px; height: 4px; background: linear-gradient(90deg, #c8c8d0 0%, #e8e8f0 40%, #a0a0b0 100%); border-radius: 2px; transform: rotate(-40deg); transform-origin: 0% 50%; box-shadow: 0 0 4px 1px rgba(200,200,220,.4); animation: sff-sabre 5s ease-in-out infinite;
}
.scn-sabre-forefathers-fight .hero-arm {
  position: absolute; bottom: 42%; left: 48%; width: 22px; height: 5px; background: #2a3a2a; border-radius: 3px; transform-origin: 0% 50%; transform: rotate(-30deg); animation: sff-arm 5s ease-in-out infinite;
}
.scn-sabre-forefathers-fight .hero-shadow {
  position: absolute; bottom: 24%; left: 42%; width: 40px; height: 10px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); border-radius: 50%; animation: sff-shadow 6s ease-in-out infinite;
}
.scn-sabre-forefathers-fight .dust-stir {
  position: absolute; bottom: 25%; left: 35%; width: 60px; height: 30px; background: radial-gradient(ellipse at 50% 50%, rgba(180,160,120,.15) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: sff-dust 7s ease-in-out infinite alternate;
}

@keyframes sff-sun { 0% { opacity: .8; transform: scale(1) translate(0,0); } 50% { opacity: 1; transform: scale(1.03) translate(3px,-2px); } 100% { opacity: .7; transform: scale(.97) translate(-2px,1px); } }
@keyframes sff-hero { 0%,100% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(3px,-3px) rotate(3deg); } 50% { transform: translate(-2px,-1px) rotate(-2deg); } 75% { transform: translate(1px,-2px) rotate(1deg); } }
@keyframes sff-sabre { 0%,100% { transform: rotate(-40deg); } 25% { transform: rotate(-35deg) translateY(-2px); } 50% { transform: rotate(-50deg) translateY(1px); } 75% { transform: rotate(-42deg) translateY(-1px); } }
@keyframes sff-arm { 0%,100% { transform: rotate(-30deg); } 25% { transform: rotate(-25deg); } 50% { transform: rotate(-40deg); } 75% { transform: rotate(-32deg); } }
@keyframes sff-shadow { 0% { opacity: .4; transform: scaleX(1); } 50% { opacity: .7; transform: scaleX(1.1); } 100% { opacity: .3; transform: scaleX(.9); } }
@keyframes sff-dust { 0% { opacity: .2; transform: translate(0,0) scale(1); } 50% { opacity: .4; transform: translate(8px,-5px) scale(1.2); } 100% { opacity: .1; transform: translate(-4px,2px) scale(.8); } }

/* editorial-not-at-home – calm dim interior with warm browns */

.scn-editorial-not-at-home {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #1a1410 60%, #0d0805 100%),
    radial-gradient(ellipse 50% 20% at 50% 80%, #3a2a1a 0%, transparent 80%);
}
.scn-editorial-not-at-home .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #2e241f 0%, #1f1612 100%);
  animation: eah-wall 45s ease-in-out infinite alternate;
}
.scn-editorial-not-at-home .window {
  position: absolute; top: 8%; left: 68%; width: 22%; height: 35%;
  background: linear-gradient(180deg, #3a2e26 0%, #1f1814 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: eah-window 8s ease-in-out infinite alternate;
}
.scn-editorial-not-at-home .desk {
  position: absolute; bottom: 15%; left: 10%; width: 70%; height: 18%;
  background: linear-gradient(180deg, #4a382e 0%, #2a1e18 100%);
  border-radius: 2px; box-shadow: 0 6px 20px rgba(0,0,0,0.5);
}
.scn-editorial-not-at-home .chair {
  position: absolute; bottom: 13%; left: 60%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #3a2e26 0%, #211913 100%);
  border-radius: 4px 4px 2px 2px; transform: rotate(-1deg);
  animation: eah-chair 6s ease-in-out infinite;
}
.scn-editorial-not-at-home .candle {
  position: absolute; bottom: 28%; left: 20%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #e8c080 0%, #b08040 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: inset 0 2px 4px rgba(0,0,0,0.4);
  animation: eah-candle 2s ease-in-out infinite alternate;
}
.scn-editorial-not-at-home .glow {
  position: absolute; bottom: 25%; left: 18%; width: 12%; height: 20%;
  background: radial-gradient(circle, #e0b060 0%, transparent 70%);
  border-radius: 50%; filter: blur(6px);
  animation: eah-glow 3s ease-in-out infinite alternate;
}
@keyframes eah-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes eah-window { 0% { background: linear-gradient(180deg, #3a2e26 0%, #1f1814 100%); } 100% { background: linear-gradient(180deg, #4a3a30 0%, #2a221c 100%); } }
@keyframes eah-chair { 0%,100% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } }
@keyframes eah-candle { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.05) scaleX(0.95); } 100% { transform: scaleY(0.95) scaleX(1.02); } }
@keyframes eah-glow { 0% { opacity: 0.6; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1.1); } }

/* phantom-or-fact – dark moonlit bedroom with ghostly figure */

.scn-phantom-or-fact {
  background: linear-gradient(180deg, #0e0a1a 0%, #1a142a 50%, #0e0a1a 100%),
    radial-gradient(ellipse 60% 30% at 50% 20%, #2a2044 0%, transparent 70%);
}
.scn-phantom-or-fact .room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #16122a 0%, #0e0c1e 100%);
  animation: pof-room 30s ease-in-out infinite alternate;
}
.scn-phantom-or-fact .bed {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #2a2440 0%, #1a1630 100%);
  border-radius: 8px; box-shadow: 0 8px 30px rgba(0,0,0,0.6);
}
.scn-phantom-or-fact .blanket {
  position: absolute; bottom: 12%; left: 14%; width: 72%; height: 22%;
  background: linear-gradient(180deg, #3a3050 0%, #1e1a36 100%);
  border-radius: 30% 30% 10% 10%; transform: rotate(-1deg);
  animation: pof-blanket 9s ease-in-out infinite alternate;
}
.scn-phantom-or-fact .figure {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, rgba(220,220,255,0.3) 0%, rgba(180,180,240,0.1) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px); transform-origin: bottom center;
  animation: pof-figure 4s ease-in-out infinite alternate;
}
.scn-phantom-or-fact .window {
  position: absolute; top: 5%; right: 8%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #1a1a30 0%, #0e0e20 100%);
  border-radius: 4px; box-shadow: inset 0 0 40px rgba(180,180,255,0.1);
}
.scn-phantom-or-fact .moon {
  position: absolute; top: 8%; right: 15%; width: 12%; height: 12%;
  background: radial-gradient(circle, #e8e8ff 0%, #c0c0ee 40%, transparent 70%);
  border-radius: 50%; filter: blur(2px);
  animation: pof-moon 8s ease-in-out infinite alternate;
}
.scn-phantom-or-fact .curtain {
  position: absolute; top: 0; right: 0; width: 20%; height: 50%;
  background: linear-gradient(180deg, #1a1a30 0%, #0e0e20 100%);
  border-radius: 30% 0 0 30%; filter: blur(1px);
  animation: pof-curtain 12s ease-in-out infinite alternate;
}
@keyframes pof-room { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes pof-blanket { 0% { transform: rotate(-1deg) translateY(0); } 100% { transform: rotate(-1deg) translateY(3px); } }
@keyframes pof-figure { 0% { transform: translateY(0) rotate(-2deg); opacity: 0.6; } 50% { transform: translateY(-5px) rotate(2deg); opacity: 0.9; } 100% { transform: translateY(0) rotate(-2deg); opacity: 0.5; } }
@keyframes pof-moon { 0% { background: radial-gradient(circle, #e8e8ff 0%, #c0c0ee 40%, transparent 70%); } 100% { background: radial-gradient(circle, #ffffff 0%, #d0d0ff 30%, transparent 70%); } }
@keyframes pof-curtain { 0% { transform: translateX(0); } 100% { transform: translateX(-10px); } }

/* riddle-question – mysterious study with reading figure */

.scn-riddle-question {
  background: linear-gradient(180deg, #1f1a14 0%, #130f0c 50%, #0a0806 100%),
    radial-gradient(ellipse 50% 15% at 50% 70%, #2a221c 0%, transparent 80%);
}
.scn-riddle-question .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a221c 0%, #1a1410 100%);
}
.scn-riddle-question .desk {
  position: absolute; bottom: 12%; left: 5%; width: 90%; height: 20%;
  background: linear-gradient(180deg, #3a2e26 0%, #1f1814 100%);
  border-radius: 2px; box-shadow: 0 6px 20px rgba(0,0,0,0.6);
}
.scn-riddle-question .books {
  position: absolute; bottom: 28%; left: 10%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%);
  border-radius: 2px; transform: rotate(0.5deg);
  animation: rid-books 20s ease-in-out infinite alternate;
}
.scn-riddle-question .candle {
  position: absolute; bottom: 30%; left: 30%; width: 4%; height: 14%;
  background: linear-gradient(180deg, #d0a050 0%, #a08030 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: inset 0 2px 4px rgba(0,0,0,0.4);
  animation: rid-candle 3s ease-in-out infinite alternate;
}
.scn-riddle-question .profile {
  position: absolute; bottom: 20%; left: 50%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #2a221c 0%, #0f0c0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rid-profile 5s ease-in-out infinite alternate;
}
.scn-riddle-question .shadow {
  position: absolute; bottom: 12%; left: 45%; width: 25%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: rid-shadow 7s ease-in-out infinite alternate;
}
@keyframes rid-books { 0% { transform: rotate(0.5deg) scaleX(1); } 100% { transform: rotate(0.5deg) scaleX(0.98); } }
@keyframes rid-candle { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.06) scaleX(0.94); } 100% { transform: scaleY(0.95) scaleX(1.03); } }
@keyframes rid-profile { 0% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-3px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes rid-shadow { 0% { opacity: 0.5; transform: scale(1); } 100% { opacity: 1; transform: scale(1.2); } }

/* desire-poem – warm firelit scene with two silhouettes */

.scn-desire-poem {
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e06 40%, #0d0603 100%),
    radial-gradient(ellipse 80% 40% at 50% 90%, #5a2a10 0%, transparent 70%);
}
.scn-desire-poem .hearth {
  position: absolute; bottom: 5%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #3a1e0e 0%, #1a0e06 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.7);
}
.scn-desire-poem .fire {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #b04020 40%, transparent 70%);
  border-radius: 50% 50% 20% 20%;
  animation: des-fire 1.5s ease-in-out infinite alternate;
}
.scn-desire-poem .mantel {
  position: absolute; bottom: 35%; left: 15%; width: 70%; height: 6%;
  background: linear-gradient(180deg, #4a2a16 0%, #2a160a 100%);
  border-radius: 2px;
}
.scn-desire-poem .figure1 {
  position: absolute; bottom: 25%; left: 25%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: des-fig1 5s ease-in-out infinite alternate;
}
.scn-desire-poem .figure2 {
  position: absolute; bottom: 25%; right: 25%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: des-fig2 6s ease-in-out infinite alternate;
  animation-delay: -1s;
}
.scn-desire-poem .glow {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 50%;
  background: radial-gradient(ellipse, #ff8040 0%, transparent 60%);
  filter: blur(12px); border-radius: 50%;
  animation: des-glow 3s ease-in-out infinite alternate;
}
@keyframes des-fire { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9; } 50% { transform: scaleY(1.1) scaleX(0.95); opacity: 1; } 100% { transform: scaleY(0.9) scaleX(1.05); opacity: 0.85; } }
@keyframes des-fig1 { 0% { transform: rotate(-2deg) translateY(0); } 100% { transform: rotate(2deg) translateY(-4px); } }
@keyframes des-fig2 { 0% { transform: rotate(2deg) translateY(0); } 100% { transform: rotate(-2deg) translateY(-3px); } }
@keyframes des-glow { 0% { opacity: 0.5; transform: scale(0.9); } 100% { opacity: 0.8; transform: scale(1.1); } }

.scn-delinquent-travellers-smugglers {
  background: linear-gradient(180deg, #7a7f8a 0%, #5a5f6a 40%, #3a3f4a 100%),
              radial-gradient(ellipse at 50% 100%, #5a5f6a 0%, transparent 60%);
}
.scn-delinquent-travellers-smugglers .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #8a8f9a 0%, #6a6f7a 100%); animation: dts-sky 20s ease-in-out infinite alternate; }
.scn-delinquent-travellers-smugglers .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #4a4f5a 0%, #2a2f3a 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.3); }
.scn-delinquent-travellers-smugglers .boat { position:absolute; bottom:42%; left:35%; width:20%; height:8%; background: linear-gradient(90deg, #3a2f2a 0%, #5a4f4a 50%, #3a2f2a 100%); border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: dts-boat 4s ease-in-out infinite; }
.scn-delinquent-travellers-smugglers .mast { position:absolute; bottom:50%; left:50%; width:2%; height:18%; transform:translateX(-50%); background: linear-gradient(90deg, #2a201a, #4a3f3a); border-radius: 2px; }
.scn-delinquent-travellers-smugglers .sail { position:absolute; bottom:50%; left:46%; width:10%; height:15%; background: radial-gradient(ellipse at 50% 40%, #dad4ce 0%, #b8b0a8 70%); clip-path: polygon(0 0, 100% 30%, 100% 100%, 0 80%); animation: dts-sail 6s ease-in-out infinite; }
.scn-delinquent-travellers-smugglers .figures { position:absolute; bottom:44%; left:37%; width:14%; height:6%; background: radial-gradient(circle at 30% 50%, #2a201a 20%, transparent 20%), radial-gradient(circle at 60% 50%, #2a201a 20%, transparent 20%), radial-gradient(circle at 85% 50%, #2a201a 20%, transparent 20%); background-size: 25% 100%; background-repeat: no-repeat; background-position: 18% 0, 50% 0, 76% 0; animation: dts-figures 3s ease-in-out infinite; }
.scn-delinquent-travellers-smugglers .wave-a { position:absolute; bottom:30%; left:-10%; width:120%; height:12%; background: linear-gradient(180deg, rgba(74,79,90,.6) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: dts-wave-a 8s linear infinite; }
.scn-delinquent-travellers-smugglers .wave-b { position:absolute; bottom:20%; left:-5%; width:110%; height:10%; background: linear-gradient(180deg, rgba(74,79,90,.4) 0%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: dts-wave-b 12s linear infinite reverse; }
@keyframes dts-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes dts-boat { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes dts-sail { 0% { clip-path: polygon(0 0, 100% 30%, 100% 100%, 0 80%) } 50% { clip-path: polygon(0 0, 100% 40%, 100% 100%, 0 90%) } 100% { clip-path: polygon(0 0, 100% 30%, 100% 100%, 0 80%) } }
@keyframes dts-figures { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dts-wave-a { 0% { transform: translateX(0) } 100% { transform: translateX(50%) } }
@keyframes dts-wave-b { 0% { transform: translateX(0) } 100% { transform: translateX(-30%) } }

.scn-delinquent-travellers-new-life {
  background: linear-gradient(180deg, #2a1e14 0%, #3d2d1f 50%, #1f140c 100%),
              radial-gradient(ellipse at 50% 80%, #4d3b2a 0%, transparent 60%);
}
.scn-delinquent-travellers-new-life .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3d2d1f 0%, #2a1e14 100%); }
.scn-delinquent-travellers-new-life .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1f140c 0%, #0f0a06 100%); }
.scn-delinquent-travellers-new-life .window { position:absolute; top:15%; left:10%; width:35%; height:45%; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); border-radius: 8px 8px 4px 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.6); }
.scn-delinquent-travellers-new-life .mountains { position:absolute; top:25%; left:12%; width:31%; height:25%; background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%); clip-path: polygon(0 100%, 15% 40%, 30% 60%, 50% 20%, 70% 50%, 85% 30%, 100% 100%); opacity:.6; animation: dtn-mountains 20s ease-in-out infinite alternate; }
.scn-delinquent-travellers-new-life .table { position:absolute; bottom:20%; left:50%; width:40%; height:12%; transform:translateX(-50%); background: linear-gradient(180deg, #4a3525 0%, #2a1a0f 100%); border-radius: 10px; box-shadow: 0 8px 16px rgba(0,0,0,.7); }
.scn-delinquent-travellers-new-life .figure { position:absolute; bottom:26%; left:60%; width:12%; height:20%; background: linear-gradient(180deg, #2a201a 0%, #0f0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dtn-figure 4s ease-in-out infinite; }
.scn-delinquent-travellers-new-life .pineapple { position:absolute; bottom:24%; left:38%; width:8%; height:12%; background: radial-gradient(ellipse at 50% 40%, #c8a040 0%, #8a7020 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 12px 4px rgba(200,160,64,.3); }
.scn-delinquent-travellers-new-life .candle { position:absolute; bottom:32%; left:35%; width:2%; height:14%; background: linear-gradient(180deg, #f0dbb0 0%, #c8a060 80%, #5a3a1a 100%); border-radius: 2px; animation: dtn-candle 3s ease-in-out infinite alternate; }
@keyframes dtn-mountains { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes dtn-figure { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dtn-candle { 0% { box-shadow: 0 0 10px 2px #f0dbb0, 0 0 20px 6px rgba(240,219,176,.3); opacity:.8 } 50% { box-shadow: 0 0 18px 6px #fadc80, 0 0 36px 12px rgba(250,220,128,.4); opacity:1 } 100% { box-shadow: 0 0 10px 2px #f0dbb0, 0 0 20px 6px rgba(240,219,176,.3); opacity:.8 } }

.scn-work-without-hope {
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 40%, #1a1a1a 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a2a 0%, transparent 70%);
}
.scn-work-without-hope .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #4a4a4a 0%, #3a3a3a 100%); animation: woh-sky 25s ease-in-out infinite alternate; }
.scn-work-without-hope .ground { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #2e3a2e 0%, #1a221a 100%); }
.scn-work-without-hope .tree { position:absolute; bottom:45%; left:20%; width:2%; height:30%; background: linear-gradient(180deg, #1a1a1a, #0a0a0a); border-radius: 2px; transform-origin: bottom; animation: woh-tree 30s ease-in-out infinite; }
.scn-work-without-hope .figure-seated { position:absolute; bottom:20%; left:50%; width:14%; height:20%; transform:translateX(-50%); background: linear-gradient(180deg, #2a1e1e 0%, #0f0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; clip-path: polygon(0 0, 100% 0, 100% 90%, 50% 100%, 0 90%); animation: woh-figure 6s ease-in-out infinite; }
.scn-work-without-hope .bee-swarm { position:absolute; top:30%; left:40%; width:8%; height:8%; background: radial-gradient(circle, #3a3020 10%, transparent 10%), radial-gradient(circle at 30% 40%, #3a3020 8%, transparent 8%), radial-gradient(circle at 70% 60%, #3a3020 6%, transparent 6%); background-size: 30% 30%; background-repeat: no-repeat; animation: woh-bees 8s ease-in-out infinite alternate; }
.scn-work-without-hope .slug { position:absolute; bottom:25%; left:30%; width:10%; height:4%; background: linear-gradient(90deg, #4a3a2a, #6a5a4a); border-radius: 60% 60% 40% 40%; opacity:.5; animation: woh-slug 15s linear infinite; }
@keyframes woh-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes woh-tree { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes woh-figure { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes woh-bees { 0% { transform: translate(0, 0) scale(1) } 50% { transform: translate(10px, -5px) scale(1.1) } 100% { transform: translate(20px, 0) scale(1) } }
@keyframes woh-slug { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(15px) scaleX(1.2) } 100% { transform: translateX(0) scaleX(1) } }

.scn-work-without-hope-editorial {
  background: linear-gradient(90deg, #1a1412 0%, #2a221e 50%, #1a1412 100%),
              radial-gradient(ellipse at 50% 40%, #2a221e 0%, transparent 80%);
}
.scn-work-without-hope-editorial .deep-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a221e 0%, #1a1412 100%); }
.scn-work-without-hope-editorial .desk { position:absolute; bottom:15%; left:10%; width:80%; height:10%; background: linear-gradient(180deg, #3a2a1e 0%, #1f140c 100%); border-radius: 6px; box-shadow: 0 6px 12px rgba(0,0,0,.7); }
.scn-work-without-hope-editorial .paper { position:absolute; bottom:22%; left:25%; width:30%; height:15%; background: linear-gradient(180deg, #d8ceb8 0%, #b8ae98 100%); transform: rotate(-2deg); box-shadow: 2px 2px 6px rgba(0,0,0,.4); }
.scn-work-without-hope-editorial .inkwell { position:absolute; bottom:26%; left:70%; width:4%; height:6%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-work-without-hope-editorial .candle { position:absolute; bottom:30%; left:15%; width:3%; height:12%; background: linear-gradient(180deg, #e8d0a0 0%, #b09060 80%, #3a2a1a 100%); border-radius: 2px; animation: woh-ed-candle 3s ease-in-out infinite alternate; }
.scn-work-without-hope-editorial .writer { position:absolute; bottom:12%; left:22%; width:16%; height:20%; background: linear-gradient(180deg, #2a1a1a 0%, #0f0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: woh-ed-writer 5s ease-in-out infinite; }
.scn-work-without-hope-editorial .quill { position:absolute; bottom:20%; left:35%; width: 1.5%; height:14%; background: linear-gradient(180deg, #b8a890 0%, #7a6e60 100%); transform: rotate(20deg); border-radius: 50% 50% 10% 10%; }
.scn-work-without-hope-editorial .shadow-vignette { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(0,0,0,.6) 100%); pointer-events:none; animation: woh-ed-vignette 10s ease-in-out infinite alternate; }
@keyframes woh-ed-candle { 0% { box-shadow: 0 0 8px 2px #e8d0a0, 0 0 16px 6px rgba(232,208,160,.3); opacity:.7 } 50% { box-shadow: 0 0 14px 4px #f0d890, 0 0 28px 10px rgba(240,216,144,.4); opacity:1 } 100% { box-shadow: 0 0 8px 2px #e8d0a0, 0 0 16px 6px rgba(232,208,160,.3); opacity:.7 } }
@keyframes woh-ed-writer { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes woh-ed-vignette { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.6 } }

.scn-cashmere-cave-ice {
  background: linear-gradient(180deg, #2a3a4a 0%, #3a4a5a 60%, #4a5a6a 100%),
              radial-gradient(ellipse at 60% 40%, #6a8aaa 0%, transparent 70%);
}
.scn-cashmere-cave-ice .cave-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a4a5a 0%, #4a5a6a 50%, #2a3a4a 100%);
  animation: ci-breathe 12s ease-in-out infinite alternate;
}
.scn-cashmere-cave-ice .ice-pillar {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 120px; transform: translateX(-50%);
  background: linear-gradient(180deg, #d0e8f0 0%, #b8d0e0 50%, #90b0c0 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.2), 0 0 40px 10px rgba(180,220,240,0.5);
  animation: ci-glint 6s ease-in-out infinite;
}
.scn-cashmere-cave-ice .stalactite {
  position: absolute; top: 0; width: 30px; height: 80px;
  background: linear-gradient(180deg, #c0d8e8 0%, #90b0c0 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-cashmere-cave-ice .stalactite.left { left: 25%; transform: rotate(5deg); animation: ci-drip 8s ease-in-out infinite; }
.scn-cashmere-cave-ice .stalactite.right { right: 25%; transform: rotate(-5deg); animation: ci-drip 10s ease-in-out infinite; }
.scn-cashmere-cave-ice .cave-glow {
  position: absolute; bottom: 40%; left: 40%; width: 100px; height: 100px;
  background: radial-gradient(circle, #ffecb0 0%, #ffd080 40%, transparent 70%);
  border-radius: 50%; filter: blur(20px); animation: ci-glow 4s ease-in-out infinite alternate;
}
.scn-cashmere-cave-ice .cave-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
@keyframes ci-breathe { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes ci-glint { 0%{box-shadow:0 0 30px 5px rgba(180,220,240,0.4)} 50%{box-shadow:0 0 60px 15px rgba(200,240,255,0.7)} 100%{box-shadow:0 0 20px 5px rgba(180,220,240,0.3)} }
@keyframes ci-drip { 0%{transform:translateY(0) rotate(5deg)} 50%{transform:translateY(8px) rotate(5deg)} 100%{transform:translateY(0) rotate(5deg)} }
@keyframes ci-glow { 0%{opacity:0.6; transform:scale(1)} 50%{opacity:1; transform:scale(1.2)} 100%{opacity:0.7; transform:scale(1)} }

.scn-textual-variants-notes {
  background: linear-gradient(180deg, #d4c8a8 0%, #b8a880 50%, #9a8a6a 100%),
              radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, transparent 80%);
}
.scn-textual-variants-notes .desk-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #c8b898 0%, #b0a080 50%, #9a8a6a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.2);
}
.scn-textual-variants-notes .book-stack {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: tv-settle 10s ease-in-out infinite;
}
.scn-textual-variants-notes .papers {
  position: absolute; bottom: 35%; left: 45%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #f5ecd0 0%, #e5d8b8 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3), inset 0 0 10px rgba(255,255,200,0.3);
  transform: rotate(-5deg); animation: tv-flutter 15s ease-in-out infinite;
}
.scn-textual-variants-notes .lamp {
  position: absolute; bottom: 30%; left: 60%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30%; box-shadow: 0 0 30px 10px rgba(255,220,150,0.6);
  animation: tv-lampflicker 3s ease-in-out infinite alternate;
}
.scn-textual-variants-notes .magnifier {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 40px;
  background: radial-gradient(circle at 50% 30%, #c8e8f0 0%, #90b8c8 60%, #607080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: tv-scan 8s ease-in-out infinite;
}
.scn-textual-variants-notes .inkwell {
  position: absolute; bottom: 28%; left: 70%; width: 20px; height: 25px;
  background: radial-gradient(circle, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: tv-ripple 6s ease-in-out infinite;
}
@keyframes tv-settle { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes tv-flutter { 0%{transform:rotate(-5deg) translateX(0)} 50%{transform:rotate(-3deg) translateX(3px)} 100%{transform:rotate(-5deg) translateX(0)} }
@keyframes tv-lampflicker { 0%{box-shadow:0 0 20px 5px rgba(255,220,150,0.5)} 50%{box-shadow:0 0 40px 15px rgba(255,200,100,0.8)} 100%{box-shadow:0 0 25px 8px rgba(255,220,150,0.6)} }
@keyframes tv-scan { 0%{transform:translateX(0) rotate(0)} 33%{transform:translateX(10px) rotate(5deg)} 66%{transform:translateX(-5px) rotate(-3deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes tv-ripple { 0%{transform:scaleY(1)} 25%{transform:scaleY(0.95)} 50%{transform:scaleY(1.05)} 75%{transform:scaleY(0.98)} 100%{transform:scaleY(1)} }

.scn-recantation-ox-story {
  background: linear-gradient(180deg, #87ceeb 0%, #5ba3d6 50%, #dfe8b0 100%),
              radial-gradient(ellipse at 50% 80%, #f5e6a0 0%, transparent 60%);
}
.scn-recantation-ox-story .sky-field {
  position: absolute; inset: 0; background: linear-gradient(180deg, #aad0f0 0%, #c8e0f0 40%, #e8f0c8 70%, #d0e0a0 100%);
  animation: rs-daycycle 30s ease-in-out infinite alternate;
}
.scn-recantation-ox-story .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a9a4a 0%, #5a7a2a 100%);
  border-radius: 50% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
  animation: rs-sway 18s ease-in-out infinite;
}
.scn-recantation-ox-story .ox-body {
  position: absolute; bottom: 30%; left: 35%; width: 90px; height: 60px;
  background: linear-gradient(180deg, #c8a878 0%, #a8885a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: rs-buck 4s ease-in-out infinite;
}
.scn-recantation-ox-story .ox-head {
  position: absolute; bottom: 45%; left: 40%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #d8b898 0%, #b89070 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: rs-shake 7s ease-in-out infinite;
}
.scn-recantation-ox-story .sun-rays {
  position: absolute; top: 5%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff5b0 0%, #ffe080 40%, transparent 80%);
  border-radius: 50%; filter: blur(8px);
  animation: rs-shine 12s ease-in-out infinite alternate;
}
.scn-recantation-ox-story .flowers {
  position: absolute; bottom: 15%; left: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffcc88 0%, #e8a060 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 10px rgba(255,200,100,0.4);
  animation: rs-bounce 5s ease-in-out infinite alternate;
}
@keyframes rs-daycycle { 0%{opacity:0.9; filter:brightness(1)} 50%{opacity:1; filter:brightness(1.1)} 100%{opacity:0.85; filter:brightness(1)} }
@keyframes rs-sway { 0%{transform:translateY(0)} 30%{transform:translateY(-3px)} 60%{transform:translateY(2px)} 100%{transform:translateY(0)} }
@keyframes rs-buck { 0%{transform:translateY(0) rotate(-2deg)} 20%{transform:translateY(-8px) rotate(3deg)} 40%{transform:translateY(0) rotate(-1deg)} 60%{transform:translateY(-5px) rotate(2deg)} 100%{transform:translateY(0) rotate(-2deg)} }
@keyframes rs-shake { 0%{transform:rotate(0)} 25%{transform:rotate(10deg)} 50%{transform:rotate(-10deg)} 75%{transform:rotate(5deg)} 100%{transform:rotate(0)} }
@keyframes rs-shine { 0%{opacity:0.7; transform:scale(1)} 50%{opacity:1; transform:scale(1.3)} 100%{opacity:0.8; transform:scale(1.1)} }
@keyframes rs-bounce { 0%{transform:translateY(0) scale(1)} 100%{transform:translateY(-6px) scale(1.1)} }

.scn-mob-pursues-ox {
  background: linear-gradient(180deg, #f5d080 0%, #d4a050 30%, #c89040 100%),
              radial-gradient(ellipse at 70% 60%, #f0c070 0%, transparent 80%);
}
.scn-mob-pursues-ox .tense-sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f0d090 0%, #e0b060 60%, #c89040 100%);
  animation: mp-heat 15s ease-in-out infinite alternate;
}
.scn-mob-pursues-ox .ground-dust {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b88850 0%, #9a7040 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: mp-shake 0.5s ease-in-out infinite;
}
.scn-mob-pursues-ox .fleeing-ox {
  position: absolute; bottom: 25%; left: 40%; width: 90px; height: 50px;
  background: linear-gradient(180deg, #b89870 0%, #9a7850 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: mp-run 3s ease-in-out infinite;
}
.scn-mob-pursues-ox .mob-figures {
  position: absolute; bottom: 20%; right: 15%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: mp-chase 4s ease-in-out infinite;
}
.scn-mob-pursues-ox .bull-dog {
  position: absolute; bottom: 28%; right: 25%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: mp-lunge 2s ease-in-out infinite;
}
.scn-mob-pursues-ox .dust-puffs {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 20px;
  background: radial-gradient(circle, rgba(200,160,100,0.6) 0%, transparent 70%);
  border-radius: 50%; filter: blur(4px);
  animation: mp-puff 3s ease-in-out infinite alternate;
}
.scn-mob-pursues-ox .shadow-stroke {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 10%;
  background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 60%);
  animation: mp-strobe 0.8s steps(2) infinite;
}
@keyframes mp-heat { 0%{opacity:0.9; filter:brightness(1)} 50%{opacity:1; filter:brightness(1.2)} 100%{opacity:0.8; filter:brightness(1)} }
@keyframes mp-shake { 0%{transform:translateX(0)} 25%{transform:translateX(-2px)} 75%{transform:translateX(2px)} 100%{transform:translateX(0)} }
@keyframes mp-run { 0%{transform:translateX(0) rotate(-3deg)} 20%{transform:translateX(10px) rotate(2deg)} 40%{transform:translateX(20px) rotate(-2deg)} 60%{transform:translateX(8px) rotate(1deg)} 100%{transform:translateX(0) rotate(-3deg)} }
@keyframes mp-chase { 0%{transform:translateX(0) scale(1)} 50%{transform:translateX(-15px) scale(1.05)} 100%{transform:translateX(0) scale(1)} }
@keyframes mp-lunge { 0%{transform:translateX(0) translateY(0)} 30%{transform:translateX(5px) translateY(-5px)} 60%{transform:translateX(10px) translateY(0)} 100%{transform:translateX(0) translateY(0)} }
@keyframes mp-puff { 0%{opacity:0.3; transform:scale(1)} 100%{opacity:0.8; transform:scale(1.5)} }
@keyframes mp-strobe { 0%{opacity:0.5} 50%{opacity:1} 100%{opacity:0.5} }

/* LESSING NAME QUESTION - playful, bright interior */

.scn-lessing-name-question {
  background: linear-gradient(180deg, #f5edd6 0%, #e8dcc4 40%, #d4b896 100%),
              radial-gradient(ellipse at 40% 30%, #ffeecc 0%, transparent 70%);
}
.scn-lessing-name-question .bg-room {
  position:absolute; inset:0; background: linear-gradient(120deg, rgba(180,140,100,0.15) 0%, transparent 50%, rgba(200,180,150,0.1) 100%);
  animation: lsn-room 20s ease-in-out infinite alternate;
}
.scn-lessing-name-question .window-light {
  position:absolute; top:8%; left:5%; width:45%; height:55%; background: radial-gradient(ellipse at 50% 30%, #fffbe6 0%, transparent 70%);
  border-radius: 30% 70% 40% 60% / 50% 50% 50% 50%; filter: blur(8px); animation: lsn-window 6s ease-in-out infinite alternate;
}
.scn-lessing-name-question .desk {
  position:absolute; bottom:8%; left:20%; width:60%; height:18%; background: linear-gradient(180deg, #b89570 0%, #8a6f4a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.25); animation: lsn-desk 30s ease-in-out infinite;
}
.scn-lessing-name-question .poet {
  position:absolute; bottom:20%; left:45%; width:16%; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lsn-poet 4s ease-in-out infinite alternate;
}
.scn-lessing-name-question .bookshelf {
  position:absolute; top:12%; right:5%; width:20%; height:65%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 2%; box-shadow: inset 0 0 0 4px #5a3a2a; animation: lsn-shelf 12s ease-in-out infinite;
}
.scn-lessing-name-question .lamp-glow {
  position:absolute; bottom:15%; left:30%; width:6%; height:10%; background: radial-gradient(circle, #ffd080 0%, #ffb040 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,208,128,0.5); animation: lsn-lamp 3s ease-in-out infinite alternate;
}
.scn-lessing-name-question .mote-a {
  position:absolute; top:25%; left:10%; width:2%; height:4%; background: rgba(255,235,200,0.6); border-radius: 50%;
  filter: blur(3px); animation: lsn-mote 8s linear infinite;
}
.scn-lessing-name-question .mote-b {
  position:absolute; top:40%; left:60%; width:3%; height:3%; background: rgba(255,235,200,0.5); border-radius: 50%;
  filter: blur(4px); animation: lsn-mote 10s linear infinite reverse;
}
@keyframes lsn-room   { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes lsn-window { 0% { transform: scaleX(0.95) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(0.98) } }
@keyframes lsn-desk   { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes lsn-poet   { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes lsn-shelf  { 0% { box-shadow: inset 0 0 0 4px #5a3a2a } 50% { box-shadow: inset 0 0 0 6px #6a4a3a } 100% { box-shadow: inset 0 0 0 4px #5a3a2a } }
@keyframes lsn-lamp   { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes lsn-mote   { 0% { transform: translate(0,0) scale(1) } 33% { transform: translate(15px,-10px) scale(1.2) } 66% { transform: translate(30px,5px) scale(0.8) } 100% { transform: translate(45px,-5px) scale(1) } }

/* LESSING PUBLICATION NOTE - scholarly, bright interior */

.scn-lessing-publication-note {
  background: linear-gradient(180deg, #d4c9b8 0%, #b8a68a 40%, #9a8a6a 100%),
              radial-gradient(ellipse at 60% 40%, #e8dcc4 0%, transparent 70%);
}
.scn-lessing-publication-note .bg-deep {
  position:absolute; inset:0; background: linear-gradient(135deg, rgba(120,90,60,0.1) 0%, transparent 60%, rgba(80,60,40,0.08) 100%);
  animation: lpn-bg 25s ease-in-out infinite alternate;
}
.scn-lessing-publication-note .desk-surface {
  position:absolute; bottom:5%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #a08860 0%, #7a6440 100%);
  border-radius: 2% 2% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: lpn-desk 15s ease-in-out infinite;
}
.scn-lessing-publication-note .paper-stack {
  position:absolute; bottom:20%; left:35%; width:25%; height:30%; background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a8 100%);
  border-radius: 2%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: lpn-papers 8s ease-in-out infinite alternate;
}
.scn-lessing-publication-note .quill {
  position:absolute; bottom:25%; left:58%; width:3%; height:35%; background: linear-gradient(180deg, #d4c4a0 0%, #8a7a5a 100%);
  border-radius: 50% 50% 0 0; transform-origin: bottom center; animation: lpn-quill 4s ease-in-out infinite alternate;
}
.scn-lessing-publication-note .inkwell {
  position:absolute; bottom:22%; left:52%; width:6%; height:8%; background: radial-gradient(circle at 50% 30%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: lpn-ink 20s ease-in-out infinite;
}
.scn-lessing-publication-note .candle {
  position:absolute; bottom:25%; left:20%; width:4%; height:18%; background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 100%);
  border-radius: 20% 20% 0 0; animation: lpn-candle 6s ease-in-out infinite alternate;
}
.scn-lessing-publication-note .shadow-edge {
  position:absolute; inset:auto 0 0 0; height:15%; background: linear-gradient(0deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  animation: lpn-shadow 12s ease-in-out infinite alternate;
}
@keyframes lpn-bg      { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes lpn-desk    { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes lpn-papers  { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes lpn-quill   { 0% { transform: rotate(-5deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(-3deg) } }
@keyframes lpn-ink     { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes lpn-candle  { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes lpn-shadow  { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.7 } }

/* DEVIL THOUGHTS MORNING - satirical, dawn */

.scn-devil-thoughts-morning {
  background: linear-gradient(180deg, #7a6a8a 0%, #9a8aa0 30%, #c8b0a0 60%, #e8d0b0 100%);
}
.scn-devil-thoughts-morning .sky-dawn {
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a4a6a 0%, #b09080 50%, #e8c090 100%);
  animation: dvm-sky 20s ease-in-out infinite alternate;
}
.scn-devil-thoughts-morning .hills {
  position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.3); animation: dvm-hills 18s ease-in-out infinite alternate;
}
.scn-devil-thoughts-morning .sun-rising {
  position:absolute; top:25%; left:10%; width:12%; height:12%; background: radial-gradient(circle at 50% 50%, #ffdd88 0%, #ffaa44 50%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,170,68,0.5); animation: dvm-sun 25s ease-in-out infinite alternate;
}
.scn-devil-thoughts-morning .devil-figure {
  position:absolute; bottom:30%; left:30%; width:10%; height:40%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: dvm-devil 4s ease-in-out infinite alternate;
}
.scn-devil-thoughts-morning .devil-tail {
  position:absolute; bottom:32%; left:36%; width:2%; height:30%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 0 50% 50% 0; transform-origin: left bottom; animation: dvm-tail 5s ease-in-out infinite;
}
.scn-devil-thoughts-morning .farm-dist {
  position:absolute; bottom:35%; right:10%; width:15%; height:12%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: dvm-farm 30s linear infinite;
}
.scn-devil-thoughts-morning .mist-a {
  position:absolute; bottom:40%; left:0; width:40%; height:20%; background: rgba(200,180,160,0.3); filter: blur(12px);
  border-radius: 50%; animation: dvm-mist 35s linear infinite;
}
.scn-devil-thoughts-morning .mist-b {
  position:absolute; bottom:45%; right:0; width:30%; height:15%; background: rgba(200,180,160,0.2); filter: blur(10px);
  border-radius: 50%; animation: dvm-mist 25s linear infinite reverse;
}
@keyframes dvm-sky    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes dvm-hills  { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes dvm-sun    { 0% { transform: translateY(20px) scale(0.9) } 50% { transform: translateY(-10px) scale(1.1) } 100% { transform: translateY(20px) scale(0.95) } }
@keyframes dvm-devil  { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(15px) rotate(2deg) } 100% { transform: translateX(30px) rotate(-1deg) } }
@keyframes dvm-tail   { 0% { transform: rotate(-10deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-5deg) } }
@keyframes dvm-farm   { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes dvm-mist   { 0% { transform: translateX(-20px) } 50% { transform: translateX(10px) } 100% { transform: translateX(50px) } }

/* LAWYER VIPER DUNGHILL - ironic, sunlit */

.scn-lawyer-viper-dunghill {
  background: linear-gradient(180deg, #b8d4e8 0%, #e0e8d0 40%, #c8b880 100%),
              radial-gradient(ellipse at 80% 20%, #fff4c0 0%, transparent 60%);
}
.scn-lawyer-viper-dunghill .sky-sunlit {
  position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #a0c4e0 0%, #d0e4c0 60%, #e8d8a0 100%);
  animation: lwd-sky 18s ease-in-out infinite alternate;
}
.scn-lawyer-viper-dunghill .ground-brown {
  position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 20% 80% 0 0 / 30% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-lawyer-viper-dunghill .dunghill {
  position:absolute; bottom:20%; left:40%; width:20%; height:25%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%);
  border-radius: 50% 50% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.4); animation: lwd-dunghill 12s ease-in-out infinite;
}
.scn-lawyer-viper-dunghill .lawyer {
  position:absolute; bottom:35%; left:30%; width:8%; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: lwd-lawyer 4s ease-in-out infinite alternate;
}
.scn-lawyer-viper-dunghill .viper {
  position:absolute; bottom:30%; left:45%; width:12%; height:3%; background: linear-gradient(90deg, #3a5a2a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 50% 50%; transform-origin: left center; animation: lwd-viper 3s ease-in-out infinite;
}
.scn-lawyer-viper-dunghill .stable-bg {
  position:absolute; bottom:25%; right:5%; width:25%; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 0 0 2px #5a4a3a; animation: lwd-stable 20s linear infinite;
}
.scn-lawyer-viper-dunghill .sun-burst {
  position:absolute; top:10%; right:15%; width:8%; height:8%; background: radial-gradient(circle, #ffe680 0%, #ffcc44 40%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,204,68,0.4); animation: lwd-sun 30s ease-in-out infinite alternate;
}
@keyframes lwd-sky      { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes lwd-dunghill { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) translateY(3px) } 100% { transform: scaleY(1) } }
@keyframes lwd-lawyer   { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lwd-viper    { 0% { transform: scaleX(1) rotate(0) } 50% { transform: scaleX(0.8) rotate(30deg) } 100% { transform: scaleX(1) rotate(0) } }
@keyframes lwd-stable   { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes lwd-sun      { 0% { transform: scale(0.95) } 50% { transform: scale(1.05) } 100% { transform: scale(0.98) } }

/* Scene: carol-variants-war-fiend (informative, bright interior) */

.scn-carol-variants-war-fiend {
  background: linear-gradient(180deg, #d4c9a8 0%, #b8a78a 50%, #8c7352 100%),
              radial-gradient(ellipse at 30% 60%, #f5e6c8 0%, transparent 60%);
}
.scn-carol-variants-war-fiend .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e2d4b4 0%, #c6b393 100%);
  box-shadow: inset 0 -30px 40px rgba(0,0,0,0.15);
}
.scn-carol-variants-war-fiend .desk {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 28%;
  background: linear-gradient(135deg, #5a3e28 0%, #3d2818 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
}
.scn-carol-variants-war-fiend .book {
  position: absolute; bottom: 28%; left: 30%; width: 18%; height: 14%;
  background: linear-gradient(135deg, #b8463a 0%, #7a2a20 100%);
  border-radius: 4%;
  transform: rotate(-8deg);
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: cv-book 8s ease-in-out infinite;
}
.scn-carol-variants-war-fiend .lamp {
  position: absolute; bottom: 44%; left: 58%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #a0825a 0%, #6b5236 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 40px 15px #f0d090;
}
.scn-carol-variants-war-fiend .figure {
  position: absolute; bottom: 36%; left: 20%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1c120a 100%);
  border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cv-figure 6s ease-in-out infinite;
}
.scn-carol-variants-war-fiend .shadow {
  position: absolute; bottom: 12%; left: 15%; right: 40%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(5px);
  animation: cv-shadow 6s ease-in-out infinite;
}
.scn-carol-variants-war-fiend .paper {
  position: absolute; bottom: 30%; left: 52%; width: 16%; height: 10%;
  background: linear-gradient(135deg, #fdf6e3 0%, #e3d5b8 100%);
  border-radius: 2%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  transform: rotate(4deg);
  animation: cv-paper 12s ease-in-out infinite;
}
@keyframes cv-book {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-6deg) translateY(-2px); }
  100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes cv-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(-2deg); }
  50% { transform: translateX(8px) rotate(1deg); }
  75% { transform: translateX(4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cv-shadow {
  0%,100% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.1); }
}
@keyframes cv-paper {
  0%,100% { transform: rotate(4deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-1px); }
}

/* Scene: talleyrand-letter-introduction (satirical, bright interior) */

.scn-talleyrand-letter-introduction {
  background: linear-gradient(135deg, #e8dcc8 0%, #d2c0a8 50%, #b8a288 100%),
              radial-gradient(ellipse at 70% 80%, #f5edd0 0%, transparent 50%);
}
.scn-talleyrand-letter-introduction .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0e6ce 0%, #dccdb6 100%);
  box-shadow: inset 0 -40px 50px rgba(0,0,0,0.1);
}
.scn-talleyrand-letter-introduction .desk {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #7a593e 0%, #4a3522 100%);
  border-radius: 3% 3% 0 0;
  box-shadow: 0 10px 30px rgba(0,0,0,0.3);
}
.scn-talleyrand-letter-introduction .letter {
  position: absolute; bottom: 24%; left: 30%; width: 25%; height: 16%;
  background: linear-gradient(135deg, #fef8e8 0%, #ede0c8 100%);
  border-radius: 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  transform: rotate(2deg);
  animation: tl-letter 6s ease-in-out infinite;
}
.scn-talleyrand-letter-introduction .quill {
  position: absolute; bottom: 32%; left: 58%; width: 6%; height: 24%;
  background: linear-gradient(180deg, #f0e6d0 0%, #c2b49e 50%, #8e7a6a 100%);
  border-radius: 0 0 40% 40%;
  transform: rotate(-30deg);
  transform-origin: 50% 100%;
  animation: tl-quill 3s ease-in-out infinite;
}
.scn-talleyrand-letter-introduction .inkwell {
  position: absolute; bottom: 24%; left: 54%; width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 30%, #2a1a0a 0%, #110c04 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-talleyrand-letter-introduction .figure {
  position: absolute; bottom: 30%; right: 18%; width: 16%; height: 50%;
  background: linear-gradient(180deg, #3c3020 0%, #1e140c 100%);
  border-radius: 45% 40% 40% 45% / 60% 55% 45% 50%;
  transform-origin: bottom center;
  animation: tl-figure 5s ease-in-out infinite alternate;
}
.scn-talleyrand-letter-introduction .candle {
  position: absolute; bottom: 46%; left: 65%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #f0e0b0 0%, #d4b880 100%);
  border-radius: 10%;
  box-shadow: 0 0 48px 20px rgba(255,220,140,0.5);
  animation: tl-candle 2s ease-in-out infinite alternate;
}
.scn-talleyrand-letter-introduction .glow {
  position: absolute; bottom: 36%; left: 60%; width: 20%; height: 30%;
  background: radial-gradient(circle, rgba(255,230,170,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: tl-glow 2s ease-in-out infinite alternate;
}
@keyframes tl-letter {
  0%,100% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-3px); }
}
@keyframes tl-quill {
  0% { transform: rotate(-30deg); }
  50% { transform: rotate(-20deg); }
  100% { transform: rotate(-30deg); }
}
@keyframes tl-figure {
  0% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(6px) rotate(2deg); }
}
@keyframes tl-candle {
  0% { box-shadow: 0 0 40px 16px rgba(255,220,140,0.4); opacity: 0.9; }
  100% { box-shadow: 0 0 60px 24px rgba(255,220,140,0.7); opacity: 1; }
}
@keyframes tl-glow {
  0% { opacity: 0.5; transform: scale(0.9); }
  100% { opacity: 0.7; transform: scale(1.1); }
}

/* Scene: golden-verses-silence (ironic, bright interior) */

.scn-golden-verses-silence {
  background: linear-gradient(180deg, #d4c8a8 0%, #b8ac8a 50%, #8c7a62 100%),
              radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, transparent 60%);
}
.scn-golden-verses-silence .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #c8b898 0%, #b0a080 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.15);
}
.scn-golden-verses-silence .arch {
  position: absolute; top: 5%; left: 15%; right: 15%; bottom: 10%;
  border: 6px solid #8a7a6a;
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 0 0 2px #a09080;
  background: rgba(200,190,170,0.1);
}
.scn-golden-verses-silence .scroll {
  position: absolute; bottom: 25%; left: 25%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #fdf6e0 0%, #e5d8b8 100%);
  border-radius: 5%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.3);
  transform: rotate(3deg);
  animation: gv-scroll 12s ease-in-out infinite;
}
.scn-golden-verses-silence .halo {
  position: absolute; top: 22%; left: 42%; width: 16%; height: 16%;
  background: radial-gradient(circle, rgba(255,215,0,0.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: gv-halo 4s ease-in-out infinite alternate;
}
.scn-golden-verses-silence .figure {
  position: absolute; bottom: 20%; left: 35%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #3a2c1c 0%, #1a120a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 45% 45%;
  transform-origin: bottom center;
  animation: gv-figure 6s ease-in-out infinite;
}
.scn-golden-verses-silence .hand {
  position: absolute; bottom: 42%; left: 40%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e12 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(15deg);
  animation: gv-hand 3s ease-in-out infinite alternate;
}
.scn-golden-verses-silence .dust {
  position: absolute; top: 30%; left: 30%; width: 40%; height: 40%;
  background: transparent;
  filter: blur(3px);
  box-shadow: 0 0 0 0 rgba(255,230,180,0.3), 20px 30px 0 2px rgba(255,230,180,0.2), -10px 50px 0 1px rgba(255,230,180,0.15);
  animation: gv-dust 20s linear infinite;
}
@keyframes gv-scroll {
  0%,100% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-4px); }
}
@keyframes gv-halo {
  0% { opacity: 0.4; transform: scale(1); }
  100% { opacity: 0.8; transform: scale(1.3); }
}
@keyframes gv-figure {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-3px) rotate(-2deg); }
  60% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes gv-hand {
  0% { transform: rotate(10deg) translateY(0); }
  100% { transform: rotate(20deg) translateY(-4px); }
}
@keyframes gv-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0.3; }
  50% { transform: translate(15px, -10px) scale(1.2); opacity: 0.5; }
  100% { transform: translate(30px, -20px) scale(1.5); opacity: 0.1; }
}

/* Scene: dwarf-knight-analogy (sardonic, bright interior) */

.scn-dwarf-knight-analogy {
  background: linear-gradient(180deg, #c8b898 0%, #a89878 50%, #7c6a52 100%),
              radial-gradient(ellipse at 50% 80%, #e0d0b0 0%, transparent 40%);
}
.scn-dwarf-knight-analogy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.2);
}
.scn-dwarf-knight-analogy .arch {
  position: absolute; top: 0; left: 10%; right: 10%; bottom: 20%;
  border: 8px solid #8a7a6a;
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  background: transparent;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.1);
}
.scn-dwarf-knight-analogy .knight {
  position: absolute; bottom: 18%; right: 18%; width: 22%; height: 48%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: dk-knight 8s ease-in-out infinite;
}
.scn-dwarf-knight-analogy .dwarf {
  position: absolute; bottom: 38%; left: 30%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #4a3828 0%, #1e140c 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dk-dwarf 3s linear infinite;
}
.scn-dwarf-knight-analogy .dwarf-shadow {
  position: absolute; bottom: 36%; left: 28%; width: 14%; height: 4%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: dk-dwarf-shadow 3s linear infinite;
}
.scn-dwarf-knight-analogy .banner {
  position: absolute; top: 12%; left: 50%; width: 28%; height: 18%;
  background: linear-gradient(135deg, #8a6a3a 0%, #5a4020 100%);
  border-radius: 4%;
  transform: translateX(-50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  animation: dk-banner 10s ease-in-out infinite alternate;
}
.scn-dwarf-knight-analogy .torch {
  position: absolute; bottom: 50%; left: 55%; width: 4%; height: 16%;
  background: linear-gradient(180deg, #d4a060 0%, #8c6030 100%);
  border-radius: 20%;
  box-shadow: 0 0 60px 20px rgba(255,180,80,0.5);
  animation: dk-torch 2s ease-in-out infinite alternate;
}
@keyframes dk-knight {
  0%,100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(1deg); }
}
@keyframes dk-dwarf {
  0% { transform: translateX(0) translateY(0); }
  20% { transform: translateX(12px) translateY(-4px); }
  40% { transform: translateX(24px) translateY(0); }
  60% { transform: translateX(36px) translateY(-3px); }
  80% { transform: translateX(48px) translateY(0); }
  100% { transform: translateX(60px) translateY(0); }
}
@keyframes dk-dwarf-shadow {
  0% { opacity: 0.6; transform: scaleX(1); }
  20% { opacity: 0.8; transform: scaleX(1.3); }
  40% { opacity: 0.6; transform: scaleX(1); }
  60% { opacity: 0.8; transform: scaleX(1.2); }
  80% { opacity: 0.6; transform: scaleX(1); }
  100% { opacity: 0.6; transform: scaleX(1); }
}
@keyframes dk-banner {
  0% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes dk-torch {
  0% { box-shadow: 0 0 40px 12px rgba(255,180,80,0.4); opacity: 0.9; }
  100% { box-shadow: 0 0 80px 30px rgba(255,180,80,0.7); opacity: 1; }
}

.scn-letter-evidence-dating {
  background:
    linear-gradient(135deg, #f5e6c8 0%, #d4c4a8 50%, #b8a48a 100%),
    radial-gradient(ellipse at 30% 80%, #fff8e0 0%, transparent 60%);
}
.scn-letter-evidence-dating .desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5b45 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-letter-evidence-dating .letter {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 45%; height: 22%;
  background: linear-gradient(135deg, #faf3e0 0%, #e8dcc8 100%);
  border: 2px solid #c0b090;
  border-radius: 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  animation: le-paper 6s ease-in-out infinite alternate;
}
.scn-letter-evidence-dating .inkwell {
  position: absolute; bottom: 30%; left: 25%;
  width: 6%; height: 8%;
  background: linear-gradient(180deg, #3a3020 0%, #201810 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
}
.scn-letter-evidence-dating .quill {
  position: absolute; bottom: 36%; left: 22%;
  width: 12%; height: 3%;
  background: linear-gradient(90deg, #e8d8b8 0%, #c8b898 50%, #a09070 100%);
  border-radius: 50% 0 0 50%;
  transform-origin: right center;
  transform: rotate(-40deg);
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
  animation: le-quill 3s ease-in-out infinite alternate;
}
.scn-letter-evidence-dating .candle {
  position: absolute; bottom: 25%; left: 70%;
  width: 4%; height: 20%;
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 60%, #c0a888 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
}
.scn-letter-evidence-dating .glow {
  position: absolute; bottom: 40%; left: 68%; width: 12%; height: 20%;
  background: radial-gradient(circle, rgba(255,220,150,0.8) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: le-glow 4s ease-in-out infinite alternate;
}
.scn-letter-evidence-dating .shadow {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 10%;
  background: linear-gradient(180deg, rgba(0,0,0,0.1), transparent);
  border-radius: 50%;
  filter: blur(12px);
  animation: le-shadow 8s ease-in-out infinite alternate;
}
@keyframes le-paper { 0% { transform: translateX(-50%) rotate(-0.5deg); } 50% { transform: translateX(-50%) rotate(0.5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes le-quill { 0% { transform: rotate(-40deg); } 50% { transform: rotate(-30deg); } 100% { transform: rotate(-45deg); } }
@keyframes le-glow { 0% { opacity: 0.7; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes le-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }

.scn-campbells-introduction {
  background:
    linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 40%, #b8a088 100%),
    radial-gradient(ellipse at 80% 90%, #fff8e0 0%, transparent 50%);
}
.scn-campbells-introduction .shelf {
  position: absolute; top: 5%; left: 5%; right: 5%; height: 12%;
  background: linear-gradient(180deg, #a08870 0%, #806850 100%);
  border-radius: 2px;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.2);
}
.scn-campbells-introduction .book {
  position: absolute; top: 7%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 50%, #3a1a0a 100%);
  border-radius: 2% 2% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: rotate(1deg);
  animation: ci-book 10s ease-in-out infinite alternate;
}
.scn-campbells-introduction .glasses {
  position: absolute; top: 20%; left: 55%; width: 12%; height: 5%;
  background: transparent;
  border: 2px solid #c0b090;
  border-radius: 50%;
  box-shadow: 0 0 0 2px #c0b090, 0 4px 8px rgba(0,0,0,0.1);
  transform: rotate(-10deg);
  animation: ci-glasses 7s ease-in-out infinite alternate;
}
.scn-campbells-introduction .lamp {
  position: absolute; bottom: 30%; right: 15%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 60%, #908060 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 10px rgba(0,0,0,0.2);
}
.scn-campbells-introduction .lamp-glow {
  position: absolute; bottom: 50%; right: 10%; width: 20%; height: 30%;
  background: radial-gradient(circle, rgba(255,230,180,0.7) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(15px);
  animation: ci-lamp-glow 5s ease-in-out infinite alternate;
}
.scn-campbells-introduction .cup {
  position: absolute; bottom: 20%; left: 25%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  transform: rotate(-5deg);
}
.scn-campbells-introduction .steam {
  position: absolute; bottom: 28%; left: 26%; width: 4%; height: 10%;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, transparent);
  border-radius: 50%;
  filter: blur(6px);
  animation: ci-steam 3s ease-out infinite alternate;
}
@keyframes ci-book { 0% { transform: rotate(1deg); } 50% { transform: rotate(-1deg); } 100% { transform: rotate(0.5deg); } }
@keyframes ci-glasses { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-12deg) translateY(0); } }
@keyframes ci-lamp-glow { 0% { opacity: 0.7; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes ci-steam { 0% { opacity: 0.6; transform: translateY(0) scale(1); } 100% { opacity: 0; transform: translateY(-30px) scale(1.5); } }

.scn-purchas-quotation {
  background:
    linear-gradient(135deg, #e8dcc8 0%, #c8b898 40%, #a89070 100%),
    radial-gradient(ellipse at 20% 50%, #fff8e0 0%, transparent 60%);
}
.scn-purchas-quotation .map {
  position: absolute; bottom: 10%; left: 18%; right: 18%; height: 60%;
  background: linear-gradient(135deg, #f0e8d8 0%, #d8c8b0 100%);
  border: 2px solid #b09878;
  border-radius: 2%;
  box-shadow: 0 8px 24px rgba(0,0,0,0.15);
  transform: rotate(-2deg);
  animation: pq-map 12s ease-in-out infinite alternate;
}
.scn-purchas-quotation .globe {
  position: absolute; top: 8%; right: 12%; width: 18%; height: 30%;
  background: radial-gradient(circle at 40% 60%, #6a9ac0 0%, #3a6a8a 60%, #1a3a5a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  transform: rotate(20deg);
  animation: pq-globe 20s linear infinite;
}
.scn-purchas-quotation .compass {
  position: absolute; bottom: 25%; left: 10%; width: 12%; height: 18%;
  background: radial-gradient(circle at 50% 50%, #d0b090 0%, #a08060 60%, #806040 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  transform: rotate(15deg);
  animation: pq-compass 8s ease-in-out infinite alternate;
}
.scn-purchas-quotation .ruler {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 2%;
  background: linear-gradient(90deg, #c8b898 0%, #a09070 50%, #c8b898 100%);
  border-radius: 1px;
  transform: rotate(-12deg);
  box-shadow: 0 1px 2px rgba(0,0,0,0.1);
  animation: pq-ruler 6s ease-in-out infinite alternate;
}
.scn-purchas-quotation .pin {
  position: absolute; top: 50%; left: 55%; width: 2%; height: 5%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transform: translate(-50%, -50%);
  animation: pq-pin 4s ease-in-out infinite;
}
.scn-purchas-quotation .parchment {
  position: absolute; bottom: 5%; left: 40%; width: 20%; height: 8%;
  background: linear-gradient(135deg, #faf3e0 0%, #ece0c8 100%);
  border-radius: 2%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  transform: rotate(5deg);
  animation: pq-parchment 7s ease-in-out infinite alternate;
}
@keyframes pq-map { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-3deg); } }
@keyframes pq-globe { 0% { transform: rotate(20deg); } 100% { transform: rotate(380deg); } }
@keyframes pq-compass { 0% { transform: rotate(15deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(25deg); } }
@keyframes pq-ruler { 0% { transform: rotate(-12deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(5px); } 100% { transform: rotate(-14deg) translateX(-5px); } }
@keyframes pq-pin { 0% { transform: translate(-50%, -50%) scale(1); } 50% { transform: translate(-50%, -60%) scale(1.1); } 100% { transform: translate(-50%, -50%) scale(1); } }
@keyframes pq-parchment { 0% { transform: rotate(5deg); opacity: 0.9; } 50% { transform: rotate(8deg); opacity: 1; } 100% { transform: rotate(3deg); opacity: 0.95; } }

.scn-theocritus-quote-footnote {
  background:
    linear-gradient(180deg, #f5f0e8 0%, #e0d8c8 50%, #c8b8a0 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e8 0%, transparent 50%);
}
.scn-theocritus-quote-footnote .scroll {
  position: absolute; bottom: 15%; left: 25%; width: 50%; height: 35%;
  background: linear-gradient(135deg, #faf3e0 0%, #e8dcc8 60%, #d0c0a8 100%);
  border-radius: 50% 50% 10% 10% / 20% 20% 40% 40%;
  box-shadow: 0 6px 18px rgba(0,0,0,0.1);
  transform: rotate(-3deg);
  animation: tq-scroll 14s ease-in-out infinite alternate;
}
.scn-theocritus-quote-footnote .lyre {
  position: absolute; top: 30%; right: 20%; width: 12%; height: 25%;
  background: radial-gradient(ellipse at 50% 30%, #c8a878 0%, #a08050 60%, #604020 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  transform: rotate(10deg);
  animation: tq-lyre 8s ease-in-out infinite alternate;
}
.scn-theocritus-quote-footnote .vines {
  position: absolute; top: 5%; left: 5%; width: 25%; height: 40%;
  background: radial-gradient(circle at 30% 20%, #5a7a3a 0%, #3a5a2a 60%, transparent 100%);
  border-radius: 40% 60% 50% 50% / 30% 40% 60% 70%;
  filter: blur(4px);
  opacity: 0.7;
  animation: tq-vines 20s linear infinite;
}
.scn-theocritus-quote-footnote .window {
  position: absolute; top: 2%; left: 10%; width: 50%; height: 50%;
  background: linear-gradient(135deg, #d0e8f0 0%, #a8c8d8 100%);
  border: 4px solid #a09070;
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
  opacity: 0.15;
  animation: tq-window 10s ease-in-out infinite alternate;
}
.scn-theocritus-quote-footnote .sunbeam {
  position: absolute; top: 5%; left: 15%; width: 35%; height: 60%;
  background: linear-gradient(135deg, rgba(255,250,220,0.6) 0%, transparent 70%);
  filter: blur(20px);
  transform: rotate(-15deg);
  animation: tq-sunbeam 9s ease-in-out infinite alternate;
}
.scn-theocritus-quote-footnote .ink-bottle {
  position: absolute; bottom: 12%; left: 16%; width: 5%; height: 7%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-theocritus-quote-footnote .quill-small {
  position: absolute; bottom: 18%; left: 14%;
  width: 10%; height: 2%;
  background: linear-gradient(90deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 50% 0 0 50%;
  transform-origin: right center;
  transform: rotate(-30deg);
  box-shadow: 0 1px 2px rgba(0,0,0,0.1);
  animation: tq-quill 5s ease-in-out infinite alternate;
}
@keyframes tq-scroll { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes tq-lyre { 0% { transform: rotate(10deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(12deg); } }
@keyframes tq-vines { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(5px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes tq-window { 0% { opacity: 0.1; } 50% { opacity: 0.2; } 100% { opacity: 0.15; } }
@keyframes tq-sunbeam { 0% { opacity: 0.5; transform: rotate(-15deg); } 50% { opacity: 0.8; transform: rotate(-10deg); } 100% { opacity: 0.6; transform: rotate(-18deg); } }
@keyframes tq-quill { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(-35deg); } }

/* variant-love-hope: calm dim interior, desk with album */

.scn-variant-love-hope {
  background: linear-gradient(180deg, #1e1a1a 0%, #2a2420 40%, #3a3028 100%),
              radial-gradient(ellipse at 50% 100%, #3a3028 0%, transparent 60%);
}
.scn-variant-love-hope .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2c2824 0%, #1e1a18 100%);
  animation: lh-wall 12s ease-in-out infinite alternate;
}
.scn-variant-love-hope .desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 25%;
  background: linear-gradient(180deg, #4a3e34 0%, #2d241e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,.5);
  transform: perspective(800px) rotateX(2deg);
  animation: lh-desk 20s ease-in-out infinite;
}
.scn-variant-love-hope .album {
  position: absolute; bottom: 26%; left: 35%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  transform: rotate(-3deg);
  animation: lh-album 10s ease-in-out infinite alternate;
}
.scn-variant-love-hope .lamp {
  position: absolute; bottom: 38%; left: 20%; width: 30px; height: 40px;
  background: radial-gradient(circle at 50% 20%, #b8926a 0%, #7a5a3a 60%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 -4px 20px 8px #8a6a4a, 0 0 40px 12px rgba(138,106,74,.3);
  animation: lh-lamp 5s ease-in-out infinite alternate;
}
.scn-variant-love-hope .pen {
  position: absolute; bottom: 28%; left: 52%; width: 30px; height: 4px;
  background: #5a4a3a;
  border-radius: 2px;
  transform: rotate(-30deg);
  animation: lh-pen 4s ease-in-out infinite;
}
.scn-variant-love-hope .hand {
  position: absolute; bottom: 26%; left: 46%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #c8a080 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: lh-hand 6s ease-in-out infinite alternate;
}
.scn-variant-love-hope .shadow {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 20%;
  background: rgba(10,8,6,.4);
  filter: blur(8px);
  animation: lh-shadow 15s ease-in-out infinite;
}
.scn-variant-love-hope .dust {
  position: absolute; top: 20%; left: 30%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(200,180,160,.1) 0%, transparent 70%);
  filter: blur(10px);
  animation: lh-dust 30s linear infinite;
}
@keyframes lh-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes lh-desk { 0%,100% { transform: perspective(800px) rotateX(2deg) } 50% { transform: perspective(800px) rotateX(1deg) translateY(-2px) } }
@keyframes lh-album { 0% { transform: rotate(-3deg) scale(1) } 50% { transform: rotate(-1deg) scale(1.02) } 100% { transform: rotate(-4deg) scale(0.98) } }
@keyframes lh-lamp { 0% { box-shadow: 0 -4px 20px 8px #8a6a4a, 0 0 40px 12px rgba(138,106,74,.2); opacity:.9 } 50% { box-shadow: 0 -4px 30px 12px #a07a5a, 0 0 60px 20px rgba(160,122,90,.4); opacity:1 } 100% { box-shadow: 0 -4px 20px 8px #8a6a4a, 0 0 40px 12px rgba(138,106,74,.25); opacity:.85 } }
@keyframes lh-pen { 0%,100% { transform: rotate(-30deg) translateX(0) } 50% { transform: rotate(-25deg) translateX(3px) } }
@keyframes lh-hand { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-2px) } 100% { transform: rotate(8deg) translateY(0) } }
@keyframes lh-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.35 } }
@keyframes lh-dust { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-10px) scale(1.2) } 100% { transform: translateY(0) scale(0.9) } }

/* to-miss-a-t: warm sunlit, open album with flower */

.scn-to-miss-a-t {
  background: linear-gradient(180deg, #fff8e8 0%, #fce4c8 40%, #f0d4b0 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 60%);
}
.scn-to-miss-a-t .sunbeam {
  position: absolute; top: 0; left: 30%; width: 100px; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,220,.3) 0%, rgba(255,255,200,.1) 100%);
  transform: skewX(-10deg);
  filter: blur(6px);
  animation: at-sunbeam 10s ease-in-out infinite alternate;
}
.scn-to-miss-a-t .album-open {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 40%;
  background: linear-gradient(180deg, #fdf4e0 0%, #e8d4b8 100%);
  border-radius: 4%;
  box-shadow: 0 8px 30px rgba(0,0,0,.15);
  transform: perspective(600px) rotateX(5deg);
  animation: at-album 20s ease-in-out infinite;
}
.scn-to-miss-a-t .page-light {
  position: absolute; bottom: 30%; left: 35%; width: 120px; height: 80px;
  background: radial-gradient(ellipse, #fffbe8 0%, #f5e6c8 100%);
  border-radius: 2%;
  box-shadow: inset 0 0 20px rgba(200,180,140,.3);
  animation: at-page 15s ease-in-out infinite alternate;
}
.scn-to-miss-a-t .flower {
  position: absolute; bottom: 42%; left: 40%; width: 20px; height: 20px;
  background: radial-gradient(circle, #f0c8a0 0%, #d8a080 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #d8a080;
  animation: at-flower 6s ease-in-out infinite alternate;
}
.scn-to-miss-a-t .silhouette {
  position: absolute; bottom: 22%; left: 50%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: at-silhouette 8s ease-in-out infinite;
}
.scn-to-miss-a-t .sparkle {
  position: absolute; top: 15%; left: 20%; width: 10px; height: 10px;
  background: #fff8c0;
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(255,248,192,.5);
  animation: at-sparkle 4s ease-in-out infinite alternate;
}
.scn-to-miss-a-t .glow-aura {
  position: absolute; top: 10%; left: 10%; right: 10%; bottom: 50%;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,248,200,.2) 0%, transparent 70%);
  filter: blur(20px);
  animation: at-glow 12s ease-in-out infinite alternate;
}
@keyframes at-sunbeam { 0% { opacity:.4; transform: skewX(-10deg) translateX(0) } 50% { opacity:.7; transform: skewX(-8deg) translateX(5px) } 100% { opacity:.5; transform: skewX(-12deg) translateX(-3px) } }
@keyframes at-album { 0%,100% { transform: perspective(600px) rotateX(5deg) } 50% { transform: perspective(600px) rotateX(3deg) translateY(-3px) } }
@keyframes at-page { 0% { opacity:.9; box-shadow: inset 0 0 20px rgba(200,180,140,.2) } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(200,180,140,.4) } 100% { opacity:.85; box-shadow: inset 0 0 20px rgba(200,180,140,.25) } }
@keyframes at-flower { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.1) rotate(10deg) } 100% { transform: scale(0.95) rotate(-5deg) } }
@keyframes at-silhouette { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) scale(1.02) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes at-sparkle { 0% { opacity:.3; transform: scale(0.8) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.5; transform: scale(0.9) } }
@keyframes at-glow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

/* editorial-miss-t: calm dim interior, books and candle */

.scn-editorial-miss-t {
  background: linear-gradient(180deg, #1a1a1e 0%, #2a2428 40%, #3a3034 100%),
              radial-gradient(ellipse at 50% 100%, #3a3034 0%, transparent 60%);
}
.scn-editorial-miss-t .shelf {
  position: absolute; bottom: 45%; left: 10%; right: 10%; height: 6px;
  background: #4a3e3c;
  border-radius: 2px;
  box-shadow: 0 4px 10px rgba(0,0,0,.3);
}
.scn-editorial-miss-t .books {
  position: absolute; bottom: 45%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,.4);
  animation: mt-books 15s ease-in-out infinite alternate;
}
.scn-editorial-miss-t .letter {
  position: absolute; bottom: 30%; left: 35%; width: 60px; height: 40px;
  background: #f0e0c8;
  border-radius: 2%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  transform: rotate(-2deg);
  animation: mt-letter 20s ease-in-out infinite;
}
.scn-editorial-miss-t .candle {
  position: absolute; bottom: 28%; left: 25%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #f0d8b0 0%, #c8a880 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 0 20px 6px #e0b080;
  animation: mt-candle 6s ease-in-out infinite alternate;
}
.scn-editorial-miss-t .wax-drip {
  position: absolute; bottom: 28%; left: 25%; width: 4px; height: 16px;
  background: #e0c8a0;
  border-radius: 2px;
  transform: translateX(6px);
  animation: mt-wax 8s ease-in-out infinite;
}
.scn-editorial-miss-t .reader-silhouette {
  position: absolute; bottom: 28%; left: 55%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a1e 0%, #0a0a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: mt-reader 10s ease-in-out infinite;
}
.scn-editorial-miss-t .dust-mote {
  position: absolute; top: 20%; left: 40%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,180,160,.1) 0%, transparent 70%);
  filter: blur(8px);
  animation: mt-dust 30s linear infinite;
}
@keyframes mt-books { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mt-letter { 0%,100% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-1px) } }
@keyframes mt-candle { 0% { opacity:.7; box-shadow: 0 0 15px 4px #e0b080 } 50% { opacity:1; box-shadow: 0 0 30px 10px #f0c898 } 100% { opacity:.8; box-shadow: 0 0 20px 6px #e0b080 } }
@keyframes mt-wax { 0% { height: 16px } 50% { height: 20px } 100% { height: 14px } }
@keyframes mt-reader { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-6deg) translateY(0) } }
@keyframes mt-dust { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-15px) scale(1.3) } 100% { transform: translateY(0) scale(0.8) } }

/* lines-in-commonplace: calm sunlit, sea view from window */

.scn-lines-in-commonplace {
  background: linear-gradient(180deg, #c8dbe8 0%, #a0c4d8 40%, #7aaccc 100%),
              radial-gradient(ellipse at 50% 20%, #c8dbe8 0%, transparent 50%);
}
.scn-lines-in-commonplace .sky-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d0e0 0%, #d0e4f0 100%);
  animation: lc-sky 15s ease-in-out infinite alternate;
}
.scn-lines-in-commonplace .ocean {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #5a8aaa 0%, #3a6a8a 100%);
  animation: lc-ocean 20s ease-in-out infinite alternate;
}
.scn-lines-in-commonplace .ship {
  position: absolute; bottom: 25%; left: 20%; width: 50px; height: 12px;
  background: #3a2a1a;
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-2deg);
  animation: lc-ship 25s ease-in-out infinite;
}
.scn-lines-in-commonplace .mast {
  position: absolute; bottom: 25%; left: 20%; width: 3px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  transform: translateX(22px);
  animation: lc-mast 25s ease-in-out infinite;
}
.scn-lines-in-commonplace .sail {
  position: absolute; bottom: 38%; left: 20%; width: 20px; height: 30px;
  background: #e8dcc8;
  border-radius: 10% 10% 30% 30%;
  transform: translateX(14px) skewX(5deg);
  animation: lc-sail 18s ease-in-out infinite alternate;
}
.scn-lines-in-commonplace .window-frame {
  position: absolute; top: 5%; left: 5%; right: 5%; bottom: 5%;
  border: 8px solid #4a3a2a;
  border-radius: 4%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.2);
  pointer-events: none;
}
.scn-lines-in-commonplace .woman-profile {
  position: absolute; bottom: 20%; right: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: lc-woman 12s ease-in-out infinite;
}
.scn-lines-in-commonplace .curtain {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 0 60% 60% 0 / 0 40% 40% 0;
  opacity: .6;
  filter: blur(4px);
  animation: lc-curtain 22s ease-in-out infinite alternate;
}
@keyframes lc-sky { 0% { opacity:.85; background-position:0 0 } 50% { opacity:1; background-position:10px 0 } 100% { opacity:.9; background-position:-5px 0 } }
@keyframes lc-ocean { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes lc-ship { 0% { transform: rotate(-2deg) translateX(0) } 50% { transform: rotate(0deg) translateX(5px) } 100% { transform: rotate(-3deg) translateX(-2px) } }
@keyframes lc-mast { 0%,100% { transform: translateX(22px) rotate(0deg) } 50% { transform: translateX(22px) rotate(1deg) } }
@keyframes lc-sail { 0% { transform: translateX(14px) skewX(5deg) } 50% { transform: translateX(14px) skewX(2deg) scale(1.02) } 100% { transform: translateX(14px) skewX(7deg) } }
@keyframes lc-woman { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } 100% { transform: rotate(11deg) translateY(0) } }
@keyframes lc-curtain { 0% { opacity:.5; transform: translateX(0) } 50% { opacity:.7; transform: translateX(-8px) } 100% { opacity:.6; transform: translateX(0) } }

/* editorial-note-taking-leave */

.scn-editorial-note-taking-leave {
  background: linear-gradient(180deg, #2a1f18 0%, #3c2a1e 50%, #1e1410 100%), radial-gradient(ellipse at 52% 72%, #4a3428 0%, transparent 60%);
}
.scn-editorial-note-taking-leave .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3c2a1e 0%, #2a1f18 100%); }
.scn-editorial-note-taking-leave .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #1e1410 0%, #2a1f18 100%); }
.scn-editorial-note-taking-leave .desk { position:absolute; bottom:28%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #5a3e2a 0%, #3a2818 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-editorial-note-taking-leave .candle { position:absolute; bottom:38%; left:44%; width:4%; height:12%; background: linear-gradient(180deg, #e8d0a0 0%, #c8a86e 100%); border-radius: 2px 2px 4px 4px; }
.scn-editorial-note-taking-leave .flame { position:absolute; bottom:49%; left:45%; width:2%; height:6%; background: radial-gradient(circle, #ffd080 0%, #ffa040 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 20px 8px #ffb060, 0 0 40px 16px rgba(255,176,96,0.4); animation: etl-flame 2s ease-in-out infinite alternate; }
.scn-editorial-note-taking-leave .letter { position:absolute; bottom:29%; left:34%; width:12%; height:9%; background: linear-gradient(135deg, #f5e6c8 0%, #dac8a0 100%); transform: rotate(-5deg); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: etl-letter 8s ease-in-out infinite; }
.scn-editorial-note-taking-leave .inkwell { position:absolute; bottom:29%; left:56%; width:4%; height:6%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30%; }
.scn-editorial-note-taking-leave .quill { position:absolute; bottom:32%; left:58%; width:1%; height:10%; background: linear-gradient(180deg, #d0b090 0%, #a08060 100%); transform: rotate(20deg); transform-origin: bottom; border-radius: 0 0 50% 50%; animation: etl-quill 6s ease-in-out infinite alternate; }
@keyframes etl-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.9; } 50% { transform: scaleY(1.15) translateY(-2px); opacity:1; } 100% { transform: scaleY(0.95) translateY(1px); opacity:0.85; } }
@keyframes etl-letter { 0%,100% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(2px); } }
@keyframes etl-quill { 0% { transform: rotate(20deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(18deg); } }

/* poem-taking-leave-continuation */

.scn-poem-taking-leave-continuation {
  background: linear-gradient(180deg, #1f2438 0%, #2a3048 50%, #181e30 100%), radial-gradient(ellipse at 50% 30%, #2a3048 0%, transparent 70%);
}
.scn-poem-taking-leave-continuation .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a3048 0%, #1f2438 100%); }
.scn-poem-taking-leave-continuation .window { position:absolute; top:18%; left:40%; width:20%; height:30%; background: linear-gradient(180deg, #3a5078 0%, #283858 100%); border: 4px solid #4a3a2a; border-radius: 4px; }
.scn-poem-taking-leave-continuation .moonlight { position:absolute; top:18%; left:40%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 20%, rgba(200,220,255,0.15) 0%, transparent 70%); animation: ptl-moonlight 10s ease-in-out infinite alternate; }
.scn-poem-taking-leave-continuation .chair { position:absolute; bottom:25%; left:40%; width:20%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 40% 40% 20% 20%; }
.scn-poem-taking-leave-continuation .figure { position:absolute; bottom:30%; left:43%; width:14%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; animation: ptl-figure 6s ease-in-out infinite; }
.scn-poem-taking-leave-continuation .orb-a, .scn-poem-taking-leave-continuation .orb-b { position:absolute; width:4%; height:4%; border-radius:50%; background: radial-gradient(circle, #aac8ff 0%, #6a8ec8 60%, transparent 100%); box-shadow: 0 0 20px 6px rgba(170,200,255,0.4); animation: ptl-orb 20s linear infinite; }
.scn-poem-taking-leave-continuation .orb-a { top:20%; left:25%; animation-delay:0s; }
.scn-poem-taking-leave-continuation .orb-b { top:30%; right:20%; width:3%; height:3%; animation-delay:-10s; }
@keyframes ptl-moonlight { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes ptl-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ptl-orb { 0% { transform: translate(0,0) scale(1); opacity:0.6; } 25% { transform: translate(30px,-20px) scale(1.1); opacity:0.9; } 50% { transform: translate(60px,0) scale(0.9); opacity:0.5; } 75% { transform: translate(30px,20px) scale(1.05); opacity:0.8; } 100% { transform: translate(0,0) scale(1); opacity:0.6; } }

/* psyche-note-intro */

.scn-psyche-note-intro {
  background: linear-gradient(180deg, #2a2a38 0%, #1e202e 50%, #141420 100%), radial-gradient(ellipse at 50% 40%, #383848 0%, transparent 70%);
}
.scn-psyche-note-intro .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1e202e 0%, #282a3a 100%); }
.scn-psyche-note-intro .desk { position:absolute; bottom:30%; left:25%; width:50%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-psyche-note-intro .book { position:absolute; bottom:32%; left:35%; width:20%; height:15%; background: linear-gradient(135deg, #6a5040 0%, #503828 100%); border-radius: 2px; transform: rotate(-3deg); box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
.scn-psyche-note-intro .page { position:absolute; bottom:33%; left:36.5%; width:17%; height:12%; background: linear-gradient(135deg, #f5e8d0 0%, #e0d0b0 100%); transform: rotate(-3deg); border-radius: 1px; }
.scn-psyche-note-intro .butterfly { position:absolute; bottom:55%; left:48%; width:8%; height:6%; background: radial-gradient(circle at 30% 40%, #c8a070 0%, #8a6040 100%); clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); animation: pni-butterfly 4s ease-in-out infinite alternate; }
.scn-psyche-note-intro .glow { position:absolute; bottom:50%; left:44%; width:12%; height:12%; background: radial-gradient(circle, rgba(200,160,112,0.3) 0%, transparent 70%); animation: pni-glow 5s ease-in-out infinite alternate; }
@keyframes pni-butterfly { 0% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(10deg) scaleX(1.2); } 100% { transform: rotate(-5deg) scaleX(0.9); } }
@keyframes pni-glow { 0% { opacity:0.2; transform: scale(0.9); } 50% { opacity:0.5; transform: scale(1.1); } 100% { opacity:0.3; transform: scale(1); } }

/* psyche-note-continued */

.scn-psyche-note-continued {
  background: linear-gradient(180deg, #1a1a24 0%, #242434 50%, #10101c 100%), radial-gradient(ellipse at 50% 60%, #2a2a3a 0%, transparent 60%);
}
.scn-psyche-note-continued .shelf { position:absolute; bottom:30%; left:10%; width:80%; height:8%; background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 100%); border-radius: 2px; box-shadow: 0 6px 12px rgba(0,0,0,0.5); }
.scn-psyche-note-continued .book-a, .scn-psyche-note-continued .book-b { position:absolute; bottom:32%; width:8%; height:20%; background: linear-gradient(180deg, #5a3e2a 0%, #3a2818 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); }
.scn-psyche-note-continued .book-a { left:20%; }
.scn-psyche-note-continued .book-b { left:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); }
.scn-psyche-note-continued .scroll { position:absolute; bottom:32%; left:55%; width:10%; height:15%; background: linear-gradient(180deg, #e8d8b8 0%, #c8b090 100%); border-radius: 30% 30% 10% 10%; transform: rotate(5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.3); }
.scn-psyche-note-continued .butterfly { position:absolute; bottom:55%; left:60%; width:6%; height:4%; background: radial-gradient(circle at 40% 30%, #b09060 0%, #785030 100%); clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); animation: pnc-butterfly 5s ease-in-out infinite alternate; }
.scn-psyche-note-continued .candle { position:absolute; bottom:30%; left:70%; width:3%; height:14%; background: linear-gradient(180deg, #e0c890 0%, #c0a06e 100%); border-radius: 2px; }
.scn-psyche-note-continued .flame { position:absolute; bottom:43%; left:71%; width:1.5%; height:5%; background: radial-gradient(circle, #ffc060 0%, #e08040 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 14px 6px #e08040; animation: pnc-flame 2.5s ease-in-out infinite alternate; }
@keyframes pnc-butterfly { 0% { transform: translateY(0) rotate(-8deg) scaleX(1); } 50% { transform: translateY(-3px) rotate(8deg) scaleX(1.15); } 100% { transform: translateY(2px) rotate(-4deg) scaleX(0.9); } }
@keyframes pnc-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.8; } }

/* improvisatore-love-discourse */

.scn-improvisatore-love-discourse {
  background: 
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, #1a1210 70%),
    linear-gradient(180deg, #2a1a12 0%, #0e0a08 100%);
}
.scn-improvisatore-love-discourse .room-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 70%, transparent 30%, #0a0604 100%);
  animation: scn1-room-pulse 12s ease-in-out infinite alternate;
}
.scn-improvisatore-love-discourse .fireplace {
  position: absolute; bottom: 10%; left: 10%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.6);
}
.scn-improvisatore-love-discourse .fire {
  position: absolute; bottom: 40%; left: 16%; width: 18%; height: 30%;
  background: radial-gradient(ellipse at 50% 80%, #f0a030 0%, #c06020 40%, transparent 60%);
  border-radius: 50%;
  filter: blur(4px);
  animation: scn1-fire 3s ease-in-out infinite alternate;
}
.scn-improvisatore-love-discourse .figure-left {
  position: absolute; bottom: 12%; left: 30%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: scn1-figure-left 6s ease-in-out infinite alternate;
}
.scn-improvisatore-love-discourse .figure-right {
  position: absolute; bottom: 12%; right: 25%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scn1-figure-right 5s ease-in-out infinite alternate;
}
.scn-improvisatore-love-discourse .candle {
  position: absolute; bottom: 18%; left: 45%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #e8d4b0 0%, #c8a880 100%);
  border-radius: 10% 10% 5% 5%;
}
.scn-improvisatore-love-discourse .candle-flame {
  position: absolute; bottom: 36%; left: 45.5%; width: 3%; height: 8%;
  background: radial-gradient(circle, #ffe080 0%, #f0a030 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(240,160,48,.5);
  animation: scn1-candle-flicker 1.5s ease-in-out infinite alternate;
}
.scn-improvisatore-love-discourse .table {
  position: absolute; bottom: 5%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-improvisatore-love-discourse .book {
  position: absolute; bottom: 10%; left: 42%; width: 8%; height: 6%;
  background: linear-gradient(170deg, #6a4a3a 0%, #4a3020 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: scn1-book 8s ease-in-out infinite;
}
@keyframes scn1-room-pulse { 0%,100% { opacity: .85 } 50% { opacity: 1 } }
@keyframes scn1-fire { 0% { transform: scale(1) translateY(0); opacity: .8 } 50% { transform: scale(1.05) translateY(-2px); opacity: 1 } 100% { transform: scale(.95) translateY(2px); opacity: .7 } }
@keyframes scn1-figure-left { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(-3px) rotate(-1deg) } }
@keyframes scn1-figure-right { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-4px) rotate(-2deg) } 100% { transform: translateX(6px) rotate(1deg) } }
@keyframes scn1-candle-flicker { 0% { transform: scale(1); box-shadow: 0 0 15px 5px #f0a030 } 50% { transform: scale(1.2); box-shadow: 0 0 25px 10px #f0a030 } 100% { transform: scale(.9); box-shadow: 0 0 12px 3px #f0a030 } }
@keyframes scn1-book { 0%,100% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-3deg) translateX(2px) } }

/* improvisatore-love-definition */

.scn-improvisatore-love-definition {
  background:
    radial-gradient(ellipse at 30% 50%, #3a2a1a 0%, #1a1210 70%),
    linear-gradient(90deg, #1a1210 0%, #2a1a12 50%, #1a1210 100%);
}
.scn-improvisatore-love-definition .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 30%, #0a0604 100%);
  animation: scn2-room-breathe 20s ease-in-out infinite alternate;
}
.scn-improvisatore-love-definition .window {
  position: absolute; top: 5%; right: 8%; width: 25%; height: 40%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
  border: 2px solid #4a3a2a;
}
.scn-improvisatore-love-definition .desk {
  position: absolute; bottom: 5%; left: 15%; width: 50%; height: 10%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
}
.scn-improvisatore-love-definition .figure-seated {
  position: absolute; bottom: 15%; left: 20%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: scn2-figure 7s ease-in-out infinite alternate;
}
.scn-improvisatore-love-definition .inkwell {
  position: absolute; bottom: 12%; left: 36%; width: 5%; height: 6%;
  background: radial-gradient(circle, #2a1a10 0%, #0e0804 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
}
.scn-improvisatore-love-definition .quill {
  position: absolute; bottom: 16%; left: 38%; width: 2%; height: 15%;
  background: linear-gradient(180deg, #d4c0a0 0%, #a08060 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: scn2-quill 4s ease-in-out infinite alternate;
}
.scn-improvisatore-love-definition .candle {
  position: absolute; bottom: 8%; left: 55%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #e8d4b0 0%, #c8a880 100%);
  border-radius: 10% 10% 5% 5%;
}
.scn-improvisatore-love-definition .candle-flame {
  position: absolute; bottom: 28%; left: 55.5%; width: 3%; height: 9%;
  background: radial-gradient(circle, #ffe080 0%, #f0a030 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(240,160,48,.4);
  animation: scn2-flame 2s ease-in-out infinite alternate;
}
@keyframes scn2-room-breathe { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes scn2-figure { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(2px) rotate(-1deg) } }
@keyframes scn2-quill { 0% { transform: rotate(15deg) translateX(0) } 50% { transform: rotate(20deg) translateX(2px) } 100% { transform: rotate(10deg) translateX(-1px) } }
@keyframes scn2-flame { 0% { transform: scale(1) translateY(0); box-shadow: 0 0 15px 5px #f0a030 } 50% { transform: scale(1.15) translateY(-2px); box-shadow: 0 0 25px 10px #f0a030 } 100% { transform: scale(.9) translateY(1px); box-shadow: 0 0 10px 3px #f0a030 } }

/* improvisatore-true-love */

.scn-improvisatore-true-love {
  background:
    radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, #1a1210 60%),
    linear-gradient(180deg, #2a1a12 0%, #120e0a 100%);
}
.scn-improvisatore-true-love .room-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, #0a0604 100%);
  animation: scn3-room-fade 15s ease-in-out infinite alternate;
}
.scn-improvisatore-true-love .couch {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(170deg, #5a3a2a 0%, #3a2018 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,.7);
}
.scn-improvisatore-true-love .figure-left {
  position: absolute; bottom: 20%; left: 18%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: scn3-fig-l 8s ease-in-out infinite alternate;
}
.scn-improvisatore-true-love .figure-center {
  position: absolute; bottom: 22%; left: 43%; width: 14%; height: 42%;
  background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: scn3-fig-c 6s ease-in-out infinite alternate;
}
.scn-improvisatore-true-love .figure-right {
  position: absolute; bottom: 20%; right: 18%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: scn3-fig-r 7s ease-in-out infinite alternate;
}
.scn-improvisatore-true-love .chandelier {
  position: absolute; top: 8%; left: 35%; width: 30%; height: 6%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2818 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-improvisatore-true-love .chandelier-glow {
  position: absolute; top: 10%; left: 38%; width: 24%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, #f0c080 0%, transparent 60%);
  filter: blur(10px);
  animation: scn3-chandelier 10s ease-in-out infinite alternate;
}
.scn-improvisatore-true-love .rug {
  position: absolute; bottom: 0; left: 15%; width: 70%; height: 5%;
  background: linear-gradient(90deg, #5a3a2a 0%, #4a2818 50%, #5a3a2a 100%);
  border-radius: 30% 30% 0 0;
}
@keyframes scn3-room-fade { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes scn3-fig-l { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes scn3-fig-c { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(2px) rotate(-2deg) } }
@keyframes scn3-fig-r { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-5px) rotate(-2deg) } 100% { transform: translateX(3px) rotate(1deg) } }
@keyframes scn3-chandelier { 0% { opacity: .6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: .7; transform: scale(.95) } }

/* improvisatore-love-soul */

.scn-improvisatore-love-soul {
  background:
    radial-gradient(ellipse at 40% 30%, #3a2a1a 0%, #1a1210 70%),
    linear-gradient(160deg, #2a1a12 0%, #0e0a06 100%);
}
.scn-improvisatore-love-soul .room-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 60%, transparent 20%, #0a0604 100%);
  animation: scn4-room-drift 18s ease-in-out infinite alternate;
}
.scn-improvisatore-love-soul .window {
  position: absolute; top: 5%; left: 10%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.9);
  border: 2px solid #4a3a2a;
}
.scn-improvisatore-love-soul .figure-standing {
  position: absolute; bottom: 15%; left: 45%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scn4-figure 9s ease-in-out infinite alternate;
}
.scn-improvisatore-love-soul .lantern {
  position: absolute; bottom: 40%; left: 42%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-improvisatore-love-soul .lantern-glow {
  position: absolute; bottom: 38%; left: 40%; width: 10%; height: 20%;
  background: radial-gradient(circle, #f0c060 0%, #e08030 40%, transparent 70%);
  filter: blur(8px);
  animation: scn4-lantern-glow 3s ease-in-out infinite alternate;
}
.scn-improvisatore-love-soul .mirror {
  position: absolute; top: 10%; right: 12%; width: 25%; height: 50%;
  background: linear-gradient(170deg, #2a323a 0%, #1a222a 100%);
  border-radius: 10% 10% 15% 15%;
  box-shadow: 0 0 20px rgba(0,0,0,.8);
  border: 3px solid #4a3a2a;
  animation: scn4-mirror 12s ease-in-out infinite alternate;
}
.scn-improvisatore-love-soul .table {
  position: absolute; bottom: 5%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
}
.scn-improvisatore-love-soul .glass {
  position: absolute; bottom: 10%; left: 45%; width: 5%; height: 8%;
  background: linear-gradient(170deg, transparent 30%, #c0a080 100%);
  border-radius: 10% 10% 20% 20%;
  backdrop-filter: blur(2px);
  opacity: .6;
  animation: scn4-glass 5s ease-in-out infinite alternate;
}
@keyframes scn4-room-drift { 0% { opacity: .75 } 50% { opacity: .95 } 100% { opacity: .8 } }
@keyframes scn4-figure { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(1px) rotate(-1deg) } }
@keyframes scn4-lantern-glow { 0% { opacity: .7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.15) } 100% { opacity: .8; transform: scale(.9) } }
@keyframes scn4-mirror { 0% { box-shadow: 0 0 15px rgba(0,0,0,.7) } 50% { box-shadow: 0 0 30px rgba(0,0,0,.9) } 100% { box-shadow: 0 0 20px rgba(0,0,0,.8) } }
@keyframes scn4-glass { 0% { opacity: .4; transform: scaleY(1) } 50% { opacity: .8; transform: scaleY(1.05) } 100% { opacity: .5; transform: scaleY(.98) } }

.scn-epitaph-conclusion {
  background:
    linear-gradient(180deg, #2b1e16 0%, #1a1310 40%, #0f0b0a 100%),
    radial-gradient(ellipse at 50% 40%, #3a2a1e 0%, transparent 70%);
}
.scn-epitaph-conclusion .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2b1e16 0%, #1e1510 100%);
  animation: ec-wall 20s ease-in-out infinite alternate;
}
.scn-epitaph-conclusion .shelf-upper {
  position:absolute; top:20%; left:5%; right:5%; height:4px;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #4a3a2a 100%);
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
  animation: ec-shelf 15s ease-in-out infinite alternate;
}
.scn-epitaph-conclusion .shelf-lower {
  position:absolute; top:46%; left:8%; right:8%; height:4px;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #4a3a2a 100%);
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
  animation: ec-shelf 15s ease-in-out infinite alternate-reverse;
}
.scn-epitaph-conclusion .book-left {
  position:absolute; top:22%; left:15%; width:18px; height:50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 1px 3px 3px 1px;
  transform: rotate(-2deg);
  box-shadow: 1px 1px 3px rgba(0,0,0,.5);
  animation: ec-book-l 8s ease-in-out infinite;
}
.scn-epitaph-conclusion .book-right {
  position:absolute; top:24%; left:22%; width:14px; height:44px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 3px 1px 1px 3px;
  transform: rotate(1deg);
  box-shadow: 1px 1px 3px rgba(0,0,0,.5);
  animation: ec-book-r 9s ease-in-out infinite;
}
.scn-epitaph-conclusion .desk {
  position:absolute; bottom:8%; left:10%; right:10%; height:18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.6);
  animation: ec-desk 12s ease-in-out infinite alternate;
}
.scn-epitaph-conclusion .tome {
  position:absolute; bottom:22%; left:38%; right:38%; height:16%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 3px 3px 6px 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: ec-tome 10s ease-in-out infinite alternate;
}
.scn-epitaph-conclusion .candle {
  position:absolute; bottom:24%; left:58%; width:8px; height:34px;
  background: linear-gradient(180deg, #d4b89a 0%, #b89a7a 40%, #8a6a4a 100%);
  border-radius: 3px 3px 1px 1px;
  box-shadow: -1px 0 4px rgba(0,0,0,.4);
  animation: ec-candle 5s ease-in-out infinite;
}
.scn-epitaph-conclusion .flame {
  position:absolute; bottom:55%; left:58.5%; width:6px; height:12px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 50%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 80% 80% 20% 20%;
  box-shadow: 0 0 16px 6px rgba(255,160,64,.6), 0 0 32px 12px rgba(255,160,64,.3);
  animation: ec-flame 2s ease-in-out infinite alternate;
}
@keyframes ec-wall {
  0% { opacity:.9 }
  50% { opacity:1 }
  100% { opacity:.85 }
}
@keyframes ec-shelf {
  0% { transform: translateY(0) }
  50% { transform: translateY(-1px) }
  100% { transform: translateY(1px) }
}
@keyframes ec-book-l {
  0%,100% { transform: rotate(-2deg) translateY(0) }
  50% { transform: rotate(-1deg) translateY(-1px) }
}
@keyframes ec-book-r {
  0%,100% { transform: rotate(1deg) translateY(0) }
  50% { transform: rotate(2deg) translateY(-1px) }
}
@keyframes ec-desk {
  0% { box-shadow: inset 0 8px 16px rgba(0,0,0,.6) }
  50% { box-shadow: inset 0 10px 20px rgba(0,0,0,.5) }
  100% { box-shadow: inset 0 6px 12px rgba(0,0,0,.7) }
}
@keyframes ec-tome {
  0%,100% { transform: scaleY(1) translateY(0) }
  50% { transform: scaleY(1.01) translateY(-1px) }
}
@keyframes ec-candle {
  0%,100% { transform: translateY(0) scaleY(1) }
  50% { transform: translateY(-1px) scaleY(1.02) }
}
@keyframes ec-flame {
  0% { transform: scaleY(1) scaleX(1); opacity:.9 }
  25% { transform: scaleY(1.15) scaleX(.85); opacity:1 }
  50% { transform: scaleY(.95) scaleX(1.05); opacity:.95 }
  75% { transform: scaleY(1.1) scaleX(.9); opacity:1 }
  100% { transform: scaleY(.9) scaleX(1.1); opacity:.85 }
}

.scn-title-page-collected {
  background:
    linear-gradient(180deg, #e8ddd0 0%, #d4c8b8 40%, #c0b4a4 100%),
    radial-gradient(ellipse at 50% 30%, #f0e8dc 0%, transparent 70%);
}
.scn-title-page-collected .wall-bright {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #e8ddd0 0%, #d4c8b8 100%);
  animation: tp-wall 18s ease-in-out infinite alternate;
}
.scn-title-page-collected .window-frame {
  position:absolute; top:4%; left:36%; right:36%; height:28%;
  background: linear-gradient(180deg, #c0b4a4 0%, #a89888 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 0 20px rgba(180,170,150,.8);
  animation: tp-window 20s ease-in-out infinite alternate;
}
.scn-title-page-collected .light-beam {
  position:absolute; top:8%; left:38%; right:38%; height:18%;
  background: linear-gradient(180deg, rgba(255,245,230,.6) 0%, transparent 100%);
  filter: blur(8px);
  animation: tp-beam 8s ease-in-out infinite alternate;
}
.scn-title-page-collected .pedestal {
  position:absolute; bottom:20%; left:30%; right:30%; height:8%;
  background: linear-gradient(180deg, #b8a898 0%, #a08878 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,.15);
  animation: tp-ped 14s ease-in-out infinite alternate;
}
.scn-title-page-collected .book-open {
  position:absolute; bottom:28%; left:32%; right:32%; height:20%;
  background: linear-gradient(180deg, #c8b8a8 0%, #b0a090 100%);
  border-radius: 6% 6% 3% 3% / 50% 50% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,.1);
  animation: tp-book 12s ease-in-out infinite alternate;
}
.scn-title-page-collected .page-left {
  position:absolute; bottom:29%; left:33%; width:14%; height:17%;
  background: linear-gradient(180deg, #f8f0e0 0%, #e8dcc8 100%);
  border-radius: 4% 0 0 4% / 60% 0 0 40%;
  box-shadow: inset -2px 0 6px rgba(0,0,0,.05);
  transform: perspective(120px) rotateY(3deg);
  animation: tp-page-l 10s ease-in-out infinite alternate;
}
.scn-title-page-collected .page-right {
  position:absolute; bottom:29%; right:33%; width:14%; height:17%;
  background: linear-gradient(180deg, #f8f0e0 0%, #e8dcc8 100%);
  border-radius: 0 4% 4% 0 / 0 60% 40% 0;
  box-shadow: inset 2px 0 6px rgba(0,0,0,.05);
  transform: perspective(120px) rotateY(-3deg);
  animation: tp-page-r 10s ease-in-out infinite alternate-reverse;
}
.scn-title-page-collected .ornament {
  position:absolute; bottom:44%; left:45%; right:45%; height:4%;
  background: radial-gradient(ellipse, #b8a088 0%, transparent 80%);
  border-radius: 50%;
  animation: tp-orn 16s ease-in-out infinite;
}
@keyframes tp-wall {
  0% { opacity:.95 }
  50% { opacity:1 }
  100% { opacity:.9 }
}
@keyframes tp-window {
  0% { box-shadow: inset 0 0 20px rgba(180,170,150,.8) }
  50% { box-shadow: inset 0 0 28px rgba(200,190,170,.9) }
  100% { box-shadow: inset 0 0 16px rgba(160,150,130,.7) }
}
@keyframes tp-beam {
  0% { opacity:.5; transform: scaleY(1) }
  50% { opacity:.8; transform: scaleY(1.05) }
  100% { opacity:.6; transform: scaleY(.95) }
}
@keyframes tp-ped {
  0%,100% { transform: translateY(0) }
  50% { transform: translateY(-2px) }
}
@keyframes tp-book {
  0% { transform: scaleY(1) }
  50% { transform: scaleY(1.01) }
  100% { transform: scaleY(.99) }
}
@keyframes tp-page-l {
  0% { transform: perspective(120px) rotateY(3deg) }
  50% { transform: perspective(120px) rotateY(4deg) }
  100% { transform: perspective(120px) rotateY(2deg) }
}
@keyframes tp-page-r {
  0% { transform: perspective(120px) rotateY(-3deg) }
  50% { transform: perspective(120px) rotateY(-4deg) }
  100% { transform: perspective(120px) rotateY(-2deg) }
}
@keyframes tp-orn {
  0%,100% { transform: scaleX(1) }
  50% { transform: scaleX(1.3) }
}

.scn-table-of-contents {
  background:
    linear-gradient(180deg, #e0d8cc 0%, #d0c8b8 40%, #c0b8a8 100%),
    radial-gradient(ellipse at 50% 20%, #f0e8dc 0%, transparent 70%);
}
.scn-table-of-contents .backdrop {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #e0d8cc 0%, #d0c8b8 100%);
  animation: tc-bg 20s ease-in-out infinite alternate;
}
.scn-table-of-contents .column-a {
  position:absolute; top:8%; left:12%; right:52%; bottom:22%;
  background: linear-gradient(180deg, #f8f0e0 0%, #e8e0d0 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 2px 0 8px rgba(0,0,0,.08);
  animation: tc-col 16s ease-in-out infinite alternate;
}
.scn-table-of-contents .column-b {
  position:absolute; top:8%; left:52%; right:12%; bottom:22%;
  background: linear-gradient(180deg, #f8f0e0 0%, #e8e0d0 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: -2px 0 8px rgba(0,0,0,.08);
  animation: tc-col 16s ease-in-out infinite alternate-reverse;
}
.scn-table-of-contents .line-1 {
  position:absolute; top:16%; left:16%; right:54%; height:3px;
  background: linear-gradient(90deg, #908070 0%, #c0b0a0 60%, transparent 100%);
  border-radius: 2px;
  animation: tc-line1 12s ease-in-out infinite;
}
.scn-table-of-contents .line-2 {
  position:absolute; top:24%; left:16%; right:56%; height:3px;
  background: linear-gradient(90deg, #908070 0%, #c0b0a0 50%, transparent 100%);
  border-radius: 2px;
  animation: tc-line2 14s ease-in-out infinite alternate;
}
.scn-table-of-contents .line-3 {
  position:absolute; top:32%; left:16%; right:50%; height:3px;
  background: linear-gradient(90deg, #908070 0%, #c0b0a0 40%, transparent 100%);
  border-radius: 2px;
  animation: tc-line3 10s ease-in-out infinite;
}
.scn-table-of-contents .line-4 {
  position:absolute; top:56%; left:56%; right:18%; height:3px;
  background: linear-gradient(90deg, #908070 0%, #c0b0a0 50%, transparent 100%);
  border-radius: 2px;
  animation: tc-line4 18s ease-in-out infinite alternate;
}
.scn-table-of-contents .line-5 {
  position:absolute; top:64%; left:56%; right:20%; height:3px;
  background: linear-gradient(90deg, #908070 0%, #c0b0a0 40%, transparent 100%);
  border-radius: 2px;
  animation: tc-line5 13s ease-in-out infinite alternate-reverse;
}
.scn-table-of-contents .page-marker {
  position:absolute; bottom:24%; left:46%; right:46%; height:4px;
  background: linear-gradient(90deg, transparent 0%, #b8a090 50%, transparent 100%);
  border-radius: 50%;
  animation: tc-mark 20s ease-in-out infinite;
}
@keyframes tc-bg {
  0% { opacity:.95 }
  50% { opacity:1 }
  100% { opacity:.9 }
}
@keyframes tc-col {
  0%,100% { transform: translateY(0) }
  50% { transform: translateY(-2px) }
}
@keyframes tc-line1 {
  0%,100% { opacity:.6; transform: scaleX(1) }
  50% { opacity:1; transform: scaleX(1.02) }
}
@keyframes tc-line2 {
  0% { opacity:.5; transform: translateX(0) }
  50% { opacity:.9; transform: translateX(2px) }
  100% { opacity:.7; transform: translateX(0) }
}
@keyframes tc-line3 {
  0% { opacity:.7; transform: scaleX(1) }
  50% { opacity:1; transform: scaleX(1.03) }
  100% { opacity:.6; transform: scaleX(.97) }
}
@keyframes tc-line4 {
  0% { opacity:.5; transform: translateX(0) }
  50% { opacity:.9; transform: translateX(-2px) }
  100% { opacity:.7; transform: translateX(0) }
}
@keyframes tc-line5 {
  0% { opacity:.6; transform: scaleX(1) }
  50% { opacity:.9; transform: scaleX(1.04) }
  100% { opacity:.7; transform: scaleX(.96) }
}
@keyframes tc-mark {
  0%,100% { opacity:.5; transform: scaleY(1) }
  50% { opacity:.8; transform: scaleY(2) }
}

.scn-prose-versions-contents {
  background:
    linear-gradient(180deg, #e8dccc 0%, #d8ccbc 50%, #c8bcac 100%),
    radial-gradient(ellipse at 50% 40%, #f0e4d4 0%, transparent 70%);
}
.scn-prose-versions-contents .bg-cream {
  position:absolute; inset:0 0 15% 0;
  background: linear-gradient(180deg, #e8dccc 0%, #d8ccbc 100%);
  animation: pv-bg 18s ease-in-out infinite alternate;
}
.scn-prose-versions-contents .folio-left {
  position:absolute; top:6%; left:8%; right:52%; bottom:18%;
  background: linear-gradient(180deg, #f8f0e0 0%, #e8dccc 100%);
  border-radius: 3% 0 0 3% / 20% 0 0 20%;
  box-shadow: 1px 2px 8px rgba(0,0,0,.1);
  animation: pv-folio-l 14s ease-in-out infinite alternate;
}
.scn-prose-versions-contents .folio-right {
  position:absolute; top:6%; left:52%; right:8%; bottom:18%;
  background: linear-gradient(180deg, #f8f0e0 0%, #e8dccc 100%);
  border-radius: 0 3% 3% 0 / 0 20% 20% 0;
  box-shadow: -1px 2px 8px rgba(0,0,0,.1);
  animation: pv-folio-r 14s ease-in-out infinite alternate-reverse;
}
.scn-prose-versions-contents .block-a {
  position:absolute; top:14%; left:12%; right:54%; height:10%;
  background: linear-gradient(180deg, #c8b8a8 0%, #b8a898 100%);
  border-radius: 2px;
  opacity:.7;
  animation: pv-block-a 12s ease-in-out infinite;
}
.scn-prose-versions-contents .block-b {
  position:absolute; top:28%; left:12%; right:50%; height:6%;
  background: linear-gradient(180deg, #c8b8a8 0%, #b8a898 100%);
  border-radius: 2px;
  opacity:.6;
  animation: pv-block-b 16s ease-in-out infinite alternate;
}
.scn-prose-versions-contents .block-c {
  position:absolute; top:14%; left:56%; right:14%; height:8%;
  background: linear-gradient(180deg, #c8b8a8 0%, #b8a898 100%);
  border-radius: 2px;
  opacity:.7;
  animation: pv-block-c 14s ease-in-out infinite alternate-reverse;
}
.scn-prose-versions-contents .block-d {
  position:absolute; top:26%; left:56%; right:16%; height:12%;
  background: linear-gradient(180deg, #c8b8a8 0%, #b8a898 100%);
  border-radius: 2px;
  opacity:.6;
  animation: pv-block-d 18s ease-in-out infinite;
}
.scn-prose-versions-contents .ink-well {
  position:absolute; bottom:20%; left:48%; right:48%; height:6%;
  background: radial-gradient(circle, #3a2a1a 0%, #1a0e08 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: pv-well 10s ease-in-out infinite;
}
.scn-prose-versions-contents .nib {
  position:absolute; bottom:24%; left:49.5%; right:49.5%; height:10%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 80% 80%;
  transform: rotate(-8deg);
  transform-origin: bottom center;
  animation: pv-nib 4s ease-in-out infinite alternate;
}
@keyframes pv-bg {
  0% { opacity:.95 }
  50% { opacity:1 }
  100% { opacity:.9 }
}
@keyframes pv-folio-l {
  0%,100% { transform: translateX(0) translateY(0) }
  50% { transform: translateX(-2px) translateY(-1px) }
}
@keyframes pv-folio-r {
  0%,100% { transform: translateX(0) translateY(0) }
  50% { transform: translateX(2px) translateY(-1px) }
}
@keyframes pv-block-a {
  0%,100% { opacity:.6; transform: scaleX(1) }
  50% { opacity:.8; transform: scaleX(1.02) }
}
@keyframes pv-block-b {
  0% { opacity:.5; transform: translateY(0) }
  50% { opacity:.75; transform: translateY(-1px) }
  100% { opacity:.6; transform: translateY(0) }
}
@keyframes pv-block-c {
  0% { opacity:.6; transform: scaleX(1) }
  50% { opacity:.85; transform: scaleX(1.03) }
  100% { opacity:.7; transform: scaleX(.97) }
}
@keyframes pv-block-d {
  0%,100% { opacity:.5; transform: translateY(0) }
  50% { opacity:.8; transform: translateY(-2px) }
}
@keyframes pv-well {
  0%,100% { transform: scaleY(1) }
  50% { transform: scaleY(1.05) }
}
@keyframes pv-nib {
  0% { transform: rotate(-8deg) }
  50% { transform: rotate(-6deg) }
  100% { transform: rotate(-10deg) }
}

/* blessed-virgin-mother */

.scn-blessed-virgin-mother {
  background: linear-gradient(180deg, #f5e6d0 0%, #e8c8a0 40%, #d4a87a 100%),
              radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 60%);
}
.scn-blessed-virgin-mother .dawn-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #f9d8a8 0%, #f0c488 60%, #e8b870 100%);
  animation: bvm-sky 12s ease-in-out infinite alternate;
}
.scn-blessed-virgin-mother .stable-wall {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #c9955d 0%, #a87a4a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-blessed-virgin-mother .straw-bed {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #b89860 0%, #9a7a4a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.2);
}
.scn-blessed-virgin-mother .mother-silhouette {
  position: absolute; bottom: 28%; left: 38%; width: 28%; height: 45%;
  background: linear-gradient(135deg, #8a6040 0%, #5a3820 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 30px rgba(150, 100, 60, 0.3);
  animation: bvm-figure 6s ease-in-out infinite;
}
.scn-blessed-virgin-mother .child-shape {
  position: absolute; bottom: 30%; left: 48%; width: 12%; height: 15%;
  background: linear-gradient(180deg, #f0d8b0 0%, #d4b890 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  animation: bvm-child 6s ease-in-out infinite;
}
.scn-blessed-virgin-mother .halo-glow {
  position: absolute; top: 20%; left: 42%; width: 16%; height: 18%;
  background: radial-gradient(circle at center, #fff4d0 0%, #f0d890 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: bvm-halo 4s ease-in-out infinite alternate;
}
.scn-blessed-virgin-mother .dawn-ray {
  position: absolute; top: 0; width: 8%; height: 80%;
  background: linear-gradient(180deg, rgba(255, 240, 200, 0.5) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(4px);
  animation: bvm-ray 8s ease-in-out infinite alternate;
}
.scn-blessed-virgin-mother .ray-left { left: 25%; }
.scn-blessed-virgin-mother .ray-right { right: 25%; animation-delay: 2s; }

@keyframes bvm-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes bvm-figure { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes bvm-child { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.02); } }
@keyframes bvm-halo { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes bvm-ray { 0% { opacity: 0.3; transform: rotate(0deg); } 50% { opacity: 0.7; transform: rotate(2deg); } 100% { opacity: 0.4; transform: rotate(-1deg); } }

/* virgin-mother-praise */

.scn-virgin-mother-praise {
  background: linear-gradient(180deg, #0a0a24 0%, #16163a 50%, #1a1a44 100%),
              radial-gradient(ellipse at 50% 20%, #2a2a5a 0%, transparent 70%);
}
.scn-virgin-mother-praise .night-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #12123a 0%, #1a1a4e 100%);
  animation: vmp-sky 15s ease-in-out infinite alternate;
}
.scn-virgin-mother-praise .stars {
  position: absolute; top: 5%; width: 2px; height: 2px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 0 4px #fff, 0 0 8px rgba(255,255,255,0.3);
}
.scn-virgin-mother-praise .stars-a {
  left: 20%; width: 3px; height: 3px;
  animation: vmp-twinkle 3s ease-in-out infinite;
}
.scn-virgin-mother-praise .stars-b {
  right: 30%; width: 2px; height: 2px;
  animation: vmp-twinkle 4s ease-in-out infinite 1s;
}
.scn-virgin-mother-praise .church-arch {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 55%;
  background: linear-gradient(180deg, #2a2040 0%, #1a1030 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-virgin-mother-praise .madonna-figure {
  position: absolute; bottom: 25%; left: 35%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #3a2840 0%, #1a1020 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  box-shadow: 0 0 40px rgba(200, 180, 240, 0.2);
  animation: vmp-figure 8s ease-in-out infinite;
}
.scn-virgin-mother-praise .nimbus-light {
  position: absolute; top: 22%; left: 42%; width: 18%; height: 20%;
  background: radial-gradient(circle, #d4c0f0 0%, #b0a0d0 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: vmp-nimbus 5s ease-in-out infinite alternate;
}
.scn-virgin-mother-praise .praying-hands {
  position: absolute; bottom: 32%; left: 45%; width: 10%; height: 12%;
  background: linear-gradient(180deg, #3a2840 0%, #2a1830 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  transform-origin: bottom center;
  animation: vmp-hands 4s ease-in-out infinite alternate;
}

@keyframes vmp-sky { 0%, 100% { opacity: 0.7; } 50% { opacity: 1; } }
@keyframes vmp-twinkle { 0%, 100% { opacity: 0.4; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } }
@keyframes vmp-figure { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes vmp-nimbus { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes vmp-hands { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }

/* otfried-monk-schilter */

.scn-otfried-monk-schilter {
  background: linear-gradient(180deg, #e8d8bb 0%, #d4c4a0 50%, #c0b08a 100%),
              radial-gradient(ellipse at 80% 30%, #f0e8d0 0%, transparent 50%);
}
.scn-otfried-monk-schilter .study-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d8c8a8 0%, #c8b890 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.1);
}
.scn-otfried-monk-schilter .desk-shelf {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #8a7048 0%, #6a5230 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-otfried-monk-schilter .open-book {
  position: absolute; bottom: 28%; left: 32%; width: 36%; height: 20%;
  background: linear-gradient(135deg, #f0e0c8 0%, #d8c8a8 50%, #c8b890 100%);
  border-radius: 4px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.2);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  animation: oms-book 6s ease-in-out infinite;
}
.scn-otfried-monk-schilter .monk-torso {
  position: absolute; bottom: 25%; left: 30%; width: 22%; height: 50%;
  background: linear-gradient(180deg, #4a3820 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,0.3);
  animation: oms-torso 8s ease-in-out infinite;
}
.scn-otfried-monk-schilter .monk-hand {
  position: absolute; bottom: 30%; left: 42%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #d4b890 0%, #c0a080 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  transform-origin: bottom center;
  animation: oms-hand 3s ease-in-out infinite alternate;
}
.scn-otfried-monk-schilter .window-light {
  position: absolute; top: 10%; right: 8%; width: 20%; height: 40%;
  background: linear-gradient(135deg, #fff8e0 0%, #f0e0c0 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  filter: blur(4px);
  opacity: 0.5;
  animation: oms-light 10s ease-in-out infinite alternate;
}
.scn-otfried-monk-schilter .parchment-stack {
  position: absolute; bottom: 22%; right: 18%; width: 14%; height: 10%;
  background: linear-gradient(180deg, #e8d8b8 0%, #d0c0a0 100%);
  border-radius: 2px;
  box-shadow: 0 3px 8px rgba(0,0,0,0.2);
}

@keyframes oms-book { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes oms-torso { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes oms-hand { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(1.05); } 100% { transform: rotate(-5deg) scaleX(0.95); } }
@keyframes oms-light { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

/* catullian-hendecasyllables */

.scn-catullian-hendecasyllables {
  background: linear-gradient(180deg, #0a1628 0%, #1a2a44 40%, #2a3a54 100%),
              radial-gradient(ellipse at 50% 0%, #3a5a7a 0%, transparent 60%);
}
.scn-catullian-hendecasyllables .moonlit-sea {
  position: absolute; inset: 40% 0 0 0;
  background: linear-gradient(180deg, #1a2a4a 0%, #2a3a5a 100%);
  animation: cat-sea 20s ease-in-out infinite alternate;
}
.scn-catullian-hendecasyllables .rocky-cliff {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-catullian-hendecasyllables .temple-columns {
  position: absolute; bottom: 30%; width: 6%; height: 50%;
  background: linear-gradient(180deg, #b8b0a0 0%, #8a8070 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(200, 200, 220, 0.1);
}
.scn-catullian-hendecasyllables .column-left { left: 25%; }
.scn-catullian-hendecasyllables .column-right { right: 25%; }
.scn-catullian-hendecasyllables .laurel-branches {
  position: absolute; bottom: 55%; left: 15%; right: 15%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, #2a4a2a 0%, transparent 70%);
  clip-path: polygon(0% 100%, 20% 40%, 40% 70%, 60% 30%, 80% 60%, 100% 80%, 100% 100%);
  animation: cat-laurel 8s ease-in-out infinite alternate;
}
.scn-catullian-hendecasyllables .moon-circle {
  position: absolute; top: 8%; left: 42%; width: 16%; height: 16%;
  background: radial-gradient(circle, #f8f8ff 0%, #d0d8f0 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px rgba(200, 220, 255, 0.4);
  animation: cat-moon 12s ease-in-out infinite;
}
.scn-catullian-hendecasyllables .moon-reflection {
  position: absolute; top: 45%; left: 46%; width: 8%; height: 20%;
  background: linear-gradient(180deg, rgba(200, 220, 255, 0.4) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  filter: blur(6px);
  opacity: 0.5;
  animation: cat-moonline 6s ease-in-out infinite alternate;
}
.scn-catullian-hendecasyllables .distant-sails {
  position: absolute; top: 35%; right: 15%; width: 4%; height: 6%;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  clip-path: polygon(0% 0%, 100% 100%, 0% 100%);
  animation: cat-sail 15s linear infinite;
}

@keyframes cat-sea { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes cat-laurel { 0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.05); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.9; } }
@keyframes cat-moon { 0%, 100% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.05); opacity: 1; } }
@keyframes cat-moonline { 0% { opacity: 0.3; transform: scaleY(0.8); } 50% { opacity: 0.7; transform: scaleY(1); } 100% { opacity: 0.4; transform: scaleY(0.9); } }
@keyframes cat-sail { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-10px) scaleX(0.8); } 100% { transform: translateX(0) scaleX(1); } }

.scn-publication-history-ox {
  background: linear-gradient(135deg, #e8dcc8 0%, #c4b49c 50%, #a8947a 100%),
              radial-gradient(ellipse at 50% 0%, #f5efe6 0%, transparent 70%);
}
.scn-publication-history-ox .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d4c9b4 0%, #b9a78c 100%);
  animation: pho-wall 20s ease-in-out infinite alternate;
}
.scn-publication-history-ox .window {
  position: absolute; top: 8%; left: 20%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #b0d0e0 0%, #8ab0c8 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,240,0.4), 0 0 60px rgba(200,220,240,0.2);
  animation: pho-window 8s ease-in-out infinite alternate;
}
.scn-publication-history-ox .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 50%;
  background: linear-gradient(180deg, #8b6f4e 0%, #674c2e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-publication-history-ox .book {
  position: absolute; bottom: 28%; left: 30%; width: 25%; height: 20%;
  background: linear-gradient(135deg, #f5e6c8 0%, #d4b896 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.4);
  transform: rotate(-2deg);
  animation: pho-book 6s ease-in-out infinite;
}
.scn-publication-history-ox .inkwell {
  position: absolute; bottom: 35%; left: 18%; width: 6%; height: 8%;
  background: radial-gradient(circle at 40% 30%, #2a2a2a 0%, #111 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
}
.scn-publication-history-ox .quill {
  position: absolute; bottom: 40%; left: 22%; width: 2%; height: 15%;
  background: linear-gradient(180deg, #e8ddd0 0%, #b8a898 50%, #706050 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: pho-quill 3s ease-in-out infinite alternate;
}
.scn-publication-history-ox .paper-scroll {
  position: absolute; bottom: 30%; left: 55%; width: 20%; height: 12%;
  background: linear-gradient(135deg, #f8f0e0 0%, #dcccac 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transform: rotate(3deg);
  animation: pho-scroll 10s linear infinite;
}
@keyframes pho-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes pho-window { 0% { filter:brightness(0.9)} 50% { filter:brightness(1.1)} 100% { filter:brightness(0.95)} }
@keyframes pho-book { 0%,100% { transform: rotate(-2deg) translateY(0)} 50% { transform: rotate(-1deg) translateY(-2px)} }
@keyframes pho-quill { 0% { transform: rotate(-10deg) scale(1)} 50% { transform: rotate(5deg) scale(1.05)} 100% { transform: rotate(-8deg) scale(0.98)} }
@keyframes pho-scroll { 0% { transform: rotate(3deg) translateX(0)} 50% { transform: rotate(4deg) translateX(5px)} 100% { transform: rotate(2deg) translateX(-3px)} }

.scn-notes-on-text {
  background: linear-gradient(180deg, #e5e0d8 0%, #c8c0b4 50%, #a8a090 100%),
              radial-gradient(ellipse at 50% 100%, #d8d0c4 0%, transparent 60%);
}
.scn-notes-on-text .page {
  position: absolute; inset: 10% 10% 10% 10%;
  background: linear-gradient(135deg, #f8f4ec 0%, #e8e0d4 100%);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  animation: not-page 12s ease-in-out infinite alternate;
}
.scn-notes-on-text .text-lines {
  position: absolute; top: 15%; left: 15%; right: 15%; bottom: 15%;
  background: repeating-linear-gradient(180deg, transparent, transparent 4px, #c0b8a8 4px, #c0b8a8 5px);
  opacity: 0.6;
  animation: not-lines 8s linear infinite;
}
.scn-notes-on-text .annotations {
  position: absolute; top: 30%; left: 65%; width: 25%; height: 40%;
  background: radial-gradient(circle, #b8a858 0%, transparent 70%);
  opacity: 0.5;
  border-radius: 50%;
  animation: not-annot 5s ease-in-out infinite alternate;
}
.scn-notes-on-text .magnifier {
  position: absolute; bottom: 20%; left: 25%; width: 12%; height: 12%;
  background: radial-gradient(circle at 40% 30%, #e8f0f8 0%, #b0c8d8 50%, #8098a8 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4), inset 0 0 10px rgba(255,255,255,0.3);
  animation: not-magn 4s ease-in-out infinite;
}
.scn-notes-on-text .hand-shadow {
  position: absolute; bottom: 15%; left: 35%; width: 18%; height: 25%;
  background: linear-gradient(180deg, transparent 0%, #6a5a4a 30%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.3;
  animation: not-hand 3s ease-in-out infinite alternate;
}
.scn-notes-on-text .lamp-cone {
  position: absolute; top: 0; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, #f8f0d8 0%, transparent 100%);
  opacity: 0.15;
  clip-path: polygon(30% 0, 70% 0, 100% 100%, 0% 100%);
  animation: not-lamp 9s ease-in-out infinite alternate;
}
@keyframes not-page { 0% { filter:brightness(0.95)} 50% { filter:brightness(1.05)} 100% { filter:brightness(0.98)} }
@keyframes not-lines { 0% { opacity:0.5} 50% { opacity:0.7} 100% { opacity:0.55} }
@keyframes not-annot { 0% { transform: scale(1) rotate(0deg)} 50% { transform: scale(1.05) rotate(2deg)} 100% { transform: scale(0.95) rotate(-1deg)} }
@keyframes not-magn { 0% { transform: translate(0,0) rotate(0deg)} 25% { transform: translate(5px,-3px) rotate(5deg)} 75% { transform: translate(-2px,2px) rotate(-3deg)} 100% { transform: translate(0,0) rotate(0deg)} }
@keyframes not-hand { 0% { transform: translateY(0) rotate(0deg)} 100% { transform: translateY(-5px) rotate(3deg)} }
@keyframes not-lamp { 0% { opacity:0.1} 50% { opacity:0.2} 100% { opacity:0.12} }

.scn-superstition-devils-spittle {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2030 40%, #3a2a20 100%),
              radial-gradient(ellipse at 50% 70%, #4a3020 0%, transparent 70%);
}
.scn-superstition-devils-spittle .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  animation: sds-wall 15s ease-in-out infinite alternate;
}
.scn-superstition-devils-spittle .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%);
  border-radius: 0 0 20% 20%;
}
.scn-superstition-devils-spittle .candle {
  position: absolute; bottom: 42%; left: 20%; width: 3%; height: 15%;
  background: linear-gradient(180deg, #e8d8b0 0%, #8a6a3a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 8px 2px rgba(200,150,80,0.3);
  animation: sds-candle 4s ease-in-out infinite;
}
.scn-superstition-devils-spittle .flame {
  position: absolute; bottom: 56%; left: 20.5%; width: 2%; height: 4%;
  background: radial-gradient(circle, #ffd080 0%, #e8a030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.6), 0 0 40px 12px rgba(255,180,80,0.3);
  animation: sds-flame 1s ease-in-out infinite alternate;
}
.scn-superstition-devils-spittle .figure {
  position: absolute; bottom: 30%; left: 45%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #0a0a10 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: sds-fig 6s ease-in-out infinite;
}
.scn-superstition-devils-spittle .straw {
  position: absolute; bottom: 35%; left: 42%; width: 8%; height: 1%;
  background: linear-gradient(90deg, #b8a060 0%, #8a6a30 100%);
  border-radius: 50%;
  transform: rotate(30deg);
  animation: sds-straw 3s ease-in-out infinite alternate;
}
.scn-superstition-devils-spittle .devil-shadow {
  position: absolute; bottom: 25%; right: 12%; width: 20%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, #0a0a1a 40%, #050510 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  opacity: 0.5;
  animation: sds-shadow 8s ease-in-out infinite alternate;
}
@keyframes sds-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes sds-candle { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } }
@keyframes sds-flame { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.1) translateY(-1px) } 100% { transform: scale(0.95) translateY(1px) } }
@keyframes sds-fig { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-3px) } 100% { transform: rotate(-6deg) translateY(0) } }
@keyframes sds-straw { 0% { transform: rotate(30deg) translateX(0) } 100% { transform: rotate(40deg) translateX(5px) } }
@keyframes sds-shadow { 0% { transform: scaleX(1) opacity(0.5) } 50% { transform: scaleX(1.05) opacity(0.6) } 100% { transform: scaleX(0.95) opacity(0.4) } }

.scn-textual-variations-ox {
  background: linear-gradient(180deg, #d8d4cc 0%, #b0aca4 50%, #8a867c 100%),
              radial-gradient(ellipse at 50% 30%, #e8e4dc 0%, transparent 70%);
}
.scn-textual-variations-ox .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 60%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-textual-variations-ox .book-left {
  position: absolute; bottom: 30%; left: 15%; width: 30%; height: 22%;
  background: linear-gradient(135deg, #f0e8d8 0%, #d0c0a8 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
  transform: rotate(-3deg);
  animation: tvo-book 7s ease-in-out infinite alternate;
}
.scn-textual-variations-ox .book-right {
  position: absolute; bottom: 30%; right: 15%; width: 30%; height: 22%;
  background: linear-gradient(135deg, #e8e0d0 0%, #c8b8a0 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
  transform: rotate(2deg);
  animation: tvo-book2 7s ease-in-out infinite alternate;
}
.scn-textual-variations-ox .ruler {
  position: absolute; bottom: 42%; left: 20%; width: 40%; height: 1.5%;
  background: linear-gradient(90deg, #a09070 0%, #c8b898 50%, #a09070 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: tvo-ruler 12s linear infinite;
}
.scn-textual-variations-ox .pencil {
  position: absolute; bottom: 38%; left: 45%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #d0c048 0%, #a09020 50%, #605010 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(15deg);
  animation: tvo-pencil 4s ease-in-out infinite;
}
.scn-textual-variations-ox .marks {
  position: absolute; bottom: 35%; left: 30%; width: 20%; height: 10%;
  background: radial-gradient(circle, #4a3a2a 0%, transparent 70%);
  opacity: 0.3;
  animation: tvo-marks 3s ease-in-out infinite alternate;
}
@keyframes tvo-book { 0% { transform: rotate(-3deg) scale(1) } 50% { transform: rotate(-1deg) scale(1.02) } 100% { transform: rotate(-4deg) scale(0.98) } }
@keyframes tvo-book2 { 0% { transform: rotate(2deg) scale(1) } 50% { transform: rotate(4deg) scale(1.02) } 100% { transform: rotate(1deg) scale(0.98) } }
@keyframes tvo-ruler { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-4deg) translateX(10px) } 100% { transform: rotate(-6deg) translateX(-10px) } }
@keyframes tvo-pencil { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(20deg) translateY(-3px) } 100% { transform: rotate(12deg) translateY(2px) } }
@keyframes tvo-marks { 0% { opacity:0.2 } 50% { opacity:0.4 } 100% { opacity:0.25 } }

.scn-pang-more-sharp-grief {
  background:
    radial-gradient(ellipse at 30% 60%, #1a1a2e 0%, #0d0d1a 70%),
    linear-gradient(180deg, #12121e 0%, #20203a 50%, #0a0a12 100%);
  animation: pg-bg-pulse 12s ease-in-out infinite alternate;
}
.scn-pang-more-sharp-grief .shadow-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 70%, transparent 30%, rgba(0,0,0,0.7) 100%);
  animation: pg-shadow 6s ease-in-out infinite alternate;
}
.scn-pang-more-sharp-grief .wall {
  position: absolute; bottom: 30%; left: 0; right: 0; top: 0;
  background: linear-gradient(180deg, #2a2038 0%, #1a1228 100%);
  border-bottom: 2px solid #3a2a4a;
}
.scn-pang-more-sharp-grief .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1f1a2a 0%, #0f0a15 100%);
}
.scn-pang-more-sharp-grief .figure-kneeling {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 55px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 20%, #3a2a3a 0%, #1a1220 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.6);
  animation: pg-figure 8s ease-in-out infinite;
}
.scn-pang-more-sharp-grief .candle {
  position: absolute; bottom: 40%; left: 53%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #e8c060 0%, #a07020 100%);
  border-radius: 2px 2px 1px 1px;
  transform-origin: bottom center;
  animation: pg-candle 4s ease-in-out infinite;
}
.scn-pang-more-sharp-grief .glow {
  position: absolute; bottom: 35%; left: 52%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(232,192,96,0.8) 0%, rgba(160,112,32,0.3) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: pg-glow 3s ease-in-out infinite alternate;
}
.scn-pang-more-sharp-grief .chain {
  position: absolute; bottom: 32%; left: 48%; width: 2px; height: 20px;
  background: repeating-linear-gradient(0deg, #6a5a3a 0px, #6a5a3a 2px, transparent 2px, transparent 4px);
  transform-origin: top center;
  animation: pg-chain 2s ease-in-out infinite;
}
.scn-pang-more-sharp-grief .tear {
  position: absolute; bottom: 32%; left: 48%; width: 3px; height: 3px;
  background: radial-gradient(circle, #b0d0f0 0%, #7090b0 100%);
  border-radius: 50%;
  animation: pg-tear 4s ease-in-out infinite;
  opacity: 0.7;
}
.scn-pang-more-sharp-grief .dust {
  position: absolute; top: 20%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,180,160,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: pg-dust 15s linear infinite;
}

@keyframes pg-bg-pulse { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes pg-shadow  { 0% { opacity:0.7 } 50% { opacity:0.5 } 100% { opacity:0.8 } }
@keyframes pg-figure  { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-50%) translateY(-3px) rotate(1deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg) } }
@keyframes pg-candle  { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } }
@keyframes pg-glow    { 0% { opacity:0.6; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.8; transform: scale(1) } }
@keyframes pg-chain   { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } }
@keyframes pg-tear    { 0% { transform: translate(0,0); opacity:0.7 } 50% { transform: translate(2px,10px); opacity:0.2 } 100% { transform: translate(4px,20px); opacity:0 } }
@keyframes pg-dust    { 0% { transform: translate(0,0) scale(1); opacity:0.2 } 50% { transform: translate(30px,-20px) scale(1.5); opacity:0.1 } 100% { transform: translate(60px,-40px) scale(2); opacity:0 } }

.scn-duty-surviving-self-love {
  background:
    radial-gradient(ellipse at 30% 70%, #4a3a2a 0%, #2a1e1a 70%),
    linear-gradient(180deg, #3a2a1f 0%, #1f1510 100%);
}
.scn-duty-surviving-self-love .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e1a 100%);
  border-bottom: 1px solid #5a4a3a;
}
.scn-duty-surviving-self-love .window-frame {
  position: absolute; bottom: 35%; left: 20%; width: 80px; height: 100px;
  background: transparent;
  border: 6px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 10px rgba(0,0,0,0.3);
}
.scn-duty-surviving-self-love .window-pane {
  position: absolute; bottom: 35%; left: 20%; width: 80px; height: 100px;
  background: radial-gradient(circle at 50% 30%, #6a5a4a 0%, #3a2a1a 80%);
  opacity: 0.3;
  border-radius: 2px;
  animation: du-pane 20s linear infinite alternate;
}
.scn-duty-surviving-self-love .desk {
  position: absolute; bottom: 25%; left: 25%; width: 100px; height: 15px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: perspective(200px) rotateX(10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-duty-surviving-self-love .chair {
  position: absolute; bottom: 20%; left: 35%; width: 25px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4px 4px 8px 8px;
  transform: perspective(200px) rotateX(5deg);
}
.scn-duty-surviving-self-love .figure-seated {
  position: absolute; bottom: 22%; left: 36%; width: 20px; height: 35px;
  background: radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: du-figure 6s ease-in-out infinite alternate;
}
.scn-duty-surviving-self-love .book {
  position: absolute; bottom: 27%; left: 30%; width: 18px; height: 12px;
  background: linear-gradient(135deg, #8a7a5a, #5a4a2a);
  border-radius: 1px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-duty-surviving-self-love .lamp {
  position: absolute; bottom: 38%; left: 22%; width: 4px; height: 15px;
  background: linear-gradient(180deg, #c0a070 0%, #705030 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 10px rgba(192,160,112,0.3);
  animation: du-lamp 5s ease-in-out infinite alternate;
}
@keyframes du-pane { 0% { opacity:0.2 } 50% { opacity:0.4 } 100% { opacity:0.3 } }
@keyframes du-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes du-lamp { 0% { opacity:0.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } 100% { opacity:0.9; transform: scaleY(0.98) } }

.scn-homeless-impromptu {
  background:
    radial-gradient(ellipse at 50% 100%, #1a2a3a 0%, #0f1a2a 70%),
    linear-gradient(180deg, #0a1220 0%, #1a2a3a 50%, #0a1018 100%);
}
.scn-homeless-impromptu .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a121c 0%, #1a2a3a 100%);
  animation: ho-sky 30s linear infinite;
}
.scn-homeless-impromptu .moon {
  position: absolute; top: 10%; right: 25%; width: 40px; height: 40px;
  background: radial-gradient(circle at 40% 40%, #b0c8d8 0%, #8098a8 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(128,152,168,0.4);
  animation: ho-moon 20s linear infinite alternate;
}
.scn-homeless-impromptu .moon-glow {
  position: absolute; top: 8%; right: 23%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(176,200,216,0.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
}
.scn-homeless-impromptu .street {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-homeless-impromptu .lamppost {
  position: absolute; bottom: 28%; left: 30%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  border-radius: 2px;
}
.scn-homeless-impromptu .lamppost::after {
  content: ""; position: absolute; top: -4px; left: -6px; width: 16px; height: 8px;
  background: radial-gradient(circle, #c0d0e0 0%, #8098a8 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(192,208,224,0.3);
}
.scn-homeless-impromptu .figure-walking {
  position: absolute; bottom: 22%; left: 50%; width: 18px; height: 40px;
  background: radial-gradient(ellipse at 50% 20%, #0a1018 0%, #05080c 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ho-walk 4s ease-in-out infinite;
}
.scn-homeless-impromptu .shadow {
  position: absolute; bottom: 20%; left: 48%; width: 30px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 80%);
  border-radius: 50%;
  animation: ho-shadow 4s ease-in-out infinite;
}
.scn-homeless-impromptu .snowflakes {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(2px 2px at 10% 20%, rgba(200,220,240,0.4) 0%, transparent 100%),
              radial-gradient(1px 1px at 30% 40%, rgba(200,220,240,0.3) 0%, transparent 100%),
              radial-gradient(2px 2px at 60% 15%, rgba(200,220,240,0.5) 0%, transparent 100%),
              radial-gradient(1px 1px at 80% 35%, rgba(200,220,240,0.3) 0%, transparent 100%);
  animation: ho-snow 12s linear infinite;
}
.scn-homeless-impromptu .breath {
  position: absolute; bottom: 30%; left: 52%; width: 12px; height: 12px;
  background: radial-gradient(circle, rgba(200,220,240,0.2) 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ho-breath 3s ease-in-out infinite;
}

@keyframes ho-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ho-moon { 0% { transform: translate(0,0) scale(1); opacity:0.9 } 50% { transform: translate(5px,-3px) scale(1.03); opacity:1 } 100% { transform: translate(-2px,2px) scale(0.97); opacity:0.8 } }
@keyframes ho-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(20px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(40px) translateY(0) rotate(-1deg) } 75% { transform: translateX(60px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(80px) translateY(0) rotate(0deg) } }
@keyframes ho-shadow { 0% { transform: scale(1) } 50% { transform: scale(0.8) } 100% { transform: scale(1.1) } }
@keyframes ho-snow { 0% { transform: translateY(0) } 100% { transform: translateY(100vh) } }
@keyframes ho-breath { 0% { opacity:0.1; transform: scale(0.8) } 50% { opacity:0.4; transform: scale(1.5) } 100% { opacity:0; transform: scale(2) translateY(-10px) } }

.scn-lines-berengarius {
  background:
    radial-gradient(ellipse at 50% 60%, #1a1018 0%, #0a0508 80%),
    linear-gradient(180deg, #0d080a 0%, #1a1018 50%, #050205 100%);
}
.scn-lines-berengarius .cell-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1a20 0%, #1a0a10 100%);
  border-bottom: 1px solid #3a2a2a;
}
.scn-lines-berengarius .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1015 0%, #0a0508 100%);
}
.scn-lines-berengarius .light-beam {
  position: absolute; top: 0; left: 50%; width: 2px; height: 80%;
  background: linear-gradient(180deg, rgba(200,180,160,0.4) 0%, transparent 100%);
  transform: translateX(-50%) skewX(-5deg);
  box-shadow: 0 0 30px 5px rgba(200,180,160,0.1);
  animation: be-light 10s ease-in-out infinite alternate;
}
.scn-lines-berengarius .cross {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 50px;
  background: transparent;
  border: 4px solid #4a3a3a;
  border-radius: 2px;
  transform: translateX(-50%);
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
}
.scn-lines-berengarius .cross::before {
  content: ""; position: absolute; top: -8px; left: 3px; width: 16px; height: 12px;
  background: transparent;
  border: 4px solid #4a3a3a;
  border-bottom: none;
  border-radius: 2px 2px 0 0;
}
.scn-lines-berengarius .figure-cowering {
  position: absolute; bottom: 25%; left: 50%; width: 28px; height: 45px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #2a1a1a 0%, #0a0505 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  animation: be-figure 8s ease-in-out infinite;
}
.scn-lines-berengarius .figure-cowering::after {
  content: ""; position: absolute; bottom: 10%; left: 50%; width: 12px; height: 8px;
  background: #1a1010;
  border-radius: 50%;
  transform: translateX(-50%);
}
.scn-lines-berengarius .rosary {
  position: absolute; bottom: 28%; left: 48%; width: 16px; height: 16px;
  background: radial-gradient(circle, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 50%;
  animation: be-rosary 6s ease-in-out infinite alternate;
}
.scn-lines-berengarius .shadow-bars {
  position: absolute; top: 0; left: 15%; width: 8px; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(2px);
  animation: be-bars 15s linear infinite;
}
.scn-lines-berengarius .dust-motes {
  position: absolute; top: 10%; left: 30%; width: 4px; height: 4px;
  background: radial-gradient(circle, rgba(200,180,160,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: be-dust 20s linear infinite;
}

@keyframes be-light { 0% { opacity:0.2; transform: translateX(-50%) skewX(-5deg) scaleY(0.9) } 50% { opacity:0.6; transform: translateX(-50%) skewX(-3deg) scaleY(1) } 100% { opacity:0.3; transform: translateX(-50%) skewX(-7deg) scaleY(0.95) } }
@keyframes be-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-50%) translateY(-2px) rotate(2deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(-2deg) } }
@keyframes be-rosary { 0% { transform: rotate(0deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(-5deg) } }
@keyframes be-bars { 0% { transform: translateX(0) } 50% { transform: translateX(20px) } 100% { transform: translateX(0) } }
@keyframes be-dust { 0% { transform: translate(0,0) scale(1); opacity:0.1 } 50% { transform: translate(30px,-20px) scale(1.5); opacity:0.3 } 100% { transform: translate(60px,-40px) scale(2); opacity:0 } }

/* Scene: israels-lament-funeral */

.scn-israels-lament-funeral {
  background: linear-gradient(160deg, #1a1515 0%, #2c2220 30%, #1e1817 70%, #100e0d 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a22 0%, transparent 60%);
}
.scn-israels-lament-funeral .bg-dark { position:absolute; inset:0; background:linear-gradient(180deg, #0a0808 0%, #161212 100%); animation:if-bgdark 12s ease-in-out infinite alternate; }
.scn-israels-lament-funeral .bg-mid { position:absolute; inset:10% 5% 15% 5%; background:linear-gradient(135deg, #2a201e 0%, #1c1615 50%, #100c0b 100%); border-radius:5% / 10%; box-shadow:inset 0 0 60px rgba(0,0,0,.6); }
.scn-israels-lament-funeral .coffin { position:absolute; bottom:15%; left:50%; width:120px; height:60px; transform:translateX(-50%); background:linear-gradient(180deg, #4a3e3a 0%, #2d2422 100%); border-radius:10% 10% 5% 5%; box-shadow:0 8px 30px rgba(0,0,0,.7); }
.scn-israels-lament-funeral .candle-glow { position:absolute; bottom:45%; left:50%; width:30px; height:40px; transform:translate(-50%,-50%); background:radial-gradient(circle, #e8c080 0%, #c89050 40%, transparent 70%); border-radius:50%; box-shadow:0 0 50px 20px rgba(200,144,80,.3), 0 0 100px 40px rgba(200,144,80,.1); animation:if-candle 4s ease-in-out infinite alternate; }
.scn-israels-lament-funeral .figure-left { position:absolute; bottom:20%; left:20%; width:30px; height:70px; background:linear-gradient(180deg, #1a1412 0%, #0e0c0b 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:if-figure 6s ease-in-out infinite; }
.scn-israels-lament-funeral .figure-right { position:absolute; bottom:20%; right:20%; width:30px; height:70px; background:linear-gradient(180deg, #1a1412 0%, #0e0c0b 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:if-figure 6s ease-in-out infinite reverse; }
.scn-israels-lament-funeral .rose { position:absolute; bottom:28%; left:50%; width:16px; height:16px; transform:translateX(-50%); background:radial-gradient(circle, #b06040 0%, #7a3a2a 70%); border-radius:50%; box-shadow:0 0 20px 6px rgba(160,80,50,.4); animation:if-rose 5s ease-in-out infinite; }
.scn-israels-lament-funeral .shadow-drape { position:absolute; top:0; left:10%; right:10%; height:100%; background:linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 40%); pointer-events:none; }

@keyframes if-bgdark { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes if-candle { 0% { transform:translate(-50%,-50%) scale(1); box-shadow:0 0 40px 15px rgba(200,144,80,.3); } 50% { transform:translate(-50%,-50%) scale(1.05); box-shadow:0 0 60px 25px rgba(200,144,80,.4); } 100% { transform:translate(-50%,-50%) scale(.98); box-shadow:0 0 35px 10px rgba(200,144,80,.25); } }
@keyframes if-figure { 0% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-3px) rotate(-2deg); } 50% { transform:translateY(0) rotate(0deg); } 75% { transform:translateY(-2px) rotate(2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes if-rose { 0% { transform:translateX(-50%) scale(1); opacity:.8; } 50% { transform:translateX(-50%) scale(1.1); opacity:1; } 100% { transform:translateX(-50%) scale(.95); opacity:.7; } }

/* Scene: israels-lament-king-and-prince */

.scn-israels-lament-king-and-prince {
  background: linear-gradient(170deg, #14101a 0%, #1c1724 30%, #0e0c12 60%, #08070a 100%),
              radial-gradient(ellipse at 30% 40%, #2a2238 0%, transparent 70%);
}
.scn-israels-lament-king-and-prince .bg-deep { position:absolute; inset:0; background:linear-gradient(180deg, #0b0910 0%, #131016 100%); animation:ik-bg 20s ease-in-out infinite alternate; }
.scn-israels-lament-king-and-prince .throne { position:absolute; bottom:20%; left:50%; width:100px; height:90px; transform:translateX(-50%); background:linear-gradient(180deg, #3a2e2a 0%, #241e1b 100%); border-radius:20% 20% 5% 5%; box-shadow:0 10px 40px rgba(0,0,0,.6); }
.scn-israels-lament-king-and-prince .king-figure { position:absolute; bottom:20%; left:50%; width:40px; height:80px; transform:translate(-50%,-10%); background:linear-gradient(180deg, #1c1620 0%, #0e0c12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:ik-king 7s ease-in-out infinite; }
.scn-israels-lament-king-and-prince .crown-broken { position:absolute; bottom:52%; left:45%; width:30px; height:20px; transform:rotate(-25deg); background:linear-gradient(180deg, #c8b080 0%, #8c7050 100%); border-radius:30% 30% 10% 10%; clip-path:polygon(10% 0, 90% 0, 80% 30%, 100% 30%, 70% 70%, 50% 50%, 30% 70%, 0 30%, 20% 30%); box-shadow:0 0 15px 4px rgba(200,176,128,.3); animation:ik-crown 8s ease-in-out infinite; }
.scn-israels-lament-king-and-prince .rose-thorn { position:absolute; bottom:40%; left:55%; width:6px; height:30px; background:linear-gradient(180deg, #6a5030 0%, #3a2818 100%); border-radius:30%; transform:rotate(15deg); animation:ik-thorn 5s ease-in-out infinite; }
.scn-israels-lament-king-and-prince .tear { position:absolute; bottom:52%; left:52%; width:4px; height:6px; background:radial-gradient(circle, #a0b0c0 0%, transparent 100%); border-radius:50%; box-shadow:0 0 10px 3px rgba(160,176,192,.2); animation:ik-tear 3s ease-in-out infinite; }
.scn-israels-lament-king-and-prince .light-beam { position:absolute; top:0; left:30%; width:40%; height:60%; background:linear-gradient(180deg, rgba(220,200,180,.15) 0%, transparent 100%); animation:ik-beam 10s ease-in-out infinite alternate; }

@keyframes ik-bg { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.75; } }
@keyframes ik-king { 0% { transform:translate(-50%,-10%) rotate(0deg); } 25% { transform:translate(-50%,-12%) rotate(1deg); } 50% { transform:translate(-50%,-10%) rotate(0deg); } 75% { transform:translate(-50%,-11%) rotate(-1deg); } 100% { transform:translate(-50%,-10%) rotate(0deg); } }
@keyframes ik-crown { 0% { transform:rotate(-25deg) translateY(0); } 50% { transform:rotate(-20deg) translateY(-3px); } 100% { transform:rotate(-25deg) translateY(0); } }
@keyframes ik-thorn { 0% { transform:rotate(15deg) scaleY(1); } 50% { transform:rotate(18deg) scaleY(1.1); } 100% { transform:rotate(15deg) scaleY(1); } }
@keyframes ik-tear { 0% { transform:translateY(0) scale(1); opacity:.8; } 50% { transform:translateY(8px) scale(1.2); opacity:1; } 100% { transform:translateY(0) scale(1); opacity:.6; } }
@keyframes ik-beam { 0% { opacity:.5; } 50% { opacity:1; } 100% { opacity:.6; } }

/* Scene: israels-lament-britain */

.scn-israels-lament-britain {
  background: linear-gradient(180deg, #0e131a 0%, #1a2028 40%, #0a0e14 100%),
              radial-gradient(ellipse at 70% 50%, #1e2835 0%, transparent 60%);
}
.scn-israels-lament-britain .bg-night { position:absolute; inset:0; background:linear-gradient(180deg, #0a0e14 0%, #131721 100%); animation:ib-night 15s ease-in-out infinite alternate; }
.scn-israels-lament-britain .britannia { position:absolute; bottom:20%; left:50%; width:60px; height:100px; transform:translateX(-50%); background:linear-gradient(180deg, #2a3038 0%, #181c24 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow:inset 0 -10px 30px rgba(0,0,0,.4); animation:ib-brit 8s ease-in-out infinite; }
.scn-israels-lament-britain .shield-fallen { position:absolute; bottom:10%; left:30%; width:50px; height:40px; transform:rotate(-20deg); background:linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius:10% 10% 20% 20%; clip-path:polygon(0 0, 100% 0, 80% 100%, 50% 80%, 20% 100%); box-shadow:0 0 20px 5px rgba(0,0,0,.5); animation:ib-shield 10s ease-in-out infinite; }
.scn-israels-lament-britain .lyre-broken { position:absolute; bottom:15%; right:25%; width:30px; height:50px; transform:rotate(35deg); background:linear-gradient(180deg, #4a5040 0%, #2a3020 100%); border-radius:30% 30% 10% 10%; box-shadow:0 0 15px 3px rgba(0,0,0,.4); animation:ib-lyre 12s ease-in-out infinite; }
.scn-israels-lament-britain .tears-stream { position:absolute; bottom:35%; left:48%; width:3px; height:60px; background:linear-gradient(180deg, transparent 0%, #8090a0 30%, transparent 100%); border-radius:50%; animation:ib-tears 4s ease-in-out infinite; }
.scn-israels-lament-britain .gloom-cloud { position:absolute; top:10%; left:20%; width:120px; height:30px; background:radial-gradient(ellipse, rgba(30,40,50,.5) 0%, transparent 100%); filter:blur(8px); animation:ib-cloud 25s linear infinite; }

@keyframes ib-night { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes ib-brit { 0% { transform:translateX(-50%) rotate(0deg); } 25% { transform:translateX(-50%) rotate(2deg); } 50% { transform:translateX(-50%) rotate(0deg); } 75% { transform:translateX(-50%) rotate(-2deg); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes ib-shield { 0% { transform:rotate(-20deg) translateY(0); } 50% { transform:rotate(-15deg) translateY(-4px); } 100% { transform:rotate(-20deg) translateY(0); } }
@keyframes ib-lyre { 0% { transform:rotate(35deg) scale(1); } 50% { transform:rotate(40deg) scale(1.05); } 100% { transform:rotate(35deg) scale(1); } }
@keyframes ib-tears { 0% { transform:translateY(0); opacity:.7; } 50% { transform:translateY(20px); opacity:1; } 100% { transform:translateY(0); opacity:.5; } }
@keyframes ib-cloud { 0% { transform:translateX(-30px); } 100% { transform:translateX(120vw); } }

/* Scene: israels-lament-consolation */

.scn-israels-lament-consolation {
  background: linear-gradient(170deg, #0c0f14 0%, #181e24 40%, #0a0c10 100%),
              radial-gradient(ellipse at 40% 20%, #1a2230 0%, transparent 70%);
}
.scn-israels-lament-consolation .vault-arch { position:absolute; bottom:0; left:50%; width:200px; height:100px; transform:translateX(-50%); background:linear-gradient(180deg, #2a3038 0%, #14181c 100%); border-radius:50% 50% 0 0; box-shadow:inset 0 20px 60px rgba(0,0,0,.6); }
.scn-israels-lament-consolation .light-ray { position:absolute; top:0; left:40%; width:20%; height:70%; background:linear-gradient(180deg, rgba(200,180,160,.2) 0%, transparent 100%); animation:ic-light 8s ease-in-out infinite alternate; }
.scn-israels-lament-consolation .rose-cling { position:absolute; bottom:35%; left:50%; width:20px; height:20px; transform:translate(-50%,0); background:radial-gradient(circle, #c06040 0%, #803828 60%); border-radius:50%; box-shadow:0 0 25px 8px rgba(160,80,50,.3); animation:ic-rose 6s ease-in-out infinite; }
.scn-israels-lament-consolation .chest { position:absolute; bottom:25%; left:40%; width:60px; height:50px; background:linear-gradient(180deg, #4a4038 0%, #2a2420 100%); border-radius:20% 20% 10% 10%; box-shadow:0 5px 20px rgba(0,0,0,.5); animation:ic-chest 10s ease-in-out infinite; }
.scn-israels-lament-consolation .consolation-tear { position:absolute; bottom:50%; left:48%; width:5px; height:8px; background:radial-gradient(circle, #b0b8c0 0%, transparent 100%); border-radius:50%; box-shadow:0 0 15px 5px rgba(176,184,192,.2); animation:ic-tear 4s ease-in-out infinite; }
.scn-israels-lament-consolation .shadow { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); pointer-events:none; }

@keyframes ic-light { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes ic-rose { 0% { transform:translate(-50%,0) scale(1); opacity:.8; } 50% { transform:translate(-50%,-5px) scale(1.1); opacity:1; } 100% { transform:translate(-50%,0) scale(.95); opacity:.7; } }
@keyframes ic-chest { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes ic-tear { 0% { transform:translateY(0) scale(1); opacity:.7; } 50% { transform:translateY(15px) scale(1.2); opacity:1; } 100% { transform:translateY(0) scale(1); opacity:.5; } }

.scn-river-caverns-ocean { 
  background: linear-gradient(180deg, #0a1a2a 0%, #142a3a 40%, #1a3a4a 100%), 
              radial-gradient(ellipse at 50% 0%, #2a5a7a 0%, transparent 60%);
}
.scn-river-caverns-ocean .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0a1a2a 0%, #142a3a 100%); animation: rc-sky 20s ease-in-out infinite alternate; }
.scn-river-caverns-ocean .moon { position:absolute; top:8%; right:25%; width:40px; height:40px; background: radial-gradient(circle, #c8d8e8 0%, #889aaa 70%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(200,216,232,0.3); animation: rc-moon 6s ease-in-out infinite alternate; }
.scn-river-caverns-ocean .cliffs { position:absolute; bottom:30%; left:5%; right:5%; height:40%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 30% 70% 50% 50% / 40% 60% 40% 60%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6); animation: rc-cliffs 12s ease-in-out infinite; }
.scn-river-caverns-ocean .river { position:absolute; bottom:25%; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a3a4a 0%, #2a5a6a 100%); border-radius: 0 0 50% 50% / 0 0 20% 20%; animation: rc-river 4s ease-in-out infinite alternate; }
.scn-river-caverns-ocean .cavern-arch { position:absolute; bottom:28%; left:45%; width:120px; height:100px; background: radial-gradient(ellipse at 50% 100%, #0a1a2a 0%, transparent 70%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; animation: rc-arch 10s ease-in-out infinite; }
.scn-river-caverns-ocean .ocean-wave { position:absolute; bottom:15%; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a4a5a 0%, #0a2a3a 100%); clip-path: polygon(0 60%, 10% 40%, 20% 55%, 30% 35%, 40% 50%, 50% 30%, 60% 45%, 70% 35%, 80% 50%, 90% 40%, 100% 55%, 100% 100%, 0 100%); animation: rc-wave 8s ease-in-out infinite alternate; }
.scn-river-caverns-ocean .dome-shadow { position:absolute; bottom:20%; left:50%; width:140px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(0,20,30,0.5) 0%, transparent 70%); box-shadow: 0 0 60px 20px rgba(0,0,0,0.3); animation: rc-shadow 15s ease-in-out infinite; }
.scn-river-caverns-ocean .stars { position:absolute; inset:0 0 50% 0; background: radial-gradient(2px 2px at 20% 30%, #fff, transparent), radial-gradient(2px 2px at 60% 50%, #aac, transparent), radial-gradient(1px 1px at 80% 20%, #fff, transparent), radial-gradient(1px 1px at 40% 80%, #aac, transparent); background-size: 200px 200px; animation: rc-stars 30s linear infinite; }
@keyframes rc-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rc-moon { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 40px 15px rgba(200,216,232,0.3); } 50% { transform: translateY(-5px) scale(1.05); box-shadow: 0 0 50px 20px rgba(200,216,232,0.5); } 100% { transform: translateY(3px) scale(0.98); box-shadow: 0 0 35px 10px rgba(200,216,232,0.2); } }
@keyframes rc-cliffs { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(4px) rotate(1deg); } 100% { transform: translateY(-2px) rotate(-0.5deg); } }
@keyframes rc-river { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }
@keyframes rc-arch { 0% { transform: scaleX(0.95) scaleY(1); } 50% { transform: scaleX(1.05) scaleY(1.02); } 100% { transform: scaleX(0.98) scaleY(0.98); } }
@keyframes rc-wave { 0% { clip-path: polygon(0 60%, 10% 40%, 20% 55%, 30% 35%, 40% 50%, 50% 30%, 60% 45%, 70% 35%, 80% 50%, 90% 40%, 100% 55%, 100% 100%, 0 100%); } 50% { clip-path: polygon(0 55%, 10% 45%, 20% 50%, 30% 40%, 40% 55%, 50% 35%, 60% 50%, 70% 40%, 80% 55%, 90% 45%, 100% 50%, 100% 100%, 0 100%); } 100% { clip-path: polygon(0 65%, 10% 35%, 20% 60%, 30% 30%, 40% 45%, 50% 25%, 60% 40%, 70% 30%, 80% 45%, 90% 35%, 100% 60%, 100% 100%, 0 100%); } }
@keyframes rc-shadow { 0% { transform: translateX(-50%) scaleX(1); opacity:0.5; } 50% { transform: translateX(-45%) scaleX(1.2); opacity:0.7; } 100% { transform: translateX(-55%) scaleX(0.9); opacity:0.3; } }
@keyframes rc-stars { 0% { background-position: 0 0; } 100% { background-position: 200px 200px; } }

.scn-item-dulcimer-vision { 
  background: linear-gradient(135deg, #2a1a1a 0%, #3a2a2a 40%, #2a1a1a 100%), 
              radial-gradient(circle at 30% 50%, #5a3a2a 0%, transparent 60%);
}
.scn-item-dulcimer-vision .wall-back { position:absolute; inset:0; background: linear-gradient(180deg, #1a1010 0%, #2a1a1a 100%); animation: dv-wall 15s ease-in-out infinite alternate; }
.scn-item-dulcimer-vision .wall-side { position:absolute; top:0; left:0; width:40%; height:100%; background: linear-gradient(90deg, #1a1010 0%, rgba(26,16,16,0) 100%); border-right: 2px solid #4a2a1a; animation: dv-wallside 20s ease-in-out infinite; }
.scn-item-dulcimer-vision .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-item-dulcimer-vision .figure { position:absolute; bottom:10%; left:35%; width:40px; height:90px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dv-figure 6s ease-in-out infinite; }
.scn-item-dulcimer-vision .dulcimer { position:absolute; bottom:15%; left:45%; width:60px; height:30px; background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: dv-dulcimer 4s ease-in-out infinite alternate; }
.scn-item-dulcimer-vision .glow-aura { position:absolute; bottom:10%; left:35%; width:100px; height:120px; background: radial-gradient(ellipse at 50% 50%, rgba(200,170,100,0.2) 0%, transparent 70%); animation: dv-glow 3s ease-in-out infinite alternate; }
.scn-item-dulcimer-vision .light-beam { position:absolute; top:0; left:45%; width:30px; height:100%; background: linear-gradient(180deg, rgba(255,230,180,0.15) 0%, rgba(255,230,180,0) 100%); transform: skewX(-10deg); animation: dv-beam 8s ease-in-out infinite; }
.scn-item-dulcimer-vision .float-note { position:absolute; top:20%; left:60%; width:8px; height:8px; background: #c8a860; border-radius:50%; box-shadow: 0 0 10px 2px rgba(200,168,96,0.6); animation: dv-note 12s linear infinite; }
@keyframes dv-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes dv-wallside { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-2px); } }
@keyframes dv-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes dv-dulcimer { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.02) scaleY(0.98); } 100% { transform: scaleX(0.98) scaleY(1.01); } }
@keyframes dv-glow { 0% { opacity:0.5; transform: scale(0.95); } 50% { opacity:0.8; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(1); } }
@keyframes dv-beam { 0% { opacity:0.6; transform: skewX(-10deg) translateY(0); } 50% { opacity:1; transform: skewX(-8deg) translateY(-5px); } 100% { opacity:0.7; transform: skewX(-12deg) translateY(3px); } }
@keyframes dv-note { 0% { transform: translateY(0) rotate(0deg); opacity:0; } 10% { opacity:1; } 90% { opacity:1; } 100% { transform: translateY(-80px) rotate(360deg); opacity:0; } }

.scn-honey-dew-ecstasy { 
  background: linear-gradient(180deg, #0a0a1a 0%, #1a102a 50%, #0a0a1a 100%), 
              radial-gradient(circle at 50% 70%, #2a1a3a 0%, transparent 60%);
}
.scn-honey-dew-ecstasy .deep-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); animation: he-sky 25s ease-in-out infinite alternate; }
.scn-honey-dew-ecstasy .stars-field { position:absolute; inset:0 0 40% 0; background: radial-gradient(1px 1px at 10% 20%, #fff, transparent), radial-gradient(2px 2px at 30% 60%, #aab, transparent), radial-gradient(1px 1px at 70% 30%, #fff, transparent), radial-gradient(2px 2px at 90% 10%, #aab, transparent); background-size: 150px 150px; animation: he-stars 40s linear infinite; }
.scn-honey-dew-ecstasy .moon-halo { position:absolute; top:5%; left:50%; width:80px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, rgba(200,200,230,0.2) 0%, transparent 70%); border-radius:50%; animation: he-halo 8s ease-in-out infinite alternate; }
.scn-honey-dew-ecstasy .circle-thrice { position:absolute; bottom:20%; left:50%; width:140px; height:140px; transform:translateX(-50%); border: 3px solid rgba(200,180,150,0.2); border-radius:50%; background: radial-gradient(circle, rgba(200,180,150,0.05) 0%, transparent 60%); animation: he-circle 12s linear infinite; }
.scn-honey-dew-ecstasy .figure-prayer { position:absolute; bottom:10%; left:50%; width:40px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: he-figure 5s ease-in-out infinite alternate; }
.scn-honey-dew-ecstasy .dew-drops { position:absolute; bottom:15%; left:30%; right:30%; height:40%; background: radial-gradient(3px 3px at 20% 40%, rgba(200,230,200,0.6), transparent), radial-gradient(3px 3px at 60% 70%, rgba(200,230,200,0.4), transparent), radial-gradient(2px 2px at 80% 20%, rgba(200,230,200,0.5), transparent); background-size: 80px 80px; animation: he-dew 10s ease-in-out infinite alternate; }
.scn-honey-dew-ecstasy .mist { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, rgba(26,26,46,0) 0%, rgba(26,26,46,0.6) 100%); filter: blur(6px); animation: he-mist 18s ease-in-out infinite; }
@keyframes he-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes he-stars { 0% { background-position: 0 0; } 100% { background-position: 150px 150px; } }
@keyframes he-halo { 0% { transform: translateX(-50%) scale(1); opacity:0.5; } 50% { transform: translateX(-50%) scale(1.2); opacity:0.8; } 100% { transform: translateX(-50%) scale(0.9); opacity:0.6; } }
@keyframes he-circle { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(360deg); } }
@keyframes he-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(2px) rotate(-1deg); } }
@keyframes he-dew { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes he-mist { 0% { opacity:0.4; transform: scaleY(1); } 50% { opacity:0.8; transform: scaleY(1.2); } 100% { opacity:0.5; transform: scaleY(0.9); } }

.scn-publication-notes { 
  background: linear-gradient(135deg, #f5f0e8 0%, #e8dcc8 50%, #dcc8b0 100%), 
              radial-gradient(circle at 80% 20%, #fff8f0 0%, transparent 60%);
}
.scn-publication-notes .bg-book { position:absolute; inset:0; background: linear-gradient(135deg, #c8b898 0%, #b0a088 100%); animation: pn-bg 20s ease-in-out infinite alternate; }
.scn-publication-notes .desk { position:absolute; bottom:0; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #9a8a78 0%, #7a6a58 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -5px 15px rgba(0,0,0,0.1); }
.scn-publication-notes .open-page { position:absolute; bottom:10%; left:30%; right:30%; height:50%; background: linear-gradient(180deg, #f0ead8 0%, #e0d4c0 100%); border-radius: 2% 2% 5% 5%; box-shadow: 0 4px 10px rgba(0,0,0,0.2); transform: perspective(400px) rotateX(10deg); animation: pn-page 8s ease-in-out infinite; }
.scn-publication-notes .quill { position:absolute; bottom:15%; right:25%; width:8px; height:60px; background: linear-gradient(180deg, #d0b090 0%, #b09070 100%) no-repeat; border-radius: 50% 50% 10% 10% / 20% 20% 40% 40%; transform-origin: bottom center; animation: pn-quill 5s ease-in-out infinite alternate; }
.scn-publication-notes .inkwell { position:absolute; bottom:12%; left:25%; width:20px; height:25px; background: radial-gradient(circle at 50% 30%, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow: 0 3px 6px rgba(0,0,0,0.3); }
.scn-publication-notes .candle { position:absolute; bottom:18%; right:20%; width:12px; height:40px; background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; }
.scn-publication-notes .candle-glow { position:absolute; bottom:20%; right:20%; width:40px; height:50px; background: radial-gradient(circle, rgba(255,220,150,0.3) 0%, transparent 80%); animation: pn-glow 3s ease-in-out infinite alternate; }
.scn-publication-notes .paper-edge { position:absolute; bottom:10%; left:32%; width:36%; height:2px; background: #e8dcc8; transform: translateY(-1px); opacity:0.5; animation: pn-edge 12s ease-in-out infinite; }
@keyframes pn-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes pn-page { 0% { transform: perspective(400px) rotateX(10deg) translateY(0); } 50% { transform: perspective(400px) rotateX(12deg) translateY(-2px); } 100% { transform: perspective(400px) rotateX(8deg) translateY(1px); } }
@keyframes pn-quill { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes pn-glow { 0% { transform: scale(0.9); opacity:0.6; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(1); opacity:0.7; } }
@keyframes pn-edge { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

/* ===== pains-of-sleep-variants ===== */

.scn-pains-of-sleep-variants {
  background: linear-gradient(180deg, #1c1a2e 0%, #2a2540 50%, #1e1a30 100%), radial-gradient(ellipse at 50% 20%, #2f2a4a 0%, transparent 70%);
}
.scn-pains-of-sleep-variants .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #252040 0%, transparent 100%); }
.scn-pains-of-sleep-variants .window { position:absolute; top:12%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #c0b0a0 0%, #2a2540 70%); border: 4px solid #3a3050; border-radius:8% 8% 4% 4%; box-shadow: inset 0 0 30px rgba(192,176,160,.15), 0 0 20px rgba(192,176,160,.05); }
.scn-pains-of-sleep-variants .moon { position:absolute; top:10%; left:38%; width:30px; height:30px; background: radial-gradient(circle at 35% 35%, #e8e0d0 0%, #c0b0a0 80%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(192,176,160,.2), 0 0 80px 30px rgba(192,176,160,.05); animation: ps-moon 12s ease-in-out infinite alternate; }
.scn-pains-of-sleep-variants .bed { position:absolute; bottom:20%; left:50%; width:140px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 20% 20% 8% 8%; box-shadow: 0 6px 20px rgba(0,0,0,.6); }
.scn-pains-of-sleep-variants .figure { position:absolute; bottom:23%; left:50%; width:80px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 60% 60% / 30% 30% 40% 40%; animation: ps-figure 5s ease-in-out infinite; }
.scn-pains-of-sleep-variants .dream-a { position:absolute; top:30%; left:20%; width:24px; height:24px; background: radial-gradient(circle at 40% 40%, rgba(200,180,220,.6) 0%, transparent 70%); border-radius:50%; filter:blur(3px); animation: ps-dream-a 10s ease-in-out infinite alternate; }
.scn-pains-of-sleep-variants .dream-b { position:absolute; top:35%; right:18%; width:30px; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(180,200,220,.5) 0%, transparent 70%); border-radius:50%; filter:blur(4px); animation: ps-dream-b 13s ease-in-out infinite alternate; }
@keyframes ps-moon { 0% { transform: translateY(0) scale(1); opacity:.7 } 50% { transform: translateY(2px) scale(1.02); opacity:.9 } 100% { transform: translateY(-1px) scale(.98); opacity:.8 } }
@keyframes ps-figure { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.03) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes ps-dream-a { 0% { transform: translate(0,0) rotate(0deg) scale(1); opacity:.3 } 50% { transform: translate(15px,-10px) rotate(20deg) scale(1.2); opacity:.6 } 100% { transform: translate(-10px,5px) rotate(-15deg) scale(.9); opacity:.2 } }
@keyframes ps-dream-b { 0% { transform: translate(0,0) rotate(0deg) scale(1); opacity:.4 } 33% { transform: translate(-20px,0) rotate(-10deg) scale(1.1); opacity:.7 } 66% { transform: translate(10px,8px) rotate(10deg) scale(.8); opacity:.5 } 100% { transform: translate(0,-5px) rotate(5deg) scale(1); opacity:.3 } }

/* ===== exchange-intro ===== */

.scn-exchange-intro {
  background: linear-gradient(180deg, #1e1a2a 0%, #2a2040 50%, #1a1626 100%), radial-gradient(ellipse at 50% 70%, #3a2a4a 0%, transparent 70%);
}
.scn-exchange-intro .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, #2a2040 0%, #1a1626 100%); }
.scn-exchange-intro .glow-aura { position:absolute; top:40%; left:50%; width:200px; height:160px; transform:translate(-50%,-50%); background: radial-gradient(ellipse at 50% 40%, rgba(200,160,120,.15) 0%, transparent 70%); border-radius:50%; animation: ex-aura 6s ease-in-out infinite alternate; }
.scn-exchange-intro .figure-left { position:absolute; bottom:30%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, #2a1a2a 0%, #0e0a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ex-figure 4s ease-in-out infinite; }
.scn-exchange-intro .figure-right { position:absolute; bottom:30%; right:30%; width:40px; height:80px; background: linear-gradient(180deg, #2a1a2a 0%, #0e0a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ex-figure 4s ease-in-out infinite reverse; }
.scn-exchange-intro .heart { position:absolute; top:35%; left:50%; width:28px; height:24px; transform:translateX(-50%) rotate(-45deg); background: radial-gradient(circle at 50% 50%, #c8553d 0%, #8a3a28 100%); border-radius:50% 50% 0% 0%; box-shadow: 0 0 30px 6px rgba(200,85,61,.5), 0 0 60px 20px rgba(200,85,61,.2); animation: ex-heart 3s ease-in-out infinite; }
.scn-exchange-intro .ground { position:absolute; bottom:25%; left:0; right:0; height:8%; background: linear-gradient(180deg, #1a1626 0%, #0e0a12 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.scn-exchange-intro .particle { position:absolute; top:45%; left:45%; width:6px; height:6px; background: rgba(255,220,180,.3); border-radius:50%; filter:blur(1px); animation: ex-particle 11s linear infinite; }
@keyframes ex-aura { 0% { transform: translate(-50%,-50%) scale(1); opacity:.6 } 50% { transform: translate(-50%,-50%) scale(1.1); opacity:1 } 100% { transform: translate(-50%,-50%) scale(.95); opacity:.7 } }
@keyframes ex-figure { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes ex-heart { 0% { transform: translateX(-50%) rotate(-45deg) scale(1); box-shadow: 0 0 20px 4px rgba(200,85,61,.4), 0 0 40px 12px rgba(200,85,61,.15) } 50% { transform: translateX(-50%) rotate(-45deg) scale(1.1); box-shadow: 0 0 40px 10px rgba(200,85,61,.6), 0 0 80px 30px rgba(200,85,61,.25) } 100% { transform: translateX(-50%) rotate(-45deg) scale(1); box-shadow: 0 0 20px 4px rgba(200,85,61,.4), 0 0 40px 12px rgba(200,85,61,.15) } }
@keyframes ex-particle { 0% { transform: translate(0,0) scale(1); opacity:0 } 25% { opacity:.8 } 50% { transform: translate(10px,-20px) scale(1.5); opacity:.4 } 75% { opacity:.6 } 100% { transform: translate(-5px,-40px) scale(.5); opacity:0 } }

/* ===== exchange-variants ===== */

.scn-exchange-variants {
  background: linear-gradient(135deg, #1c1828 0%, #2a2038 50%, #14101e 100%), radial-gradient(ellipse at 60% 20%, #3a2850 0%, transparent 70%);
}
.scn-exchange-variants .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, #2a2038 0%, transparent 70%); }
.scn-exchange-variants .table { position:absolute; bottom:18%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #3a2a2a 0%, #1e1212 100%); border-radius: 6% 6% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-exchange-variants .book-left { position:absolute; bottom:32%; left:18%; width:60px; height:50px; background: linear-gradient(180deg, #4a3830 0%, #2a1a12 100%); border-radius: 0% 8% 8% 0% / 0% 20% 20% 0%; transform: skewY(2deg); box-shadow: 2px 4px 8px rgba(0,0,0,.5); transform-origin: right center; animation: ev-book 8s ease-in-out infinite alternate; }
.scn-exchange-variants .book-right { position:absolute; bottom:32%; left:35%; width:60px; height:50px; background: linear-gradient(180deg, #4a3830 0%, #2a1a12 100%); border-radius: 8% 0% 0% 8% / 20% 0% 0% 20%; transform: skewY(-2deg); box-shadow: -2px 4px 8px rgba(0,0,0,.5); transform-origin: left center; animation: ev-book 8s ease-in-out infinite alternate-reverse; }
.scn-exchange-variants .heart-print { position:absolute; bottom:42%; left:26%; width:18px; height:16px; transform: rotate(-45deg); background: radial-gradient(circle at 50% 50%, #b06050 0%, #7a3a2a 100%); border-radius:50% 50% 0% 0%; box-shadow: 0 0 10px 2px rgba(176,96,80,.4); animation: ev-heart 4s ease-in-out infinite; }
.scn-exchange-variants .hand { position:absolute; bottom:45%; right:22%; width:22px; height:30px; background: linear-gradient(180deg, #2a1a12 0%, #0e0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); transform-origin: bottom center; animation: ev-hand 3s ease-in-out infinite alternate; }
.scn-exchange-variants .candle { position:absolute; bottom:10%; left:50%; width:10px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #c0a080 0%, #8a5a30 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 4px rgba(192,160,128,.3); }
@keyframes ev-book { 0% { transform: skewY(2deg) translateY(0) } 50% { transform: skewY(1deg) translateY(-2px) } 100% { transform: skewY(2deg) translateY(0) } }
@keyframes ev-heart { 0% { transform: rotate(-45deg) scale(1); opacity:.8 } 50% { transform: rotate(-45deg) scale(1.2); opacity:1 } 100% { transform: rotate(-45deg) scale(1); opacity:.8 } }
@keyframes ev-hand { 0% { transform: rotate(10deg) translate(0,0) } 50% { transform: rotate(5deg) translate(-3px,-2px) } 100% { transform: rotate(10deg) translate(0,0) } }

/* ===== ad-vilmum-intro ===== */

.scn-ad-vilmum-intro {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2030 50%, #14101e 100%), radial-gradient(ellipse at 50% 30%, #3a2850 0%, transparent 70%);
}
.scn-ad-vilmum-intro .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #252040 0%, transparent 100%); }
.scn-ad-vilmum-intro .desk { position:absolute; bottom:15%; left:15%; right:15%; height:25%; background: linear-gradient(180deg, #4a3a30 0%, #2a1a12 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 16px rgba(0,0,0,.5); }
.scn-ad-vilmum-intro .figure { position:absolute; bottom:25%; left:38%; width:42px; height:75px; background: linear-gradient(180deg, #2a1a1a 0%, #0e0804 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: av-figure 6s ease-in-out infinite; }
.scn-ad-vilmum-intro .paper { position:absolute; bottom:22%; left:50%; width:60px; height:45px; transform:translateX(-50%); background: linear-gradient(135deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 2px 8px rgba(0,0,0,.4); animation: av-paper 10s ease-in-out infinite alternate; }
.scn-ad-vilmum-intro .candle { position:absolute; bottom:20%; left:60%; width:8px; height:45px; background: linear-gradient(180deg, #c0a080 0%, #8a5a30 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-8deg); box-shadow: 0 0 20px 4px rgba(192,160,128,.3); }
.scn-ad-vilmum-intro .flame { position:absolute; bottom:50%; left:60%; width:8px; height:12px; transform:translate(-50%,0); background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #c07030 60%, transparent 100%); border-radius: 50% 50% 0% 0%; box-shadow: 0 0 30px 10px rgba(255,208,128,.3), 0 0 60px 20px rgba(255,208,128,.1); animation: av-flame 2s ease-in-out infinite alternate; }
.scn-ad-vilmum-intro .ink { position:absolute; bottom:22%; left:42%; width:12px; height:18px; background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.6); }
@keyframes av-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes av-paper { 0% { transform: translateX(-50%) rotate(0deg) scale(1) } 50% { transform: translateX(-50%) rotate(.5deg) scale(1.02) } 100% { transform: translateX(-50%) rotate(0deg) scale(1) } }
@keyframes av-flame { 0% { transform: translate(-50%,0) scaleY(0.85) rotate(2deg); opacity:.9 } 50% { transform: translate(-50%,-5px) scaleY(1.1) rotate(-3deg); opacity:1 } 100% { transform: translate(-50%,0) scaleY(0.9) rotate(1deg); opacity:.9 } }

.scn-ballad-dark-ladie-fragment { background: linear-gradient(180deg, #e4d7b8 0%, #c4b28a 40%, #a8946e 100%), radial-gradient(ellipse at 50% 80%, #f5e8d0 0%, transparent 70%); }
.scn-ballad-dark-ladie-fragment .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #dccdb0 0%, #b8a282 100%); animation: bd-wall 15s ease-in-out infinite alternate; }
.scn-ballad-dark-ladie-fragment .window-frame { position:absolute; top:8%; left:30%; width:40%; height:45%; border:8px solid #7a6a4e; border-radius:4px; background: linear-gradient(180deg, #b8d0e0 0%, #9ab0c8 100%); box-shadow: inset 0 0 40px rgba(255,200,150,.2); animation: bd-window 8s ease-in-out infinite alternate; }
.scn-ballad-dark-ladie-fragment .curtain-left { position:absolute; top:6%; left:28%; width:18%; height:50%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:0 60% 60% 0 / 0 80% 80% 0; transform-origin: left center; animation: bd-curtain 12s ease-in-out infinite; }
.scn-ballad-dark-ladie-fragment .curtain-right { position:absolute; top:6%; right:28%; width:18%; height:50%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:60% 0 0 60% / 80% 0 0 80%; transform-origin: right center; animation: bd-curtain 12s ease-in-out infinite alternate; }
.scn-ballad-dark-ladie-fragment .desk { position:absolute; bottom:18%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #8a7a62 0%, #6a5a4a 100%); border-radius:2% 2% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.3); }
.scn-ballad-dark-ladie-fragment .book-open { position:absolute; bottom:24%; left:32%; width:36%; height:14%; background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%); border-radius:0 0 6% 6% / 0 0 12% 12%; box-shadow: 0 2px 8px rgba(0,0,0,.2); animation: bd-book 6s ease-in-out infinite alternate; }
.scn-ballad-dark-ladie-fragment .candle { position:absolute; bottom:32%; left:42%; width:4%; height:20%; background: linear-gradient(180deg, #f0e0c0 0%, #d0b898 100%); border-radius:40% 40% 10% 10%; box-shadow: 0 0 12px rgba(240,200,150,.4); }
.scn-ballad-dark-ladie-fragment .flame { position:absolute; bottom:52%; left:43.5%; width:1.5%; height:6%; background: radial-gradient(circle, #ffe080 0%, #f0a030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 4px #f0a030, 0 0 40px 8px rgba(240,160,48,.5); animation: bd-flame 1.5s ease-in-out infinite alternate; }
.scn-ballad-dark-ladie-fragment .shadow-figure { position:absolute; bottom:20%; left:60%; width:12%; height:38%; background: radial-gradient(ellipse at 50% 30%, #3a2a20 0%, #1a1008 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; filter: blur(1px); animation: bd-figure 20s ease-in-out infinite; }
@keyframes bd-wall { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes bd-window { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:.9; transform: scaleY(1.02); } 100% { opacity:.75; } }
@keyframes bd-curtain { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes bd-book { 0% { transform: rotateX(0) translateY(0); } 50% { transform: rotateX(2deg) translateY(-2px); } 100% { transform: rotateX(0) translateY(1px); } }
@keyframes bd-flame { 0% { transform: scaleY(1) rotate(-3deg); } 50% { transform: scaleY(1.2) rotate(0); } 100% { transform: scaleY(0.9) rotate(3deg); } }
@keyframes bd-figure { 0% { transform: translateX(0) scale(1); } 33% { transform: translateX(8px) scale(1.02); } 66% { transform: translateX(-4px) scale(0.98); } 100% { transform: translateX(0) scale(1); } }

.scn-love-poems-motto { background: linear-gradient(180deg, #f5eed8 0%, #e0d4b8 50%, #c4b898 100%), radial-gradient(ellipse at 50% 20%, #faf3e0 0%, transparent 60%); }
.scn-love-poems-motto .bookshelf { position:absolute; top:10%; left:5%; width:25%; height:70%; background: linear-gradient(180deg, #8a7a62 0%, #6a5a4a 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.3); }
.scn-love-poems-motto .desk-wide { position:absolute; bottom:15%; left:30%; right:5%; height:30%; background: linear-gradient(180deg, #b8a88a 0%, #9a8a72 100%); border-radius:8% 8% 0 0; box-shadow: 0 -6px 16px rgba(0,0,0,.2); }
.scn-love-poems-motto .open-book { position:absolute; bottom:30%; left:40%; width:30%; height:20%; background: linear-gradient(180deg, #f8f0e0 0%, #e0d0b8 100%); border-radius:0 0 8% 8% / 0 0 16% 16%; box-shadow: 0 3px 10px rgba(0,0,0,.15); transform: perspective(800px) rotateX(5deg); animation: lm-book 10s ease-in-out infinite alternate; }
.scn-love-poems-motto .motto-plaque { position:absolute; top:25%; left:45%; width:20%; height:10%; background: linear-gradient(180deg, #d0c0a0 0%, #b8a888 100%); border-radius:10% 10% 20% 20% / 30% 30% 40% 40%; box-shadow: 0 2px 8px rgba(0,0,0,.2), inset 0 0 10px #f0e0c0; animation: lm-plaque 8s ease-in-out infinite; }
.scn-love-poems-motto .lamp { position:absolute; top:5%; left:55%; width:4%; height:30%; background: linear-gradient(180deg, #c8b898 0%, #8a7a62 100%); border-radius:30% 30% 0 0; box-shadow: 0 0 30px rgba(255,200,100,.3); }
.scn-love-poems-motto .armchair { position:absolute; bottom:10%; left:8%; width:20%; height:40%; background: radial-gradient(ellipse at 50% 40%, #6a5a4a 0%, #3a2a1a 100%); border-radius:40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: lm-chair 12s ease-in-out infinite alternate; }
.scn-love-poems-motto .papers-stack { position:absolute; bottom:22%; left:32%; width:12%; height:8%; background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.15); animation: lm-papers 6s ease-in-out infinite; }
@keyframes lm-book { 0% { transform: perspective(800px) rotateX(5deg) translateY(0); } 50% { transform: perspective(800px) rotateX(7deg) translateY(-2px); } 100% { transform: perspective(800px) rotateX(4deg) translateY(1px); } }
@keyframes lm-plaque { 0% { opacity:.8; box-shadow: 0 2px 8px rgba(0,0,0,.2), inset 0 0 10px #f0e0c0; } 50% { opacity:1; box-shadow: 0 4px 16px rgba(0,0,0,.3), inset 0 0 20px #ffe0a0; } 100% { opacity:.85; box-shadow: 0 2px 10px rgba(0,0,0,.2), inset 0 0 12px #e0c890; } }
@keyframes lm-chair { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.01); } 100% { transform: translateY(0) scale(0.99); } }
@keyframes lm-papers { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(2px) rotate(1deg); } 66% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }

.scn-love-variant-all-are { background: linear-gradient(180deg, #f0ece0 0%, #d8d0c0 40%, #c0b8a8 100%), radial-gradient(ellipse at 50% 90%, #f8f4ec 0%, transparent 70%); }
.scn-love-variant-all-are .desk-slate { position:absolute; bottom:10%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #c8bca8 0%, #a89884 100%); border-radius:4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.2); }
.scn-love-variant-all-are .page-left { position:absolute; bottom:25%; left:15%; width:30%; height:25%; background: linear-gradient(180deg, #f8f4ec 0%, #e8e0d0 100%); border-radius:2px; box-shadow: 2px 2px 8px rgba(0,0,0,.15); animation: va-page-l 10s ease-in-out infinite alternate; }
.scn-love-variant-all-are .page-right { position:absolute; bottom:25%; right:15%; width:30%; height:25%; background: linear-gradient(180deg, #f8f4ec 0%, #e8e0d0 100%); border-radius:2px; box-shadow: -2px 2px 8px rgba(0,0,0,.15); animation: va-page-r 10s ease-in-out infinite alternate; }
.scn-love-variant-all-are .annotation { position:absolute; width:8%; height:6%; background: radial-gradient(circle, #405060 0%, #203040 100%); border-radius:20% 20% 50% 50% / 30% 30% 60% 60%; opacity:.6; animation: va-ann 4s ease-in-out infinite; }
.scn-love-variant-all-are .annotation-a { bottom:35%; left:20%; animation-delay:0s; }
.scn-love-variant-all-are .annotation-b { bottom:40%; right:22%; animation-delay:2s; }
.scn-love-variant-all-are .magnifier { position:absolute; bottom:30%; left:48%; width:10%; height:12%; background: radial-gradient(circle, #e0e8f0 0%, #a0b0c0 60%, #6a7a8a 100%); border-radius:50%; border:2px solid #8a9aaa; box-shadow: 0 0 16px rgba(200,200,220,.3); animation: va-mag 6s ease-in-out infinite; }
.scn-love-variant-all-are .inkwell { position:absolute; bottom:18%; left:25%; width:4%; height:6%; background: radial-gradient(circle, #2a2a3a 0%, #1a1a2a 100%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-love-variant-all-are .quill { position:absolute; bottom:28%; left:22%; width:2%; height:18%; background: linear-gradient(180deg, #d0c8b8 0%, #a89880 60%, #7a6a52 100%); border-radius:0 0 40% 40% / 0 0 20% 20%; transform: rotate(-15deg); transform-origin: top center; animation: va-quill 3s ease-in-out infinite alternate; }
@keyframes va-page-l { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0.5deg); } }
@keyframes va-page-r { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes va-ann { 0% { opacity:.4; transform: scale(0.9); } 50% { opacity:.7; transform: scale(1.1); } 100% { opacity:.5; transform: scale(1); } }
@keyframes va-mag { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(6px) rotate(5deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes va-quill { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-18deg) translateY(0); } }

.scn-love-variant-that-who { background: linear-gradient(180deg, #ece4d0 0%, #d4c8b0 50%, #b8a888 100%), radial-gradient(ellipse at 50% 70%, #f4ecd8 0%, transparent 60%); }
.scn-love-variant-that-who .parchment { position:absolute; bottom:15%; left:15%; right:15%; top:20%; background: linear-gradient(180deg, #f8f0e0 0%, #e0d0b8 100%); border-radius:2% 2% 4% 4% / 2% 2% 8% 8%; box-shadow: 0 4px 16px rgba(0,0,0,.2); animation: vw-parch 14s ease-in-out infinite alternate; }
.scn-love-variant-that-who .text-block { position:absolute; bottom:30%; left:22%; width:25%; height:20%; background: linear-gradient(180deg, #c8b8a0 0%, #a89078 100%); border-radius:4px; opacity:.8; }
.scn-love-variant-that-who .strikethrough { position:absolute; bottom:38%; left:22%; width:25%; height:2%; background: #6a5a4a; border-radius:0; transform: rotate(-8deg); animation: vw-strike 2s ease-in-out infinite alternate; }
.scn-love-variant-that-who .marginal-note { position:absolute; bottom:45%; right:20%; width:12%; height:12%; background: radial-gradient(circle, #505060 0%, #303040 100%); border-radius:20% 20% 60% 60% / 30% 30% 40% 40%; opacity:.5; animation: vw-note 6s ease-in-out infinite; }
.scn-love-variant-that-who .hand-with-quill { position:absolute; bottom:20%; left:45%; width:10%; height:25%; background: linear-gradient(180deg, #d0b898 0%, #b09878 60%, #8a7a62 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: vw-hand 4s ease-in-out infinite; }
.scn-love-variant-that-who .ink-pot { position:absolute; bottom:22%; left:38%; width:5%; height:7%; background: radial-gradient(circle, #2a2a3a 0%, #1a1a2a 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 3px 8px rgba(0,0,0,.3); }
.scn-love-variant-that-who .candle-drip { position:absolute; bottom:55%; left:55%; width:3%; height:15%; background: linear-gradient(180deg, #f0d8b0 0%, #d0b898 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 10px rgba(240,200,150,.2); animation: vw-drip 5s ease-in-out infinite alternate; }
@keyframes vw-parch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.005); } 100% { transform: scaleY(0.995); } }
@keyframes vw-strike { 0% { transform: rotate(-8deg) translateX(0); } 50% { transform: rotate(-6deg) translateX(2px); } 100% { transform: rotate(-10deg) translateX(-2px); } }
@keyframes vw-note { 0% { opacity:.3; transform: scale(0.9); } 50% { opacity:.6; transform: scale(1.1); } 100% { opacity:.4; transform: scale(0.95); } }
@keyframes vw-hand { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes vw-drip { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(2px) scaleY(1.1); } 100% { transform: translateY(-1px) scaleY(0.95); } }

/* Scene 1: reason-definition */

.scn-reason-definition {
  background:
    linear-gradient(180deg, #87CEEB 0%, #b0d4f1 40%, #f2e6c9 100%),
    radial-gradient(ellipse at 50% 80%, rgba(255, 230, 180, 0.3) 0%, transparent 60%);
  overflow: hidden;
}
.scn-reason-definition .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #a0c8f0 0%, #e6f0fa 100%);
  animation: rd-sky 20s ease-in-out infinite alternate;
}
.scn-reason-definition .mist {
  position: absolute; inset: 20% 0 0 0;
  background: linear-gradient(0deg, rgba(255,255,255,0.6) 0%, transparent 60%);
  filter: blur(20px);
  animation: rd-mist 15s ease-in-out infinite alternate;
}
.scn-reason-definition .sun {
  position: absolute; top: 15%; left: 55%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff8e0 0%, #fddba6 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(253, 219, 166, 0.4);
  animation: rd-sun 25s ease-in-out infinite alternate;
}
.scn-reason-definition .mountains {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b8e6b 0%, #3a5a3a 100%);
  border-radius: 50% 30% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: rd-mountains 18s ease-in-out infinite alternate;
}
.scn-reason-definition .figure.reason-figure {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rd-figure 6s ease-in-out infinite;
}
.scn-reason-definition .ray {
  position: absolute; top: 25%; width: 6px; height: 120px;
  background: linear-gradient(180deg, rgba(255,255,200,0.8) 0%, transparent 100%);
  transform-origin: top center;
  border-radius: 12px;
  filter: blur(4px);
}
.scn-reason-definition .ray-left {
  left: 40%;
  transform: rotate(-18deg);
  animation: rd-ray 12s ease-in-out infinite alternate;
}
.scn-reason-definition .ray-right {
  left: 58%;
  transform: rotate(12deg);
  animation: rd-ray 14s ease-in-out infinite alternate-reverse;
}
@keyframes rd-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes rd-mist { 0% { opacity: 0.3; transform: translateY(0); } 50% { opacity: 0.6; transform: translateY(-10px); } 100% { opacity: 0.4; transform: translateY(5px); } }
@keyframes rd-sun { 0% { transform: scale(0.95); box-shadow: 0 0 60px 30px rgba(253,219,166,0.3); } 50% { transform: scale(1.05); box-shadow: 0 0 100px 50px rgba(253,219,166,0.6); } 100% { transform: scale(1); box-shadow: 0 0 80px 40px rgba(253,219,166,0.4); } }
@keyframes rd-mountains { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes rd-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(15px) rotate(2deg); } 100% { transform: translateX(30px) rotate(-1deg); } }
@keyframes rd-ray { 0% { opacity: 0.6; width: 4px; } 50% { opacity: 1; width: 8px; } 100% { opacity: 0.7; width: 6px; } }

/* Scene 2: self-knowledge */

.scn-self-knowledge {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 30%, #1a1a2e 70%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 20%, rgba(80,60,40,0.3) 0%, transparent 70%);
  overflow: hidden;
}
.scn-self-knowledge .wall {
  position: absolute; inset: 5% 5% 25% 5%;
  background: linear-gradient(135deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-self-knowledge .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
}
.scn-self-knowledge .mirror {
  position: absolute; top: 20%; left: 50%; width: 100px; height: 130px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #5a4a3a, #3a2a2a);
  border: 6px solid #5a3a2a;
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7), inset 0 0 20px rgba(0,0,0,0.5);
  overflow: hidden;
}
.scn-self-knowledge .mirror::after {
  content: '';
  position: absolute; inset: 8%;
  background: linear-gradient(135deg, rgba(255,255,200,0.15) 0%, rgba(60,40,20,0.3) 60%);
  border-radius: 2px;
  animation: sk-mirror-glint 8s ease-in-out infinite;
}
.scn-self-knowledge .candle {
  position: absolute; top: 45%; left: 30%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #d4b080 0%, #8a5a3a 100%);
  border-radius: 2px 2px 4px 4px;
}
.scn-self-knowledge .candle::before {
  content: '';
  position: absolute; top: -12px; left: 50%; width: 8px; height: 16px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffdd80 0%, #ff9922 60%, transparent 100%);
  border-radius: 50%;
  animation: sk-flame 3s ease-in-out infinite;
}
.scn-self-knowledge .figure.kneeling {
  position: absolute; bottom: 22%; left: 38%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sk-kneel 5s ease-in-out infinite;
}
.scn-self-knowledge .shadow {
  position: absolute; bottom: 22%; left: 35%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 80%);
  border-radius: 50%;
  animation: sk-shadow 5s ease-in-out infinite;
}
.scn-self-knowledge .glow {
  position: absolute; top: 42%; left: 28%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,220,160,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: sk-glow 3s ease-in-out infinite alternate;
}
@keyframes sk-mirror-glint { 0% { opacity: 0.2; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes sk-flame { 0% { transform: translateX(-50%) scaleY(1) translateY(0); } 25% { transform: translateX(-50%) scaleY(1.2) translateY(-2px); } 50% { transform: translateX(-50%) scaleY(0.9) translateY(0); } 75% { transform: translateX(-50%) scaleY(1.1) translateY(-1px); } 100% { transform: translateX(-50%) scaleY(1) translateY(0); } }
@keyframes sk-kneel { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sk-shadow { 0% { width: 60px; opacity: 0.6; } 50% { width: 70px; opacity: 0.8; } 100% { width: 60px; opacity: 0.6; } }
@keyframes sk-glow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(1); } }

/* Scene 3: editorial-self-knowledge */

.scn-editorial-self-knowledge {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 40%, #1a1a1a 100%),
    radial-gradient(ellipse at 50% 60%, rgba(60,40,20,0.3) 0%, transparent 70%);
  overflow: hidden;
}
.scn-editorial-self-knowledge .wall {
  position: absolute; inset: 5% 5% 30% 5%;
  background: linear-gradient(135deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-editorial-self-knowledge .window {
  position: absolute; top: 20%; left: 35%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #7a6a5a 0%, #3a2a2a 100%);
  border: 6px solid #5a3a2a;
  border-radius: 4px;
  overflow: hidden;
}
.scn-editorial-self-knowledge .window::after {
  content: '';
  position: absolute; inset: 5%;
  background: linear-gradient(135deg, rgba(255,255,200,0.1) 0%, rgba(100,80,60,0.2) 100%);
  animation: esw-window-glint 10s ease-in-out infinite;
}
.scn-editorial-self-knowledge .desk {
  position: absolute; bottom: 30%; left: 30%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-editorial-self-knowledge .book {
  position: absolute; bottom: 40%; left: 40%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  animation: esw-book 12s ease-in-out infinite alternate;
}
.scn-editorial-self-knowledge .hand {
  position: absolute; bottom: 33%; left: 45%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: esw-hand 4s ease-in-out infinite;
}
.scn-editorial-self-knowledge .candle {
  position: absolute; bottom: 40%; left: 55%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #d4a060 0%, #8a5a3a 100%);
  border-radius: 2px;
}
.scn-editorial-self-knowledge .candle::before {
  content: '';
  position: absolute; top: -10px; left: 50%; width: 6px; height: 14px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffcc80 0%, #ff9922 60%, transparent 100%);
  border-radius: 50%;
  animation: esw-flame 3.5s ease-in-out infinite;
}
.scn-editorial-self-knowledge .shadow {
  position: absolute; bottom: 30%; left: 25%; width: 80px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 80%);
  border-radius: 50%;
  animation: esw-shadow 8s ease-in-out infinite alternate;
}
.scn-editorial-self-knowledge .glow {
  position: absolute; top: 45%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,200,120,0.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: esw-glow 4s ease-in-out infinite alternate;
}
@keyframes esw-window-glint { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }
@keyframes esw-book { 0% { transform: rotate(4deg) translateY(0); } 50% { transform: rotate(6deg) translateY(-3px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes esw-hand { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(12px) rotate(1deg); } 100% { transform: translateX(16px) rotate(0); } }
@keyframes esw-flame { 0% { transform: translateX(-50%) scaleY(1); } 25% { transform: translateX(-50%) scaleY(1.3) translateY(-2px); } 50% { transform: translateX(-50%) scaleY(0.9) translateY(0); } 75% { transform: translateX(-50%) scaleY(1.1) translateY(-1px); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes esw-shadow { 0% { width: 80px; opacity: 0.6; } 50% { width: 100px; opacity: 0.9; } 100% { width: 80px; opacity: 0.6; } }
@keyframes esw-glow { 0% { opacity: 0.2; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(1); } }

/* Scene 4: forbearance */

.scn-forbearance {
  background:
    linear-gradient(180deg, #f0e6d0 0%, #e0d4b8 40%, #c8b89a 100%),
    radial-gradient(ellipse at 50% 70%, rgba(255,240,200,0.3) 0%, transparent 60%);
  overflow: hidden;
}
.scn-forbearance .sky {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d0e4f0 0%, #e6f0fa 100%);
  animation: fb-sky 25s ease-in-out infinite alternate;
}
.scn-forbearance .window-frame {
  position: absolute; inset: 5% 5% 20% 5%;
  border: 12px solid #8a6a4a;
  border-radius: 8px;
  background: linear-gradient(135deg, #c8b89a 0%, #b0a088 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2), 0 0 40px rgba(0,0,0,0.1);
}
.scn-forbearance .blinds {
  position: absolute; top: 10%; left: 12%; right: 12%; height: 60%;
  background: repeating-linear-gradient(0deg, #d4c4a8 0px, #d4c4a8 6px, #b8a888 6px, #b8a888 12px);
  opacity: 0.4;
  animation: fb-blinds 30s ease-in-out infinite alternate;
}
.scn-forbearance .figure.standing {
  position: absolute; bottom: 18%; left: 40%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fb-figure 8s ease-in-out infinite;
}
.scn-forbearance .timber {
  position: absolute; bottom: 18%; left: 50%; width: 60px; height: 12px;
  background: linear-gradient(90deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4px;
  transform: rotate(15deg);
  animation: fb-timber 6s ease-in-out infinite alternate;
}
.scn-forbearance .ray {
  position: absolute; top: 15%; left: 30%; width: 30px; height: 200px;
  background: linear-gradient(180deg, rgba(255,255,240,0.3) 0%, transparent 100%);
  transform: rotate(20deg);
  filter: blur(8px);
  animation: fb-ray 18s ease-in-out infinite alternate;
}
.scn-forbearance .shadow {
  position: absolute; bottom: 18%; left: 35%; width: 80px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 80%);
  border-radius: 50%;
  animation: fb-shadow 8s ease-in-out infinite alternate;
}
@keyframes fb-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes fb-blinds { 0% { transform: translateY(0); } 50% { transform: translateY(-10px); } 100% { transform: translateY(0); } }
@keyframes fb-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fb-timber { 0% { transform: rotate(12deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-4px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes fb-ray { 0% { opacity: 0.3; transform: rotate(18deg) scaleX(1); } 50% { opacity: 0.6; transform: rotate(22deg) scaleX(1.1); } 100% { opacity: 0.4; transform: rotate(20deg) scaleX(1); } }
@keyframes fb-shadow { 0% { width: 80px; opacity: 0.4; } 50% { width: 95px; opacity: 0.6; } 100% { width: 80px; opacity: 0.4; } }

/* Scene 1: printing-cursed-invention */

.scn-printing-cursed-invention {
  background: linear-gradient(180deg, #f7f0d5 0%, #e8dcc0 40%, #d4c4a0 100%),
              radial-gradient(ellipse at 50% 0%, rgba(255,240,200,0.6) 0%, transparent 60%);
}
.scn-printing-cursed-invention .wall {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #e8dcc0 0%, #d6c9a8 100%);
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.1);
  animation: sp1-wall 20s ease-in-out infinite alternate;
}
.scn-printing-cursed-invention .floor {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #a59268 0%, #8a7a54 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-printing-cursed-invention .press-frame {
  position:absolute; bottom:30%; left:25%; width:50%; height:40%;
  background: linear-gradient(135deg, #5c4a3a 0%, #3a2e22 100%);
  border-radius: 6px 6px 20px 20px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.4), inset 0 2px 4px rgba(255,255,255,0.1);
  animation: sp1-press 12s ease-in-out infinite;
}
.scn-printing-cursed-invention .press-roller {
  position:absolute; bottom:45%; left:30%; width:40%; height:8%;
  background: linear-gradient(90deg, #3a2e22, #6a5a4a, #3a2e22);
  border-radius: 50px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: sp1-roller 6s ease-in-out infinite;
}
.scn-printing-cursed-invention .paper-sheet {
  position:absolute; bottom:32%; left:30%; width:40%; height:12%;
  background: linear-gradient(180deg, #f5eed5 0%, #e8dcc0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  animation: sp1-paper 8s ease-in-out infinite alternate;
}
.scn-printing-cursed-invention .ink-stain {
  position:absolute; bottom:40%; left:45%; width:10%; height:6%;
  background: radial-gradient(circle, #2a1a0a 0%, #1a0e04 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: sp1-ink 4s ease-in-out infinite alternate;
}
.scn-printing-cursed-invention .figure-hunched {
  position:absolute; bottom:30%; right:20%; width:15%; height:25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 50% 40% 50% 50% / 60% 50% 40% 60%;
  transform-origin: bottom center;
  animation: sp1-figure 5s ease-in-out infinite;
}
.scn-printing-cursed-invention .shadow-line {
  position:absolute; bottom:28%; left:20%; right:20%; height:2%;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.15), transparent);
  filter: blur(1px);
  animation: sp1-shadow 7s ease-in-out infinite alternate;
}
.scn-printing-cursed-invention .dust-particles {
  position:absolute; top:20%; left:10%; width:80%; height:60%;
  background: radial-gradient(circle at 30% 40%, rgba(255,240,180,0.08) 0%, transparent 50%),
              radial-gradient(circle at 70% 60%, rgba(255,240,180,0.05) 0%, transparent 40%);
  animation: sp1-dust 30s linear infinite;
}
@keyframes sp1-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sp1-press { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.005) } }
@keyframes sp1-roller { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sp1-paper { 0% { opacity:0.7; transform: translateY(0) } 100% { opacity:0.9; transform: translateY(-2px) } }
@keyframes sp1-ink { 0% { transform: scale(1) opacity(0.6) } 100% { transform: scale(1.2) opacity(0.8) } }
@keyframes sp1-figure { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(-2deg) } 75% { transform: translateX(-2px) rotate(1deg) } }
@keyframes sp1-shadow { 0% { opacity:0.3 } 100% { opacity:0.6 } }
@keyframes sp1-dust { 0% { transform: translateY(0) } 100% { transform: translateY(-30px) } }

/* Scene 2: printers-black-devils */

.scn-printers-black-devils {
  background: linear-gradient(180deg, #c8b898 0%, #b0a080 30%, #9a8a6a 70%, #7a6a4a 100%),
              radial-gradient(ellipse at 50% 100%, rgba(180,150,100,0.4) 0%, transparent 60%);
}
.scn-printers-black-devils .bg-dark {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a221a 40%, #3a2a1a 100%);
  opacity:0.15;
  animation: sp2-bg 12s ease-in-out infinite alternate;
}
.scn-printers-black-devils .wall-panel {
  position:absolute; inset:5% 5% 30% 5%;
  background: linear-gradient(135deg, #d4c4a0 0%, #b8a880 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
  animation: sp2-wall 15s ease-in-out infinite alternate;
}
.scn-printers-black-devils .press-machine {
  position:absolute; bottom:25%; left:20%; width:60%; height:45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 10px 10px 30px 30px;
  box-shadow: 0 12px 30px rgba(0,0,0,0.5), inset 0 2px 6px rgba(255,255,255,0.05);
  animation: sp2-press 8s ease-in-out infinite;
}
.scn-printers-black-devils .ink-pool {
  position:absolute; bottom:18%; left:35%; width:30%; height:15%;
  background: radial-gradient(ellipse, #1a0e04 0%, #0a0602 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: sp2-ink 5s ease-in-out infinite alternate;
}
.scn-printers-black-devils .devil-figure-left {
  position:absolute; bottom:30%; left:10%; width:12%; height:28%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 45% 40% 50% 50% / 60% 50% 40% 50%;
  transform-origin: bottom center;
  animation: sp2-devil 6s ease-in-out infinite;
}
.scn-printers-black-devils .devil-figure-right {
  position:absolute; bottom:30%; right:12%; width:14%; height:30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 40% 45% 50% 50% / 50% 60% 40% 50%;
  transform-origin: bottom center;
  animation: sp2-devil 6s ease-in-out infinite reverse;
}
.scn-printers-black-devils .spark-burst {
  position:absolute; bottom:40%; left:40%; width:20%; height:20%;
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: sp2-spark 2s ease-in-out infinite alternate;
}
.scn-printers-black-devils .paper-stack {
  position:absolute; bottom:8%; left:40%; width:20%; height:10%;
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b898 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: sp2-stack 10s ease-in-out infinite alternate;
}
@keyframes sp2-bg { 0% { opacity:0.1 } 50% { opacity:0.2 } 100% { opacity:0.15 } }
@keyframes sp2-wall { 0% { transform: scale(1) } 50% { transform: scale(1.01) } 100% { transform: scale(0.98) } }
@keyframes sp2-press { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-5px) } }
@keyframes sp2-ink { 0% { transform: scale(1) opacity(0.7) } 100% { transform: scale(1.3) opacity(0.9) } }
@keyframes sp2-devil { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(8px) rotate(-3deg) } 75% { transform: translateX(-4px) rotate(2deg) } }
@keyframes sp2-spark { 0% { transform: scale(0.5) opacity(0) } 100% { transform: scale(1.5) opacity(1) } }
@keyframes sp2-stack { 0% { transform: translateY(0) } 100% { transform: translateY(-4px) } }

/* Scene 3: talleyrand-footnote-paley */

.scn-talleyrand-footnote-paley {
  background: linear-gradient(180deg, #f5edd5 0%, #e8dcc0 40%, #d4c4a0 100%),
              radial-gradient(ellipse at 50% 0%, rgba(255,245,220,0.5) 0%, transparent 60%);
}
.scn-talleyrand-footnote-paley .desk-top {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #a08968 0%, #8a7454 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.15);
}
.scn-talleyrand-footnote-paley .book-spine {
  position:absolute; bottom:25%; left:35%; width:30%; height:20%;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6048 30%, #5a4a3a 100%);
  border-radius: 10px 10px 4px 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: sp3-spine 14s ease-in-out infinite alternate;
}
.scn-talleyrand-footnote-paley .book-page {
  position:absolute; bottom:28%; left:37%; width:26%; height:14%;
  background: linear-gradient(180deg, #f5edd5 0%, #e8dcc0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  animation: sp3-page 10s ease-in-out infinite alternate;
}
.scn-talleyrand-footnote-paley .footnote-line {
  position:absolute; bottom:22%; left:40%; width:20%; height:1%;
  background: #2a1a0a;
  opacity:0.3;
  animation: sp3-footnote 8s ease-in-out infinite alternate;
}
.scn-talleyrand-footnote-paley .hand-pointer {
  position:absolute; bottom:30%; left:65%; width:10%; height:15%;
  background: linear-gradient(180deg, #d4b898 0%, #b09878 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sp3-hand 5s ease-in-out infinite;
}
.scn-talleyrand-footnote-paley .candle-holder {
  position:absolute; bottom:35%; left:20%; width:6%; height:18%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-talleyrand-footnote-paley .candle-flame {
  position:absolute; bottom:50%; left:20.5%; width:5%; height:8%;
  background: radial-gradient(circle, #ffd080 0%, #f0a030 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: sp3-flame 2s ease-in-out infinite alternate;
}
.scn-talleyrand-footnote-paley .glow-aura {
  position:absolute; bottom:45%; left:15%; width:16%; height:20%;
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 70%);
  animation: sp3-glow 4s ease-in-out infinite alternate;
}
@keyframes sp3-spine { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sp3-page { 0% { opacity:0.9; transform: translateY(0) } 100% { opacity:1; transform: translateY(-1px) } }
@keyframes sp3-footnote { 0% { width:18%; opacity:0.2 } 100% { width:22%; opacity:0.4 } }
@keyframes sp3-hand { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(8px) rotate(5deg) } }
@keyframes sp3-flame { 0% { transform: scaleY(0.8) } 100% { transform: scaleY(1.2) } }
@keyframes sp3-glow { 0% { opacity:0.4; transform: scale(0.9) } 100% { opacity:0.7; transform: scale(1.1) } }

/* Scene 4: talleyrand-footnote-initiation */

.scn-talleyrand-footnote-initiation {
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 40%, #c8b898 100%),
              radial-gradient(ellipse at 50% 100%, rgba(220,200,160,0.3) 0%, transparent 60%);
}
.scn-talleyrand-footnote-initiation .parchment {
  position:absolute; bottom:10%; left:15%; width:70%; height:70%;
  background: linear-gradient(135deg, #f5edd5 0%, #e8dcc0 50%, #d4c4a0 100%);
  border-radius: 8px 4px 12px 6px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.15), inset 0 0 40px rgba(0,0,0,0.05);
  animation: sp4-parchment 20s ease-in-out infinite alternate;
}
.scn-talleyrand-footnote-initiation .scroll-top {
  position:absolute; top:12%; left:20%; width:60%; height:8%;
  background: linear-gradient(180deg, #c8b898 0%, #b8a888 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.scn-talleyrand-footnote-initiation .scroll-bottom {
  position:absolute; bottom:10%; left:20%; width:60%; height:8%;
  background: linear-gradient(180deg, #b8a888 0%, #c8b898 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.1);
}
.scn-talleyrand-footnote-initiation .quill {
  position:absolute; bottom:60%; left:50%; width:8%; height:25%;
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b898 100%);
  clip-path: polygon(50% 0%, 60% 30%, 45% 100%, 50% 100%, 55% 40%, 50% 0%);
  transform-origin: bottom center;
  animation: sp4-quill 6s ease-in-out infinite alternate;
}
.scn-talleyrand-footnote-initiation .ink-well {
  position:absolute; bottom:25%; left:25%; width:8%; height:10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: sp4-inkwell 12s ease-in-out infinite alternate;
}
.scn-talleyrand-footnote-initiation .seal-wax {
  position:absolute; bottom:25%; right:30%; width:10%; height:10%;
  background: radial-gradient(circle, #a04a2a 0%, #6a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: sp4-seal 8s ease-in-out infinite alternate;
}
.scn-talleyrand-footnote-initiation .flourish-line {
  position:absolute; bottom:40%; left:30%; width:40%; height:2%;
  background: linear-gradient(90deg, transparent, #2a1a0a 20%, #2a1a0a 80%, transparent);
  opacity:0.3;
  animation: sp4-flourish 5s ease-in-out infinite alternate;
}
.scn-talleyrand-footnote-initiation .vintage-border {
  position:absolute; inset:8% 15% 8% 15%;
  border: 2px solid #a09070;
  opacity:0.2;
  border-radius: 12px;
  animation: sp4-border 15s ease-in-out infinite alternate;
}
@keyframes sp4-parchment { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(0.5deg) scale(1.005) } 100% { transform: rotate(-0.5deg) scale(0.995) } }
@keyframes sp4-quill { 0% { transform: rotate(-10deg) } 100% { transform: rotate(10deg) } }
@keyframes sp4-inkwell { 0% { transform: translateY(0) } 100% { transform: translateY(-2px) } }
@keyframes sp4-seal { 0% { transform: scale(1) } 100% { transform: scale(1.05) } }
@keyframes sp4-flourish { 0% { width:35%; opacity:0.2 } 100% { width:45%; opacity:0.4 } }
@keyframes sp4-border { 0% { opacity:0.15 } 100% { opacity:0.25 } }

.scn-skiddaw-knows-her-power {
  background: 
    linear-gradient(180deg, #4a5a6a 0%, #6a7a8a 40%, #3a4a5a 100%),
    radial-gradient(ellipse at 50% 20%, #8a9aaa 0%, transparent 70%);
}
.scn-skiddaw-knows-her-power .sky-mist {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, rgba(200,210,220,0.3) 0%, transparent 100%);
  animation: sk-mist 20s ease-in-out infinite alternate;
}
.scn-skiddaw-knows-her-power .mountain {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 45%;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 40%, #2a3a2a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.4);
  animation: sk-mountain 25s ease-in-out infinite alternate;
}
.scn-skiddaw-knows-her-power .cloud-far {
  position: absolute; top: 12%; left: 5%; width: 100px; height: 25px;
  background: linear-gradient(90deg, rgba(220,230,240,0.5) 0%, rgba(200,210,220,0.2) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: sk-drift-far 40s linear infinite;
}
.scn-skiddaw-knows-her-power .cloud-near {
  position: absolute; top: 25%; right: 10%; width: 80px; height: 20px;
  background: linear-gradient(90deg, rgba(220,230,240,0.6) 0%, rgba(200,210,220,0.1) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: sk-drift-near 30s linear infinite reverse;
}
.scn-skiddaw-knows-her-power .figure-winged {
  position: absolute; bottom: 30%; left: 45%; width: 40px; height: 55px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sk-figure 6s ease-in-out infinite;
  box-shadow: 0 0 20px 5px rgba(180,200,220,0.3);
}
.scn-skiddaw-knows-her-power .glow-peak {
  position: absolute; bottom: 50%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(240,250,255,0.4) 0%, transparent 70%);
  transform: translate(-50%, 50%);
  animation: sk-glow 8s ease-in-out infinite alternate;
}
@keyframes sk-mist {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.5; }
}
@keyframes sk-mountain {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}
@keyframes sk-drift-far {
  0% { transform: translateX(-50px); }
  100% { transform: translateX(120vw); }
}
@keyframes sk-drift-near {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}
@keyframes sk-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(3px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(6px) translateY(-1px) rotate(-1deg); }
  75% { transform: translateX(9px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(12px) translateY(0) rotate(0); }
}
@keyframes sk-glow {
  0% { transform: translate(-50%, 50%) scale(0.8); opacity: 0.4; }
  50% { transform: translate(-50%, 50%) scale(1.2); opacity: 0.8; }
  100% { transform: translate(-50%, 50%) scale(0.9); opacity: 0.5; }
}

.scn-mountain-wish-fulfilled {
  background: 
    linear-gradient(180deg, #4a5a6a 0%, #5a6a7a 30%, #3a4a5a 100%),
    radial-gradient(ellipse at 30% 50%, #7a8a9a 0%, transparent 60%);
}
.scn-mountain-wish-fulfilled .sky-overcast {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  animation: mw-sky 15s ease-in-out infinite alternate;
}
.scn-mountain-wish-fulfilled .mount-ridge {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 50%, #2a3a2a 100%);
  border-radius: 30% 50% 0 0 / 50% 70% 0 0;
  box-shadow: inset 0 -15px 25px rgba(0,0,0,0.5);
  animation: mw-mount 20s ease-in-out infinite alternate;
}
.scn-mountain-wish-fulfilled .mist-low {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(180,190,200,0.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: mw-mist 18s ease-in-out infinite alternate;
}
.scn-mountain-wish-fulfilled .figure-longing {
  position: absolute; bottom: 25%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw-figure 5s ease-in-out infinite;
}
.scn-mountain-wish-fulfilled .rock-base {
  position: absolute; bottom: 22%; left: 28%; width: 30px; height: 15px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-mountain-wish-fulfilled .small-tree {
  position: absolute; bottom: 28%; left: 60%; width: 12px; height: 25px;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: mw-tree 7s ease-in-out infinite alternate;
}
@keyframes mw-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes mw-mount {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes mw-mist {
  0% { opacity: 0.3; transform: translateY(0); }
  50% { opacity: 0.7; transform: translateY(-3px); }
  100% { opacity: 0.4; transform: translateY(0); }
}
@keyframes mw-figure {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  25% { transform: translateX(2px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(4px) translateY(-2px) rotate(-1deg); }
  75% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes mw-tree {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}

.scn-alcaeus-to-sappho-crimson {
  background: 
    linear-gradient(180deg, #d4c0a0 0%, #e8d8c0 40%, #c8b898 100%),
    radial-gradient(ellipse at 60% 30%, #f0e0d0 0%, transparent 70%);
}
.scn-alcaeus-to-sappho-crimson .wall-warm {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #c8b898 0%, #d4c0a0 100%);
  animation: as-wall 10s ease-in-out infinite alternate;
}
.scn-alcaeus-to-sappho-crimson .window-light {
  position: absolute; top: 10%; right: 15%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 100%);
  border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(240,232,208,0.6);
  animation: as-window 6s ease-in-out infinite alternate;
}
.scn-alcaeus-to-sappho-crimson .figure-profile {
  position: absolute; bottom: 15%; left: 30%; width: 35px; height: 55px;
  background: linear-gradient(180deg, #b09070 0%, #8a6a50 100%);
  border-radius: 50% 40% 40% 50% / 50% 40% 40% 50%;
  transform-origin: bottom center;
  animation: as-figure 4s ease-in-out infinite;
}
.scn-alcaeus-to-sappho-crimson .lyre {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #c89860 0%, #a07040 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 0 8px 2px rgba(160,112,64,0.5);
  animation: as-lyre 5s ease-in-out infinite alternate;
}
.scn-alcaeus-to-sappho-crimson .rose-terracotta {
  position: absolute; bottom: 25%; left: 55%; width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 30%, #c8553d 0%, #a0461a 70%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 6px rgba(160,70,26,0.4);
  animation: as-rose 3s ease-in-out infinite alternate;
}
.scn-alcaeus-to-sappho-crimson .candle-flame {
  position: absolute; bottom: 35%; left: 65%; width: 8px; height: 14px;
  background: radial-gradient(circle, #f0c060 0%, #e09030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(224,144,48,0.8);
  animation: as-candle 1.5s ease-in-out infinite alternate;
}
.scn-alcaeus-to-sappho-crimson .breath-mist {
  position: absolute; bottom: 28%; left: 35%; width: 20px; height: 10px;
  background: linear-gradient(90deg, rgba(200,180,160,0.3) 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: as-breath 4s ease-in-out infinite;
}
@keyframes as-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes as-window {
  0% { box-shadow: 0 0 20px 8px rgba(240,232,208,0.5); }
  50% { box-shadow: 0 0 40px 15px rgba(240,232,208,0.8); }
  100% { box-shadow: 0 0 25px 10px rgba(240,232,208,0.6); }
}
@keyframes as-figure {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  25% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
  50% { transform: translateX(0) translateY(-2px) rotate(0); }
  75% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes as-lyre {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(0.95); }
}
@keyframes as-rose {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(10deg) scale(1.05); }
  100% { transform: rotate(-5deg) scale(0.95); }
}
@keyframes as-candle {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.3) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(1.1) translateY(-1px); opacity: 0.8; }
}
@keyframes as-breath {
  0% { opacity: 0; transform: translateX(0) scaleX(1); }
  50% { opacity: 0.6; transform: translateX(5px) scaleX(1.5); }
  100% { opacity: 0; transform: translateX(10px) scaleX(0.8); }
}

.scn-alcaeus-publication-note {
  background: 
    linear-gradient(180deg, #c8b898 0%, #b8a888 50%, #a89878 100%),
    radial-gradient(ellipse at 30% 50%, #d8c8a8 0%, transparent 70%);
}
.scn-alcaeus-publication-note .wall-study {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #b8a888 0%, #a89878 100%);
  animation: ap-wall 12s ease-in-out infinite alternate;
}
.scn-alcaeus-publication-note .desk-wood {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-alcaeus-publication-note .paper-stack {
  position: absolute; bottom: 20%; left: 25%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #e8e0d0 0%, #d0c8b0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: ap-paper 8s ease-in-out infinite alternate;
}
.scn-alcaeus-publication-note .inkwell {
  position: absolute; bottom: 25%; left: 40%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-alcaeus-publication-note .quill {
  position: absolute; bottom: 38%; left: 42%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: ap-quill 5s ease-in-out infinite alternate;
}
.scn-alcaeus-publication-note .candle-desk {
  position: absolute; bottom: 28%; left: 55%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b898 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 16px 4px rgba(224,192,144,0.6);
}
.scn-alcaeus-publication-note .candle-desk::after {
  content: '';
  position: absolute; top: -8px; left: 50%; transform: translateX(-50%);
  width: 6px; height: 10px;
  background: radial-gradient(circle, #f0c060 0%, #e09030 60%, transparent 100%);
  border-radius: 50%;
  animation: ap-flame 2s ease-in-out infinite alternate;
}
.scn-alcaeus-publication-note .book-spine {
  position: absolute; bottom: 30%; right: 20%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 2px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
}
@keyframes ap-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ap-paper {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.3deg); }
}
@keyframes ap-quill {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(5deg); }
  50% { transform: rotate(-3deg); }
  75% { transform: rotate(4deg); }
  100% { transform: rotate(0deg); }
}
@keyframes ap-flame {
  0% { transform: translateX(-50%) scaleY(1); opacity: 0.8; }
  50% { transform: translateX(-50%) scaleY(1.3); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(1.1); opacity: 0.9; }
}

.scn-kubla-khan-preface {
  background: linear-gradient(180deg, #1a1510 0%, #2a2218 40%, #3a2a18 100%), radial-gradient(ellipse at 50% 30%, #4a3a28 0%, transparent 80%);
}
.scn-kubla-khan-preface .wall { position:absolute; inset:0; background: linear-gradient(180deg, #221a10 0%, #1a1510 100%); opacity:0.6; }
.scn-kubla-khan-preface .desk { position:absolute; bottom:20%; left:15%; right:15%; height:35%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2208 100%); border-radius:4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.5); animation: kkp-desk 12s ease-in-out infinite alternate; }
.scn-kubla-khan-preface .book { position:absolute; bottom:38%; left:35%; width:30%; height:20%; background: linear-gradient(135deg, #6a4a2a 0%, #4a2a0a 100%); border-radius:4px; transform: rotate(-5deg); box-shadow: 4px 4px 12px rgba(0,0,0,.6); animation: kkp-book 8s ease-in-out infinite; }
.scn-kubla-khan-preface .candle-base { position:absolute; bottom:42%; left:55%; width:8px; height:30px; background: linear-gradient(180deg, #d4b88a 0%, #a08050 100%); border-radius:2px; box-shadow: 0 4px 6px rgba(0,0,0,.4); }
.scn-kubla-khan-preface .flame { position:absolute; bottom:67%; left:55.5%; width:4px; height:12px; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #ff8c40 60%, transparent 100%); border-radius:50% 50% 20% 20%; transform:translateX(-50%); animation: kkp-flame 2s ease-in-out infinite alternate; }
.scn-kubla-khan-preface .glow-ambient { position:absolute; bottom:30%; left:40%; right:30%; height:40%; background: radial-gradient(ellipse at 50% 0%, rgba(255,200,100,.15) 0%, transparent 70%); animation: kkp-glow 4s ease-in-out infinite alternate; }
.scn-kubla-khan-preface .page-edge { position:absolute; bottom:42%; left:38%; width:24%; height:3px; background: linear-gradient(90deg, #f5e6c8 0%, #e0c8a0 100%); border-radius:1px; transform: rotate(3deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: kkp-page 10s ease-in-out infinite; }
.scn-kubla-khan-preface .shadow-shelf { position:absolute; bottom:18%; left:10%; right:10%; height:5px; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(2px); animation: kkp-shadow 12s ease-in-out infinite alternate; }
@keyframes kkp-desk { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes kkp-book { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2px); } }
@keyframes kkp-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg); opacity:.85; } 50% { transform: translateX(-50%) scaleY(1.2) rotate(2deg); opacity:1; } 100% { transform: translateX(-50%) scaleY(.9) rotate(-1deg); opacity:.9; } }
@keyframes kkp-glow { 0% { opacity:.4; } 50% { opacity:.7; } 100% { opacity:.5; } }
@keyframes kkp-page { 0%,100% { transform: rotate(3deg) translateX(0); } 50% { transform: rotate(4deg) translateX(2px); } }
@keyframes kkp-shadow { 0% { transform: scaleX(1); opacity:.5; } 50% { transform: scaleX(1.05); opacity:.7; } 100% { transform: scaleX(1); opacity:.5; } }

.scn-anodyne-sleep-vision {
  background: linear-gradient(180deg, #0a0a1a 0%, #14142a 40%, #1a1a3a 100%), radial-gradient(ellipse at 50% 80%, #1a1a3a 0%, transparent 70%);
}
.scn-anodyne-sleep-vision .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #0a0a2a 100%); opacity:.6; }
.scn-anodyne-sleep-vision .chair { position:absolute; bottom:10%; left:20%; right:20%; height:55%; background: radial-gradient(ellipse at 50% 0%, #2a1a10 0%, #0a0a05 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 20px 40px rgba(0,0,0,.7); animation: asv-chair 15s ease-in-out infinite alternate; }
.scn-anodyne-sleep-vision .figure-silhouette { position:absolute; bottom:30%; left:35%; width:18%; height:40%; background: linear-gradient(180deg, #05050f 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30% / 70% 70% 40% 40%; transform-origin: bottom center; animation: asv-figure 4s ease-in-out infinite; }
.scn-anodyne-sleep-vision .book-open { position:absolute; bottom:42%; left:38%; width:22%; height:14%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; transform: rotate(10deg); box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: asv-book 6s ease-in-out infinite; }
.scn-anodyne-sleep-vision .reading-lamp { position:absolute; bottom:48%; left:65%; width:6px; height:20px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:2px; animation: asv-lamp 8s ease-in-out infinite alternate; }
.scn-anodyne-sleep-vision .lamp-glow { position:absolute; bottom:45%; left:60%; width:30%; height:30%; background: radial-gradient(ellipse at 50% 20%, rgba(180,140,100,.15) 0%, transparent 80%); animation: asv-glow 3s ease-in-out infinite alternate; }
.scn-anodyne-sleep-vision .float-particle-a { position:absolute; top:20%; left:40%; width:8px; height:8px; background: radial-gradient(circle, rgba(200,180,160,.4) 0%, transparent 100%); border-radius:50%; animation: asv-float 12s ease-in-out infinite; }
.scn-anodyne-sleep-vision .float-particle-b { position:absolute; top:30%; left:55%; width:6px; height:6px; background: radial-gradient(circle, rgba(200,180,160,.3) 0%, transparent 100%); border-radius:50%; animation: asv-float 15s ease-in-out infinite reverse; animation-delay: -5s; }
@keyframes asv-chair { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes asv-figure { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(-1px); } 75% { transform: rotate(1deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes asv-book { 0%,100% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(12deg) translateX(3px); } }
@keyframes asv-lamp { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes asv-glow { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.4; } }
@keyframes asv-float { 0% { transform: translateY(0) scale(1); opacity:.5; } 50% { transform: translateY(-30px) scale(1.2); opacity:.8; } 100% { transform: translateY(0) scale(1); opacity:.5; } }

.scn-dream-composition-memory {
  background: linear-gradient(180deg, #0a0a2a 0%, #14144a 40%, #0e0e3e 100%), radial-gradient(ellipse at 50% 50%, #1a1a5a 0%, transparent 70%);
}
.scn-dream-composition-memory .night-sky { position:absolute; inset:0; background: linear-gradient(180deg, #060620 0%, #0a0a30 100%); opacity:.7; animation: dcm-sky 20s ease-in-out infinite alternate; }
.scn-dream-composition-memory .palace-dome { position:absolute; bottom:40%; left:30%; width:40%; height:35%; background: linear-gradient(135deg, #4a3a1a 0%, #2a1a0a 100%); border-radius:50% 50% 5% 5% / 80% 80% 10% 10%; box-shadow: 0 20px 40px rgba(0,0,0,.5), inset 0 10px 30px rgba(200,180,100,.1); animation: dcm-dome 6s ease-in-out infinite alternate; }
.scn-dream-composition-memory .palace-minaret { position:absolute; bottom:55%; left:45%; width:6%; height:30%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%); border-radius:4px; transform-origin: bottom center; animation: dcm-minaret 8s ease-in-out infinite alternate; }
.scn-dream-composition-memory .starfield { position:absolute; inset:0; background-image: radial-gradient(1px 1px at 20% 10%, rgba(255,255,240,.6), transparent), radial-gradient(1px 1px at 50% 20%, rgba(255,255,240,.4), transparent), radial-gradient(2px 2px at 70% 5%, rgba(255,255,240,.7), transparent), radial-gradient(1px 1px at 30% 30%, rgba(255,255,240,.3), transparent); background-size: 200px 200px; animation: dcm-stars 30s linear infinite; }
.scn-dream-composition-memory .glowing-quill { position:absolute; bottom:30%; left:55%; width:8px; height:35px; background: linear-gradient(180deg, #c8a860 0%, #8a7030 100%); border-radius:50% 50% 10% 10%/ 30% 30% 70% 70%; transform: rotate(15deg); box-shadow: 0 0 20px rgba(200,168,96,.5); animation: dcm-quill 4s ease-in-out infinite; }
.scn-dream-composition-memory .ink-splash { position:absolute; bottom:38%; left:52%; width:15px; height:15px; background: radial-gradient(circle, #1a1a2a 0%, #0a0a1a 100%); border-radius:50%; box-shadow: 0 0 10px rgba(0,0,0,.5); animation: dcm-ink 5s ease-in-out infinite; }
.scn-dream-composition-memory .dream-drift { position:absolute; top:20%; right:10%; width:30%; height:20%; background: linear-gradient(135deg, rgba(150,130,200,.1) 0%, rgba(200,180,255,.05) 100%); border-radius:50%; filter: blur(10px); animation: dcm-drift 25s linear infinite; }
@keyframes dcm-sky { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.7; } }
@keyframes dcm-dome { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.03) rotate(1deg); } 100% { transform: scaleY(1) rotate(0deg); } }
@keyframes dcm-minaret { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes dcm-stars { 0% { transform: translateY(0); } 100% { transform: translateY(-200px); } }
@keyframes dcm-quill { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-5px); } }
@keyframes dcm-ink { 0%,100% { transform: scale(1); opacity:.8; } 50% { transform: scale(1.2); opacity:1; } }
@keyframes dcm-drift { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(30px) rotate(5deg); } 100% { transform: translateX(60px) rotate(10deg); } }

.scn-porlock-interruption {
  background: linear-gradient(180deg, #c8b89a 0%, #e0d0b8 40%, #f0e0c8 100%), radial-gradient(ellipse at 50% 0%, #f5e8d8 0%, transparent 70%);
}
.scn-porlock-interruption .room-wall { position:absolute; inset:0; background: linear-gradient(180deg, #c8b89a 0%, #d8c8a8 100%); opacity:.5; }
.scn-porlock-interruption .door-frame { position:absolute; bottom:0; left:60%; width:30%; height:100%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:0 0 8% 8% / 0 0 20% 20%; box-shadow: inset -10px 0 20px rgba(0,0,0,.2); animation: pin-door 6s ease-in-out infinite alternate; }
.scn-porlock-interruption .desk-clutter { position:absolute; bottom:15%; left:15%; right:30%; height:25%; background: linear-gradient(180deg, #b8a080 0%, #9a8060 100%); border-radius:4%; box-shadow: 0 10px 20px rgba(0,0,0,.3); }
.scn-porlock-interruption .paper-scatter { position:absolute; bottom:20%; left:18%; width:20%; height:8%; background: linear-gradient(135deg, #f5f0e0 0%, #e8dcc8 100%); border-radius:2px; transform: rotate(15deg); box-shadow: 2px 2px 6px rgba(0,0,0,.2); animation: pin-paper 5s ease-in-out infinite; }
.scn-porlock-interruption .figure-turn { position:absolute; bottom:20%; left:25%; width:16%; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: pin-turn 3s ease-in-out infinite alternate; }
.scn-porlock-interruption .intruder-shadow { position:absolute; bottom:10%; left:70%; width:15%; height:60%; background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,.3) 100%); border-radius:50% 50% 20% 20% / 80% 80% 30% 30%; filter: blur(4px); animation: pin-shadow 6s ease-in-out infinite alternate; }
.scn-porlock-interruption .morning-light { position:absolute; top:0; left:50%; right:0; height:60%; background: linear-gradient(135deg, rgba(255,240,200,.3) 0%, rgba(255,230,180,.05) 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 60%); animation: pin-light 10s ease-in-out infinite alternate; }
.scn-porlock-interruption .quill-drop { position:absolute; bottom:30%; left:30%; width:4px; height:25px; background: linear-gradient(180deg, #c8a860 0%, #8a7030 100%); border-radius:50% 50% 10% 10% / 30% 30% 70% 70%; transform: rotate(-30deg); animation: pin-quill 4s ease-in-out infinite; }
@keyframes pin-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes pin-paper { 0%,100% { transform: rotate(15deg) translateX(0); opacity:.8; } 50% { transform: rotate(20deg) translateX(5px); opacity:1; } }
@keyframes pin-turn { 0% { transform: rotate(0deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(0deg); } }
@keyframes pin-shadow { 0% { transform: scaleX(1); opacity:.3; } 50% { transform: scaleX(1.1); opacity:.5; } 100% { transform: scaleX(1); opacity:.3; } }
@keyframes pin-light { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.6; } }
@keyframes pin-quill { 0%,100% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-8px); } }

.scn-two-round-spaces-tombstone {
  background: linear-gradient(180deg, #0b0e2a 0%, #1c2248 40%, #2a3566 70%, #3a4a7a 100%),
              radial-gradient(ellipse at 50% 0%, #5a7aaa88 0%, transparent 60%);
}
.scn-two-round-spaces-tombstone .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0e1230 0%, transparent 100%);
  animation: ts-sky 14s ease-in-out infinite alternate;
}
.scn-two-round-spaces-tombstone .moon {
  position: absolute; top: 8%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d0dbe8 0%, #a0b8d0 50%, #8088a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #a0b8d088, 0 0 60px 30px #6078a044;
  animation: ts-moon 20s ease-in-out infinite;
}
.scn-two-round-spaces-tombstone .tombstone {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 120px;
  background: linear-gradient(180deg, #4a5068 0%, #2a3040 50%, #1a2030 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 -4px 12px #00000044, inset 0 0 20px #00000066;
  animation: ts-tombstone 8s ease-in-out infinite;
}
.scn-two-round-spaces-tombstone .eye-left,
.scn-two-round-spaces-tombstone .eye-right {
  position: absolute; bottom: 50%; width: 14px; height: 18px;
  background: radial-gradient(circle, #c0c8d8 0%, #607080 70%, transparent 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 12px 4px #8090aa66, 0 0 24px 8px #8090aa33;
}
.scn-two-round-spaces-tombstone .eye-left {
  left: calc(50% - 22px);
  animation: ts-eye 3s ease-in-out infinite alternate;
}
.scn-two-round-spaces-tombstone .eye-right {
  left: calc(50% + 8px);
  animation: ts-eye 3s 0.5s ease-in-out infinite alternate;
}
.scn-two-round-spaces-tombstone .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  mask-image: linear-gradient(0deg, #000 0%, transparent 100%);
  animation: ts-grass 12s ease-in-out infinite alternate;
}
.scn-two-round-spaces-tombstone .branch {
  position: absolute; top: 10%; left: 10%; width: 60px; height: 8px;
  background: linear-gradient(90deg, #2a3040 0%, #1a2030 100%);
  border-radius: 40%;
  transform-origin: left center;
  animation: ts-branch 25s linear infinite;
}
@keyframes ts-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes ts-moon { 0% { transform: translateX(0) scale(1) } 33% { transform: translateX(4px) scale(1.05) } 66% { transform: translateX(-2px) scale(1.02) } 100% { transform: translateX(0) scale(1) } }
@keyframes ts-tombstone { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px) } }
@keyframes ts-eye { 0% { transform: scale(1); opacity:0.8 } 50% { transform: scale(1.3); opacity:1 } 100% { transform: scale(0.9); opacity:0.7 } }
@keyframes ts-grass { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(0.95) } }
@keyframes ts-branch { 0% { transform: rotate(-10deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-10deg) } }

.scn-scotchman-snake-holes {
  background: linear-gradient(180deg, #0f1428 0%, #1e2848 40%, #2c3e66 70%, #3a5070 100%),
              radial-gradient(ellipse at 30% 80%, #5a8aaa44 0%, transparent 60%);
}
.scn-scotchman-snake-holes .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #121838 0%, transparent 100%);
  animation: ss-sky 16s ease-in-out infinite alternate;
}
.scn-scotchman-snake-holes .moon {
  position: absolute; top: 6%; left: 60%; width: 36px; height: 36px;
  background: radial-gradient(circle, #c8d4e0 0%, #98aec8 50%, #7088a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px #98aec866, 0 0 48px 20px #7088a044;
  animation: ss-moon 22s ease-in-out infinite alternate;
}
.scn-scotchman-snake-holes .snow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #d0d8e0 0%, #b0bcc8 50%, #8898a8 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px #00000033;
  animation: ss-snow 18s ease-in-out infinite alternate;
}
.scn-scotchman-snake-holes .figure {
  position: absolute; bottom: 35%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2c3a4a 0%, #1a2030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ss-figure 4s ease-in-out infinite;
}
.scn-scotchman-snake-holes .snake {
  position: absolute; bottom: 30%; left: 28%; width: 40px; height: 10px;
  background: linear-gradient(180deg, #4a6a4a 0%, #2a4a2a 100%);
  border-radius: 50% 50% 40% 40%;
  filter: blur(1px);
  animation: ss-snake 6s ease-in-out infinite;
}
.scn-scotchman-snake-holes .hole {
  position: absolute; bottom: 20%; left: 42%; width: 24px; height: 14px;
  background: radial-gradient(ellipse at 50% 100%, #00000066 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: inset 0 2px 6px #00000044;
  animation: ss-hole 10s ease-in-out infinite alternate;
}
@keyframes ss-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ss-moon { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(6px) scale(1.04) } 100% { transform: translateX(-3px) scale(0.98) } }
@keyframes ss-snow { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } 100% { transform: scaleY(1.02) } }
@keyframes ss-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(6px) rotate(2deg) } 50% { transform: translateX(12px) rotate(-1deg) } 75% { transform: translateX(18px) rotate(3deg) } 100% { transform: translateX(24px) rotate(0) } }
@keyframes ss-snake { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(8px) rotate(10deg) } 50% { transform: translateX(-4px) rotate(-5deg) } 75% { transform: translateX(10px) rotate(15deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ss-hole { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.8) } 100% { transform: scaleY(1.1) } }

.scn-devil-grannam-waiting {
  background: linear-gradient(180deg, #0c1028 0%, #1c2240 40%, #2c3460 70%, #38487a 100%),
              radial-gradient(ellipse at 70% 20%, #5a7aaa44 0%, transparent 60%);
}
.scn-devil-grannam-waiting .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #101638 0%, transparent 100%);
  animation: dg-sky 18s ease-in-out infinite alternate;
}
.scn-devil-grannam-waiting .moon {
  position: absolute; top: 4%; right: 10%; width: 44px; height: 44px;
  background: radial-gradient(circle, #d4dee8 0%, #a4bcd0 50%, #7c94ac 100%);
  border-radius: 50%;
  box-shadow: 0 0 36px 12px #a4bcd088, 0 0 70px 30px #7c94ac44;
  animation: dg-moon 24s ease-in-out infinite;
}
.scn-devil-grannam-waiting .snow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #d4d8e0 0%, #b4c0cc 50%, #8c9ca8 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 25px #00000033;
  animation: dg-snow 20s ease-in-out infinite alternate;
}
.scn-devil-grannam-waiting .devil {
  position: absolute; bottom: 35%; left: 35%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a3050 0%, #201830 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dg-devil 3s ease-in-out infinite;
}
.scn-devil-grannam-waiting .grannam {
  position: absolute; bottom: 33%; left: 50%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #4a4040 0%, #2a2020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dg-grannam 3.5s ease-in-out infinite 0.5s;
}
.scn-devil-grannam-waiting .trumpet {
  position: absolute; bottom: 48%; left: 42%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #a0a8b0 0%, #606870 100%);
  border-radius: 40% 40% 60% 60% / 20% 20% 80% 80%;
  transform: rotate(20deg);
  animation: dg-trumpet 2s ease-in-out infinite alternate;
}
@keyframes dg-sky { 0% { opacity:0.75 } 50% { opacity:1 } 100% { opacity:0.65 } }
@keyframes dg-moon { 0% { transform: translateY(0) scale(1) } 33% { transform: translateY(3px) scale(1.03) } 66% { transform: translateY(-2px) scale(0.97) } 100% { transform: translateY(0) scale(1) } }
@keyframes dg-snow { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.04) } 100% { transform: scaleY(0.96) } }
@keyframes dg-devil { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(8px) rotate(5deg) translateY(-2px) } 50% { transform: translateX(16px) rotate(-2deg) } 75% { transform: translateX(24px) rotate(4deg) translateY(-1px) } 100% { transform: translateX(32px) rotate(0) } }
@keyframes dg-grannam { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-6px) rotate(-4deg) translateY(-1px) } 50% { transform: translateX(-12px) rotate(3deg) } 75% { transform: translateX(-18px) rotate(-2deg) translateY(1px) } 100% { transform: translateX(-24px) rotate(0) } }
@keyframes dg-trumpet { 0% { transform: rotate(20deg) scaleY(1) } 50% { transform: rotate(25deg) scaleY(1.1) } 100% { transform: rotate(15deg) scaleY(0.95) } }

.scn-devils-thoughts-publication {
  background: linear-gradient(180deg, #d4c8aa 0%, #b8a888 30%, #9a8a6a 60%, #7a6a4a 100%),
              radial-gradient(ellipse at 50% 30%, #e8dcc4 0%, transparent 70%);
}
.scn-devils-thoughts-publication .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c4b898 0%, #a89878 100%);
  box-shadow: inset 0 0 40px #3a2a1a44;
  animation: dp-wall 30s ease-in-out infinite alternate;
}
.scn-devils-thoughts-publication .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -6px 15px #2a1a0a55;
  animation: dp-desk 10s ease-in-out infinite alternate;
}
.scn-devils-thoughts-publication .paper {
  position: absolute; bottom: 30%; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #f0e6d0 0%, #d0c4a8 100%);
  border-radius: 2%;
  box-shadow: 0 0 8px #2a1a0a33, inset 0 0 10px #ffffff44;
  animation: dp-paper 8s ease-in-out infinite;
}
.scn-devils-thoughts-publication .candle-left,
.scn-devils-thoughts-publication .candle-right {
  position: absolute; bottom: 42%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e8e0c0 0%, #c8b888 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #ffd08066;
}
.scn-devils-thoughts-publication .candle-left {
  left: 35%;
  animation: dp-candle 4s ease-in-out infinite alternate;
}
.scn-devils-thoughts-publication .candle-right {
  right: 35%;
  animation: dp-candle 4s 2s ease-in-out infinite alternate;
}
.scn-devils-thoughts-publication .inkwell {
  position: absolute; bottom: 32%; left: 38%; width: 18px; height: 16px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 6px #00000044;
  animation: dp-inkwell 6s ease-in-out infinite;
}
.scn-devils-thoughts-publication .quill {
  position: absolute; bottom: 38%; left: 42%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #e0d8c8 0%, #b0a898 50%, #706058 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(15deg);
  animation: dp-quill 2s ease-in-out infinite alternate;
}
@keyframes dp-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes dp-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dp-paper { 0% { transform: scale(1) } 50% { transform: scale(0.98) } 100% { transform: scale(1.01) } }
@keyframes dp-candle { 0% { transform: scaleY(1); opacity:0.9 } 50% { transform: scaleY(1.1); opacity:1 } 100% { transform: scaleY(0.95); opacity:0.85 } }
@keyframes dp-inkwell { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.98) } }
@keyframes dp-quill { 0% { transform: rotate(15deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(10deg) } }

/* Scene: earth-bride-consort-heaven */

.scn-earth-bride-consort-heaven {
  background: linear-gradient(180deg, #f9c9a0 0%, #e8a06a 30%, #b06a3a 60%, #6a3a1a 100%), radial-gradient(ellipse at 50% 0%, #ffe0b0 0%, transparent 60%);
}
.scn-earth-bride-consort-heaven .sky-dawn {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f9d8b8 0%, #e8a86a 40%, #c87848 100%);
  animation: e1-sky 12s ease-in-out infinite alternate;
}
.scn-earth-bride-consort-heaven .sun-glow {
  position: absolute; top: 10%; left: 55%; width: 120px; height: 120px;
  background: radial-gradient(circle at center, #ffe8c0 0%, #f0a050 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(240,160,80,0.6);
  animation: e1-sun 8s ease-in-out infinite alternate;
}
.scn-earth-bride-consort-heaven .mountains {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a4a2a 0%, #4a2a1a 100%);
  border-radius: 30% 70% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: e1-mountains 18s ease-in-out infinite alternate;
}
.scn-earth-bride-consort-heaven .earth-figure {
  position: absolute; bottom: 12%; left: 40%; width: 80px; height: 140px;
  background: radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, #2a1a0a 80%);
  border-radius: 60% 40% 20% 20% / 70% 50% 30% 40%;
  transform: rotate(-5deg);
  animation: e1-figure 6s ease-in-out infinite;
}
.scn-earth-bride-consort-heaven .comet-1 {
  position: absolute; top: 15%; left: 10%; width: 40px; height: 4px;
  background: linear-gradient(90deg, #ffe8c0, transparent);
  filter: blur(1px);
  animation: e1-comet 15s linear infinite;
}
.scn-earth-bride-consort-heaven .comet-2 {
  position: absolute; top: 25%; left: -10%; width: 30px; height: 3px;
  background: linear-gradient(90deg, #ffe0a0, transparent);
  filter: blur(1px);
  animation: e1-comet2 20s linear infinite reverse;
}
.scn-earth-bride-consort-heaven .stars {
  position: absolute; inset: 0 0 60% 0;
  background: radial-gradient(2px 2px at 20% 30%, #fff, transparent),
              radial-gradient(2px 2px at 40% 10%, #fff, transparent),
              radial-gradient(2px 2px at 60% 40%, #fff, transparent),
              radial-gradient(2px 2px at 80% 20%, #fff, transparent),
              radial-gradient(2px 2px at 10% 50%, #fff, transparent);
  opacity: 0.6;
  animation: e1-stars 3s ease-in-out infinite alternate;
}
@keyframes e1-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes e1-sun { 0% { transform: scale(0.95) translateY(0) } 50% { transform: scale(1.05) translateY(-5px) } 100% { transform: scale(1) translateY(2px) } }
@keyframes e1-mountains { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes e1-figure { 0%,100% { transform: rotate(-5deg) translateY(0) } 25% { transform: rotate(-3deg) translateY(-3px) } 75% { transform: rotate(-7deg) translateY(-1px) } }
@keyframes e1-comet { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }
@keyframes e1-comet2 { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes e1-stars { 0% { opacity: 0.4 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }

/* Scene: embrace-of-heaven-lives */

.scn-embrace-of-heaven-lives {
  background: linear-gradient(180deg, #ffc0a0 0%, #e8a070 30%, #c08050 60%, #a06030 100%), radial-gradient(ellipse at 50% 0%, #ffe0c0 0%, transparent 50%);
}
.scn-embrace-of-heaven-lives .sky-dawn {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #ffd8c0 0%, #e8a870 40%, #c07848 100%);
  animation: e2-sky 10s ease-in-out infinite alternate;
}
.scn-embrace-of-heaven-lives .sun-rays {
  position: absolute; top: 5%; left: 30%; width: 100px; height: 100px;
  background: radial-gradient(circle at center, #ffe8c0 0%, #f0a050 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: e2-sun 6s ease-in-out infinite alternate;
}
.scn-embrace-of-heaven-lives .embrace-left {
  position: absolute; bottom: 20%; left: 35%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 100%);
  border-radius: 40% 60% 30% 30% / 60% 50% 40% 40%;
  transform: rotate(15deg);
  animation: e2-left 4s ease-in-out infinite;
}
.scn-embrace-of-heaven-lives .embrace-right {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #7a4a3a 0%, #4a2a1a 100%);
  border-radius: 60% 40% 30% 30% / 50% 60% 40% 40%;
  transform: rotate(-15deg);
  animation: e2-right 4s ease-in-out infinite;
}
.scn-embrace-of-heaven-lives .clouds {
  position: absolute; top: 10%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 20% 50%, rgba(255,200,150,0.4) 0%, transparent 50%),
              radial-gradient(ellipse at 60% 30%, rgba(255,180,130,0.3) 0%, transparent 40%),
              radial-gradient(ellipse at 80% 60%, rgba(255,200,150,0.2) 0%, transparent 50%);
  filter: blur(15px);
  animation: e2-clouds 25s linear infinite;
}
.scn-embrace-of-heaven-lives .sparkles {
  position: absolute; top: 30%; left: 20%; width: 100%; height: 100%;
  background: radial-gradient(3px 3px at 30% 40%, #ffe8c0, transparent),
              radial-gradient(3px 3px at 50% 60%, #ffe8c0, transparent),
              radial-gradient(3px 3px at 70% 20%, #ffe8c0, transparent);
  opacity: 0.5;
  animation: e2-sparkle 2s ease-in-out infinite alternate;
}
@keyframes e2-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes e2-sun { 0% { transform: scale(0.9) translateY(0) rotate(0deg) } 50% { transform: scale(1.1) translateY(-5px) rotate(5deg) } 100% { transform: scale(1) translateY(2px) rotate(0deg) } }
@keyframes e2-left { 0%,100% { transform: rotate(15deg) translateY(0) } 25% { transform: rotate(18deg) translateY(-3px) } 75% { transform: rotate(12deg) translateY(-1px) } }
@keyframes e2-right { 0%,100% { transform: rotate(-15deg) translateY(0) } 25% { transform: rotate(-18deg) translateY(-3px) } 75% { transform: rotate(-12deg) translateY(-1px) } }
@keyframes e2-clouds { 0% { transform: translateX(0) } 50% { transform: translateX(20px) } 100% { transform: translateX(0) } }
@keyframes e2-sparkle { 0% { opacity: 0.3 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }

/* Scene: stolberg-hymn-note */

.scn-stolberg-hymn-note {
  background: linear-gradient(180deg, #d8c8a0 0%, #c0a878 30%, #a08858 60%, #806840 100%), radial-gradient(ellipse at 50% 0%, #f0e0c0 0%, transparent 60%);
}
.scn-stolberg-hymn-note .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d8c8a0 0%, #c0a878 100%);
}
.scn-stolberg-hymn-note .window {
  position: absolute; top: 10%; left: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #a0c8e8 0%, #80a8c8 100%);
  border: 4px solid #806840;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
  animation: s3-window 8s ease-in-out infinite alternate;
}
.scn-stolberg-hymn-note .desk {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 12%;
  background: linear-gradient(180deg, #a08050 0%, #806030 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-stolberg-hymn-note .book-open {
  position: absolute; bottom: 20%; left: 35%; width: 90px; height: 60px;
  background: linear-gradient(135deg, #f0e0c0 0%, #e0c890 50%, #d0b870 100%);
  border-radius: 4px 60% 4px 4px;
  transform: rotate(2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: s3-book 4s ease-in-out infinite;
}
.scn-stolberg-hymn-note .candle {
  position: absolute; bottom: 22%; left: 50%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #e0c080 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 16px 6px rgba(255,200,100,0.5);
  animation: s3-candle 3s ease-in-out infinite alternate;
}
.scn-stolberg-hymn-note .quill {
  position: absolute; bottom: 18%; left: 60%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #d8d0c0 0%, #a09080 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform: rotate(-30deg);
  animation: s3-quill 5s ease-in-out infinite;
}
.scn-stolberg-hymn-note .inkwell {
  position: absolute; bottom: 22%; left: 68%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
@keyframes s3-window { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes s3-book { 0%,100% { transform: rotate(2deg) translateY(0) } 25% { transform: rotate(4deg) translateY(-1px) } 75% { transform: rotate(0deg) translateY(0) } }
@keyframes s3-candle { 0% { box-shadow: 0 0 12px 4px rgba(255,200,100,0.4); height: 40px } 50% { box-shadow: 0 0 20px 8px rgba(255,200,100,0.7); height: 42px } 100% { box-shadow: 0 0 14px 5px rgba(255,200,100,0.5); height: 38px } }
@keyframes s3-quill { 0% { transform: rotate(-30deg) translateY(0) } 25% { transform: rotate(-32deg) translateY(-2px) } 75% { transform: rotate(-28deg) translateY(0) } }

/* Scene: mahomet-prophet-flight */

.scn-mahomet-prophet-flight {
  background: linear-gradient(180deg, #f0c080 0%, #d09050 30%, #a06030 60%, #603010 100%), radial-gradient(ellipse at 50% 0%, #ffd8a0 0%, transparent 60%);
}
.scn-mahomet-prophet-flight .sky-sunlit {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0c880 0%, #d0a058 40%, #a07038 100%);
  animation: m4-sky 10s ease-in-out infinite alternate;
}
.scn-mahomet-prophet-flight .sun-burst {
  position: absolute; top: 5%; left: 50%; width: 140px; height: 140px;
  background: radial-gradient(circle at center, #ffe8c0 0%, #f0a050 35%, #c08030 70%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 80px 40px rgba(240,160,80,0.6);
  animation: m4-sun 6s ease-in-out infinite alternate;
}
.scn-mahomet-prophet-flight .mountains {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a4a2a 0%, #4a2a1a 100%);
  border-radius: 40% 60% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: m4-mountains 20s ease-in-out infinite alternate;
}
.scn-mahomet-prophet-flight .rider {
  position: absolute; bottom: 30%; left: 45%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: m4-rider 3s ease-in-out infinite;
}
.scn-mahomet-prophet-flight .horse {
  position: absolute; bottom: 22%; left: 40%; width: 100px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform: rotate(5deg);
  animation: m4-horse 3s ease-in-out infinite;
}
.scn-mahomet-prophet-flight .clouds {
  position: absolute; top: 10%; left: 0; right: 0; height: 15%;
  background: radial-gradient(ellipse at 20% 50%, rgba(255,220,180,0.5) 0%, transparent 50%),
              radial-gradient(ellipse at 70% 30%, rgba(255,200,160,0.4) 0%, transparent 40%),
              radial-gradient(ellipse at 90% 70%, rgba(255,220,180,0.3) 0%, transparent 50%);
  filter: blur(12px);
  animation: m4-clouds 30s linear infinite;
}
.scn-mahomet-prophet-flight .rays {
  position: absolute; top: 0; left: 0; width: 100%; height: 60%;
  background: linear-gradient(135deg, rgba(255,200,100,0.3) 0%, transparent 30%),
              linear-gradient(225deg, rgba(255,200,100,0.2) 0%, transparent 30%);
  animation: m4-rays 5s ease-in-out infinite alternate;
}
@keyframes m4-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes m4-sun { 0% { transform: translateX(-50%) scale(0.95) } 50% { transform: translateX(-50%) scale(1.05) translateY(-5px) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes m4-mountains { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes m4-rider { 0%,100% { transform: rotate(-10deg) translateY(0) } 25% { transform: rotate(-8deg) translateY(-4px) } 75% { transform: rotate(-12deg) translateY(-1px) } }
@keyframes m4-horse { 0%,100% { transform: rotate(5deg) translateY(0) } 25% { transform: rotate(8deg) translateY(-3px) } 75% { transform: rotate(3deg) translateY(0) } }
@keyframes m4-clouds { 0% { transform: translateX(0) } 50% { transform: translateX(15px) } 100% { transform: translateX(0) } }
@keyframes m4-rays { 0% { opacity: 0.5 } 50% { opacity: 1 } 100% { opacity: 0.6 } }

.scn-further-variants-ox { background: linear-gradient(180deg, #f4e4c1 0%, #d4c09a 40%, #b89a7a 100%), radial-gradient(ellipse at 80% 20%, #fff8e7 0%, transparent 60%); }
.scn-further-variants-ox .backdrop { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e8d8b8 0%, #c8b49a 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 8px 20px rgba(0,0,0,.15); }
.scn-further-variants-ox .desk { position:absolute; bottom:18%; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #a08060 0%, #7a604a 100%); border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,.3); }
.scn-further-variants-ox .book-stack { position:absolute; bottom:28%; left:20%; width:20%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: fvox-stack 8s ease-in-out infinite alternate; }
.scn-further-variants-ox .ox-silhouette { position:absolute; bottom:25%; right:15%; width:18%; height:22%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 40% 50% 30% 40% / 50% 60% 40% 50%; filter: blur(2px); transform: rotateY(180deg); animation: fvox-ox 12s ease-in-out infinite; }
.scn-further-variants-ox .annotation-lines { position:absolute; bottom:30%; left:25%; right:15%; height:0.5%; background: #6a5a4a; border-radius: 50px; opacity:0.6; animation: fvox-annotate 6s ease-in-out infinite; }
.scn-further-variants-ox .lamp { position:absolute; top:8%; left:65%; width:3%; height:12%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 20% 20% 10% 10%; transform-origin: top center; animation: fvox-lamp 5s ease-in-out infinite alternate; }
.scn-further-variants-ox .shadow-figure { position:absolute; bottom:18%; left:35%; width:6%; height:30%; background: linear-gradient(180deg, rgba(30,20,10,.8) 0%, rgba(10,10,5,.4) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(3px); animation: fvox-figure 14s ease-in-out infinite; }
@keyframes fvox-stack { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes fvox-ox { 0% { transform: translateX(0) rotateY(180deg); } 50% { transform: translateX(10px) rotateY(180deg) scale(1.02); } 100% { transform: translateX(-5px) rotateY(180deg); } }
@keyframes fvox-annotate { 0% { width: 10%; left: 20%; opacity: 0.2; } 50% { width: 50%; left: 40%; opacity: 0.8; } 100% { width: 20%; left: 60%; opacity: 0.3; } }
@keyframes fvox-lamp { 0% { transform: rotate(-3deg); box-shadow: 0 0 20px 10px rgba(200,170,120,0.3); } 50% { transform: rotate(2deg); box-shadow: 0 0 30px 15px rgba(200,170,120,0.5); } 100% { transform: rotate(-5deg); box-shadow: 0 0 25px 12px rgba(200,170,120,0.4); } }
@keyframes fvox-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(10px) translateY(0) rotate(0); } 75% { transform: translateX(15px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }

.scn-tierneys-wound-miss { background: linear-gradient(180deg, #f2e8d0 0%, #d8c8a8 40%, #b8a080 100%), radial-gradient(ellipse at 60% 40%, #fff5e0 0%, transparent 50%); }
.scn-tierneys-wound-miss .backdrop { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%); border-radius: 0 0 30% 30%; box-shadow: inset 0 8px 20px rgba(0,0,0,.12); }
.scn-tierneys-wound-miss .podium { position:absolute; bottom:20%; left:40%; width:12%; height:18%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 10px rgba(0,0,0,.4); }
.scn-tierneys-wound-miss .speaker { position:absolute; bottom:30%; left:42%; width:8%; height:28%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tnws-speak 5s ease-in-out infinite; }
.scn-tierneys-wound-miss .wound { position:absolute; bottom:48%; left:44%; width:3%; height:5%; background: radial-gradient(circle, #5e1a1d 0%, #3a0a0a 80%); border-radius: 50%; box-shadow: 0 0 10px 4px rgba(90,20,20,.5); animation: tnws-wound 7s ease-in-out infinite alternate; }
.scn-tierneys-wound-miss .enchanted-tongue { position:absolute; bottom:55%; left:43%; width:4%; height:3%; background: radial-gradient(circle, #f0d080 0%, #c0a060 60%); border-radius: 30% 50% 50% 30%; box-shadow: 0 0 18px 6px #c0a060, 0 0 36px 12px rgba(192,160,96,.3); animation: tnws-tongue 4s ease-in-out infinite; }
.scn-tierneys-wound-miss .paper-sheets { position:absolute; bottom:15%; left:35%; width:10%; height:8%; background: linear-gradient(135deg, #f0e8d0 0%, #e0d8b8 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: tnws-paper 9s ease-in-out infinite; }
.scn-tierneys-wound-miss .shadow-legislators { position:absolute; bottom:18%; left:55%; width:15%; height:25%; background: linear-gradient(180deg, rgba(30,20,10,.7) 0%, rgba(10,10,5,.3) 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; filter: blur(4px); animation: tnws-shadows 12s ease-in-out infinite; }
@keyframes tnws-speak { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(0); } 50% { transform: translateY(0) rotate(3deg); } 75% { transform: translateY(-2px) rotate(0); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes tnws-wound { 0% { box-shadow: 0 0 8px 2px rgba(90,20,20,.4); opacity:0.7; } 50% { box-shadow: 0 0 20px 8px rgba(90,20,20,.6); opacity:1; } 100% { box-shadow: 0 0 12px 4px rgba(90,20,20,.5); opacity:0.8; } }
@keyframes tnws-tongue { 0% { transform: scale(1) translateX(0); } 25% { transform: scale(1.2) translateX(3px); } 50% { transform: scale(1) translateX(0); } 75% { transform: scale(1.1) translateX(-2px); } 100% { transform: scale(1) translateX(0); } }
@keyframes tnws-paper { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-8px) rotate(5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes tnws-shadows { 0% { transform: translateX(0) scale(1); opacity:0.5; } 50% { transform: translateX(-5px) scale(1.05); opacity:0.8; } 100% { transform: translateX(3px) scale(0.95); opacity:0.6; } }

.scn-hexameters-to-william { background: linear-gradient(180deg, #f8ecd0 0%, #e4d4b0 40%, #c8b890 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%); }
.scn-hexameters-to-william .backdrop { position:absolute; inset:0; background: linear-gradient(180deg, #eee0c0 0%, #d8c8a0 100%); border-radius: 0 0 10% 10%; }
.scn-hexameters-to-william .desk { position:absolute; bottom:15%; left:15%; right:15%; height:18%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.3); }
.scn-hexameters-to-william .letter { position:absolute; bottom:25%; left:35%; width:25%; height:18%; background: linear-gradient(135deg, #f0e8d0 0%, #e0d8b8 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 4px 8px rgba(0,0,0,.15); animation: hxwm-letter 10s ease-in-out infinite; }
.scn-hexameters-to-william .hand-left { position:absolute; bottom:28%; left:32%; width:6%; height:14%; background: linear-gradient(180deg, #e8d0a0 0%, #c8b080 100%); border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%; transform-origin: 70% 100%; animation: hxwm-hand-l 4s ease-in-out infinite alternate; }
.scn-hexameters-to-william .hand-right { position:absolute; bottom:28%; right:32%; width:6%; height:14%; background: linear-gradient(180deg, #e8d0a0 0%, #c8b080 100%); border-radius: 30% 40% 20% 20% / 40% 50% 30% 30%; transform-origin: 30% 100%; animation: hxwm-hand-r 4s ease-in-out infinite alternate; }
.scn-hexameters-to-william .inkwell { position:absolute; bottom:22%; left:52%; width:4%; height:6%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: hxwm-ink 6s ease-in-out infinite; }
.scn-hexameters-to-william .quill { position:absolute; bottom:30%; left:48%; width:2%; height:15%; background: linear-gradient(180deg, #e0d0b0 0%, #b0a080 40%, #8a7a6a 100%); border-radius: 50% 50% 10% 10%; transform: rotate(-20deg); transform-origin: 50% 90%; animation: hxwm-quill 7s ease-in-out infinite; }
@keyframes hxwm-letter { 0% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(-3deg) translateY(-2px); } 50% { transform: rotate(-5deg) translateY(0); } 75% { transform: rotate(-7deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes hxwm-hand-l { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(8deg) scale(1.05); } 100% { transform: rotate(0) scale(1); } }
@keyframes hxwm-hand-r { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(-8deg) scale(1.05); } 100% { transform: rotate(0) scale(1); } }
@keyframes hxwm-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes hxwm-quill { 0% { transform: rotate(-20deg) translateY(0); } 25% { transform: rotate(-15deg) translateY(-2px); } 50% { transform: rotate(-20deg) translateY(0); } 75% { transform: rotate(-25deg) translateY(-1px); } 100% { transform: rotate(-20deg) translateY(0); } }

.scn-dorothea-distant-sorrow { background: linear-gradient(180deg, #1a2240 0%, #2a2c5a 40%, #1a1a3a 100%), radial-gradient(ellipse at 50% 50%, #2a3050 0%, transparent 70%); }
.scn-dorothea-distant-sorrow .backdrop-window { position:absolute; inset:10% 25% 25% 25%; background: linear-gradient(180deg, #2a3a5a 0%, #4a5a7a 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,.05), 0 0 0 8px #3a2a1a; animation: ddsr-window 15s ease-in-out infinite; }
.scn-dorothea-distant-sorrow .curtains { position:absolute; top:8%; left:22%; right:22%; bottom:23%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 0 12px rgba(0,0,0,.5); animation: ddsr-curtain 8s ease-in-out infinite alternate; }
.scn-dorothea-distant-sorrow .figure { position:absolute; bottom:22%; left:45%; width:8%; 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: ddsr-figure 6s ease-in-out infinite; }
.scn-dorothea-distant-sorrow .candle { position:absolute; bottom:28%; left:38%; width:2%; height:8%; background: linear-gradient(180deg, #e8c090 0%, #b09070 60%, #8a7060 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 8px 2px rgba(200,150,100,.5); animation: ddsr-candle 3s ease-in-out infinite alternate; }
.scn-dorothea-distant-sorrow .candle-glow { position:absolute; bottom:30%; left:36%; width:6%; height:6%; background: radial-gradient(circle, #f0d080 0%, #d0b060 40%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: ddsr-glow 4s ease-in-out infinite alternate; }
.scn-dorothea-distant-sorrow .rain-streaks { position:absolute; inset:0; background: repeating-linear-gradient(transparent, transparent 8px, rgba(180,200,230,.05) 8px, rgba(180,200,230,.05) 10px); background-size: 100% 100%; animation: ddsr-rain 2s linear infinite; }
.scn-dorothea-distant-sorrow .shadow { position:absolute; bottom:0; left:30%; right:30%; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); border-radius: 0 0 10% 10%; animation: ddsr-shadow 10s ease-in-out infinite; }
@keyframes ddsr-window { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes ddsr-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }
@keyframes ddsr-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(0); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(0); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ddsr-candle { 0% { transform: scaleY(1); opacity:0.8; } 50% { transform: scaleY(1.1); opacity:1; } 100% { transform: scaleY(0.95); opacity:0.7; } }
@keyframes ddsr-glow { 0% { transform: scale(1); opacity:0.6; box-shadow: 0 0 20px 6px rgba(200,150,100,.4); } 50% { transform: scale(1.2); opacity:1; box-shadow: 0 0 40px 12px rgba(200,150,100,.6); } 100% { transform: scale(0.9); opacity:0.5; box-shadow: 0 0 15px 4px rgba(200,150,100,.3); } }
@keyframes ddsr-rain { 0% { background-position: 0 0; } 100% { background-position: 0 20px; } }
@keyframes ddsr-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }

.scn-editorial-song {
  background: linear-gradient(180deg, #2a1f2e 0%, #3a2b3e 40%, #1a1220 100%), radial-gradient(ellipse at 60% 30%, #4a3a5a 0%, transparent 60%);
}
.scn-editorial-song .sky-night {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #1e1a2c 0%, #2a2a44 100%);
  animation: es1-night 20s ease-in-out infinite alternate;
}
.scn-editorial-song .wall {
  position: absolute; inset: 40% 0 0 0;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1220 100%);
}
.scn-editorial-song .window {
  position: absolute; top: 15%; left: 30%; width: 120px; height: 160px;
  background: linear-gradient(180deg, #2a3a5a 0%, #4a6a8a 50%, #6a8aaa 100%);
  border: 4px solid #3a2a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(200,220,240,0.3);
  animation: es1-window 10s ease-in-out infinite;
}
.scn-editorial-song .curtain-left {
  position: absolute; top: 10%; left: 25%; width: 60px; height: 200px;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%);
  border-radius: 0 20px 20px 0;
  transform-origin: left top;
  animation: es1-curtain 8s ease-in-out infinite alternate;
}
.scn-editorial-song .curtain-right {
  position: absolute; top: 10%; right: 25%; width: 60px; height: 200px;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%);
  border-radius: 20px 0 0 20px;
  transform-origin: right top;
  animation: es1-curtain 8s ease-in-out infinite alternate-reverse;
}
.scn-editorial-song .armchair {
  position: absolute; bottom: 20%; left: 25%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
}
.scn-editorial-song .figure {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: es1-figure 6s ease-in-out infinite;
}
.scn-editorial-song .lamp {
  position: absolute; bottom: 28%; left: 55%; width: 10px; height: 20px;
  background: radial-gradient(ellipse at top, #d0a050 0%, #b07030 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 10px #b07030, 0 0 80px 20px rgba(176,112,48,0.4);
  animation: es1-lamp 3s ease-in-out infinite alternate;
}
@keyframes es1-night {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes es1-window {
  0% { box-shadow: inset 0 0 20px rgba(200,220,240,0.2); }
  50% { box-shadow: inset 0 0 40px rgba(200,220,240,0.5); }
  100% { box-shadow: inset 0 0 25px rgba(200,220,240,0.3); }
}
@keyframes es1-curtain {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(5px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes es1-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-2px) rotate(0deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes es1-lamp {
  0% { box-shadow: 0 0 30px 5px #b07030, 0 0 60px 10px rgba(176,112,48,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 50px 15px #d0a050, 0 0 90px 20px rgba(208,160,80,0.5); opacity: 1; }
  100% { box-shadow: 0 0 35px 8px #b07030, 0 0 70px 15px rgba(176,112,48,0.35); opacity: 0.85; }
}

.scn-love-and-friendship {
  background: linear-gradient(180deg, #1e1828 0%, #2a2038 50%, #181220 100%), radial-gradient(ellipse at 50% 80%, #3a2a4a 0%, transparent 70%);
}
.scn-love-and-friendship .bg-interior {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2038 0%, #1a1228 100%);
}
.scn-love-and-friendship .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
}
.scn-love-and-friendship .table {
  position: absolute; bottom: 15%; left: 50%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-love-and-friendship .candle {
  position: absolute; bottom: 20%; left: 50%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e0c0a0 0%, #c09060 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 0 30px 8px #c09060, 0 0 60px 15px rgba(192,144,96,0.4);
  animation: lf2-candle 4s ease-in-out infinite alternate;
}
.scn-love-and-friendship .figure-left {
  position: absolute; bottom: 20%; left: 25%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lf2-figure 8s ease-in-out infinite;
}
.scn-love-and-friendship .figure-right {
  position: absolute; bottom: 20%; right: 25%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lf2-figure 8s ease-in-out infinite 4s;
}
.scn-love-and-friendship .glow {
  position: absolute; bottom: 20%; left: 40%; right: 40%; height: 40px;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,160,100,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: lf2-glow 5s ease-in-out infinite;
}
@keyframes lf2-candle {
  0% { opacity: 0.8; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleY(1.05); }
  100% { opacity: 0.85; transform: translateX(-50%) scaleY(0.95); }
}
@keyframes lf2-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lf2-glow {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.5); }
  100% { opacity: 0.4; transform: scaleY(1); }
}

.scn-editorial-love-friendship {
  background: linear-gradient(180deg, #1c1628 0%, #2a2238 50%, #141020 100%), radial-gradient(ellipse at 40% 60%, #3a2a4a 0%, transparent 70%);
}
.scn-editorial-love-friendship .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2238 0%, #1c1628 100%);
}
.scn-editorial-love-friendship .desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 60px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.4);
}
.scn-editorial-love-friendship .chair {
  position: absolute; bottom: 20%; left: 15%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform: translateX(20px);
  box-shadow: 0 8px 12px rgba(0,0,0,0.5);
}
.scn-editorial-love-friendship .figure {
  position: absolute; bottom: 25%; left: 22%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: el3-figure 7s ease-in-out infinite;
}
.scn-editorial-love-friendship .candle {
  position: absolute; bottom: 20%; left: 55%; width: 6px; height: 25px;
  background: linear-gradient(180deg, #d0a060 0%, #b08040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 25px 6px #b08040, 0 0 50px 12px rgba(176,128,64,0.4);
  animation: el3-candle 3s ease-in-out infinite alternate;
}
.scn-editorial-love-friendship .paper {
  position: absolute; bottom: 15%; left: 40%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #d0c0a0 0%, #b8a888 100%);
  border-radius: 4px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: el3-paper 9s ease-in-out infinite;
}
.scn-editorial-love-friendship .inkwell {
  position: absolute; bottom: 18%; left: 68%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: el3-inkwell 10s ease-in-out infinite;
}
@keyframes el3-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  30% { transform: translateY(-2px) rotate(0deg); }
  60% { transform: translateY(0) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes el3-candle {
  0% { box-shadow: 0 0 20px 4px #b08040, 0 0 40px 8px rgba(176,128,64,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 35px 10px #d0a060, 0 0 70px 18px rgba(208,160,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px #b08040, 0 0 50px 12px rgba(176,128,64,0.35); opacity: 0.85; }
}
@keyframes el3-paper {
  0%,100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
}
@keyframes el3-inkwell {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.04); }
}

.scn-not-at-home {
  background: linear-gradient(180deg, #0e0a14 0%, #1a1424 40%, #0a0610 100%), radial-gradient(ellipse at 30% 80%, #2a1a2a 0%, transparent 70%);
}
.scn-not-at-home .bg-corridor {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1424 0%, #0a0610 100%);
}
.scn-not-at-home .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1a121a 0%, #0a060a 100%);
}
.scn-not-at-home .door {
  position: absolute; bottom: 5%; left: 50%; width: 100px; height: 180px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%);
  border: 3px solid #3a2a3a;
  border-radius: 5% 5% 0 0;
  transform: translateX(-50%);
  box-shadow: 0 10px 20px rgba(0,0,0,0.6);
}
.scn-not-at-home .light-crack {
  position: absolute; bottom: 5%; left: 50%; width: 80px; height: 8px;
  background: linear-gradient(180deg, #d0b060 0%, #a08030 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  box-shadow: 0 0 40px 15px #a08030, 0 0 80px 30px rgba(160,128,48,0.3);
  animation: nah4-crack 3s ease-in-out infinite alternate;
}
.scn-not-at-home .shadow-maid {
  position: absolute; bottom: 10%; left: 30%; width: 50px; height: 160px;
  background: linear-gradient(180deg, #0a0610 0%, #141020 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  filter: blur(10px);
  opacity: 0.8;
  animation: nah4-shadow 5s ease-in-out infinite;
}
.scn-not-at-home .lamp-fg {
  position: absolute; bottom: 30%; right: 15%; width: 12px; height: 24px;
  background: radial-gradient(ellipse at top, #b08030 0%, #804020 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 50px 15px #804020, 0 0 100px 30px rgba(128,64,32,0.4);
  animation: nah4-lamp 4s ease-in-out infinite alternate;
}
@keyframes nah4-crack {
  0% { opacity: 0.6; transform: translateX(-50%) scaleX(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleX(1.15); }
  100% { opacity: 0.7; transform: translateX(-50%) scaleX(1); }
}
@keyframes nah4-shadow {
  0% { transform: translateX(0) scale(1); opacity: 0.6; }
  30% { transform: translateX(10px) scale(1.05); opacity: 0.9; }
  60% { transform: translateX(-5px) scale(0.95); opacity: 0.7; }
  100% { transform: translateX(0) scale(1); opacity: 0.6; }
}
@keyframes nah4-lamp {
  0% { box-shadow: 0 0 40px 10px #804020, 0 0 80px 20px rgba(128,64,32,0.3); opacity: 0.7; }
  50% { box-shadow: 0 0 60px 20px #b08030, 0 0 120px 40px rgba(176,128,48,0.5); opacity: 1; }
  100% { box-shadow: 0 0 45px 12px #804020, 0 0 90px 25px rgba(128,64,32,0.35); opacity: 0.75; }
}

/* force-note-saddleback */

.scn-force-note-saddleback {
  background:
    linear-gradient(180deg, #f5f0e8 0%, #e8dcc8 30%, #d4c4a8 100%),
    radial-gradient(ellipse at 50% 60%, #f0e4d0 0%, transparent 70%);
}
.scn-force-note-saddleback .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #d8c8b0, #c8b898);
  animation: fns-wall 20s ease-in-out infinite alternate;
}
.scn-force-note-saddleback .desk {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: fns-desk 12s ease-in-out infinite;
}
.scn-force-note-saddleback .book {
  position: absolute; bottom: 30%; left: 25%; width: 40%; height: 25%;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: rotate(-2deg); animation: fns-book 8s ease-in-out infinite alternate;
}
.scn-force-note-saddleback .page {
  position: absolute; bottom: 32%; left: 28%; width: 34%; height: 20%;
  background: linear-gradient(165deg, #fff5e0, #f0e0c0);
  border-radius: 2px; box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
  animation: fns-page 6s ease-in-out infinite;
}
.scn-force-note-saddleback .lamp {
  position: absolute; bottom: 38%; left: 70%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #c0a080 0%, #907050 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 8px #ffd080;
  animation: fns-lamp 3s ease-in-out infinite alternate;
}
.scn-force-note-saddleback .glow {
  position: absolute; bottom: 35%; left: 68%; width: 16%; height: 30%;
  background: radial-gradient(ellipse, #ffe090 0%, transparent 70%);
  filter: blur(12px); animation: fns-glow 4s ease-in-out infinite alternate;
}
.scn-force-note-saddleback .window {
  position: absolute; top: 5%; left: 55%; right: 10%; bottom: 50%;
  background: linear-gradient(180deg, #a0c8e0 0%, #80b0d0 60%, #6090c0 100%);
  border-radius: 6px; box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
  animation: fns-window 15s ease-in-out infinite alternate;
}
.scn-force-note-saddleback .waterfall {
  position: absolute; top: 10%; left: 62%; width: 20%; bottom: 52%;
  background: linear-gradient(180deg, #ffffff 0%, #d0e8f4 50%, #88b8d8 100%);
  border-radius: 0 0 40% 40%; filter: blur(2px);
  animation: fns-waterfall 8s ease-in-out infinite alternate;
}
.scn-force-note-saddleback .mist {
  position: absolute; top: 15%; left: 58%; right: 8%; bottom: 45%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,220,240,0.4) 0%, transparent 70%);
  filter: blur(8px); animation: fns-mist 20s linear infinite alternate;
}
@keyframes fns-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fns-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes fns-book { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(-3deg) translateY(1px); } }
@keyframes fns-page { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fns-lamp { 0% { box-shadow: 0 0 15px 5px #ffd080; } 50% { box-shadow: 0 0 25px 10px #ffe090; } 100% { box-shadow: 0 0 18px 6px #ffc070; } }
@keyframes fns-glow { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes fns-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes fns-waterfall { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1.02); } }
@keyframes fns-mist { 0% { opacity: 0.3; transform: translateX(-5px); } 50% { opacity: 0.5; transform: translateX(5px); } 100% { opacity: 0.35; transform: translateX(0); } }

/* mad-monk-voice-etna */

.scn-mad-monk-voice-etna {
  background:
    linear-gradient(180deg, #0f172a 0%, #1e293b 30%, #334155 60%, #475569 100%),
    radial-gradient(ellipse at 50% 30%, #1e3a5f 0%, transparent 70%);
}
.scn-mad-monk-voice-etna .moon {
  position: absolute; top: 8%; left: 70%; width: 8%; height: 14%;
  background: radial-gradient(circle, #e0e8f0 0%, #c0d0e0 60%, #90a0b8 100%);
  border-radius: 50%; box-shadow: 0 0 40px 12px rgba(200,220,240,0.3);
  animation: mmve-moon 12s ease-in-out infinite alternate;
}
.scn-mad-monk-voice-etna .mountain {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a1a2e 0%, #16213e 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: mmve-mountain 20s ease-in-out infinite alternate;
}
.scn-mad-monk-voice-etna .cave {
  position: absolute; bottom: 30%; left: 30%; width: 20%; height: 20%;
  background: #0a0a1a; border-radius: 50% 50% 30% 30%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 10px rgba(0,0,0,0.5);
  animation: mmve-cave 8s ease-in-out infinite alternate;
}
.scn-mad-monk-voice-etna .tree {
  position: absolute; bottom: 25%; left: 55%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  border-radius: 40% 40% 20% 20%;
  animation: mmve-tree 10s ease-in-out infinite;
}
.scn-mad-monk-voice-etna .monk {
  position: absolute; bottom: 25%; left: 40%; width: 6%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mmve-monk 4s ease-in-out infinite;
}
.scn-mad-monk-voice-etna .fog-1 {
  position: absolute; bottom: 15%; left: 10%; right: 40%; height: 20%;
  background: linear-gradient(180deg, rgba(200,210,230,0.15), transparent);
  filter: blur(8px); animation: mmve-fog1 30s linear infinite;
}
.scn-mad-monk-voice-etna .fog-2 {
  position: absolute; bottom: 20%; right: 10%; left: 50%; height: 15%;
  background: linear-gradient(180deg, rgba(180,200,220,0.1), transparent);
  filter: blur(6px); animation: mmve-fog2 25s linear infinite reverse;
}
.scn-mad-monk-voice-etna .star {
  position: absolute; top: 5%; left: 15%; width: 1%; height: 1.5%;
  background: #f0f4ff; border-radius: 50%; box-shadow: 0 0 6px rgba(255,255,255,0.8);
  animation: mmve-star 3s ease-in-out infinite alternate;
}
@keyframes mmve-moon { 0% { opacity: 0.8; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } 100% { opacity: 0.9; transform: translateY(2px); } }
@keyframes mmve-mountain { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1.02); } }
@keyframes mmve-cave { 0% { box-shadow: inset 0 0 15px rgba(0,0,0,0.7); } 50% { box-shadow: inset 0 0 25px rgba(0,0,0,0.9); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8); } }
@keyframes mmve-tree { 0% { transform: rotate(0deg); } 33% { transform: rotate(1deg); } 66% { transform: rotate(-1deg); } 100% { transform: rotate(0deg); } }
@keyframes mmve-monk { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(4px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes mmve-fog1 { 0% { transform: translateX(0); } 100% { transform: translateX(100px); } }
@keyframes mmve-fog2 { 0% { transform: translateX(0); } 100% { transform: translateX(-80px); } }
@keyframes mmve-star { 0% { opacity: 0.4; } 50% { opacity: 1; } 100% { opacity: 0.6; } }

/* rosa-grave-vision */

.scn-rosa-grave-vision {
  background:
    linear-gradient(180deg, #0a1128 0%, #1c2541 30%, #2a3a5c 60%, #3b4d70 100%),
    radial-gradient(ellipse at 50% 40%, #1c2d4a 0%, transparent 70%);
}
.scn-rosa-grave-vision .moon {
  position: absolute; top: 5%; left: 60%; width: 10%; height: 18%;
  background: radial-gradient(circle, #d0d8e8 0%, #a8b8d0 50%, #8898b0 100%);
  border-radius: 50%; box-shadow: 0 0 50px 15px rgba(160,180,210,0.3);
  animation: rgv-moon 15s ease-in-out infinite alternate;
}
.scn-rosa-grave-vision .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%);
  border-radius: 30% 70% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: rgv-ground 20s ease-in-out infinite alternate;
}
.scn-rosa-grave-vision .grave {
  position: absolute; bottom: 15%; left: 40%; width: 20%; height: 15%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a281a 100%);
  border-radius: 10% 10% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: rgv-grave 12s ease-in-out infinite;
}
.scn-rosa-grave-vision .stone {
  position: absolute; bottom: 22%; left: 44%; width: 12%; height: 12%;
  background: linear-gradient(135deg, #888a8c 0%, #6a6c6e 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: rgv-stone 8s ease-in-out infinite alternate;
}
.scn-rosa-grave-vision .figure {
  position: absolute; bottom: 20%; left: 25%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: rgv-figure 5s ease-in-out infinite;
}
.scn-rosa-grave-vision .misty {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(200,210,230,0.1), transparent);
  filter: blur(10px); animation: rgv-misty 25s linear infinite;
}
.scn-rosa-grave-vision .flower {
  position: absolute; bottom: 15%; left: 55%; width: 4%; height: 6%;
  background: radial-gradient(circle, #c8a0a0 0%, #a06060 100%);
  border-radius: 50% 50% 0 0; animation: rgv-flower 4s ease-in-out infinite alternate;
}
@keyframes rgv-moon { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes rgv-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes rgv-grave { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1.02); } }
@keyframes rgv-stone { 0% { box-shadow: 0 2px 8px rgba(0,0,0,0.4); } 50% { box-shadow: 0 4px 16px rgba(0,0,0,0.6); } 100% { box-shadow: 0 2px 8px rgba(0,0,0,0.4); } }
@keyframes rgv-figure { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(3px) rotate(-2deg); } 66% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rgv-misty { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.2; } }
@keyframes rgv-flower { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }

/* mad-monk-publication-notes */

.scn-mad-monk-publication-notes {
  background:
    linear-gradient(180deg, #fdfbf7 0%, #f2ecd9 30%, #e6d9c0 60%, #d4c4a8 100%),
    radial-gradient(ellipse at 50% 80%, #e8dcc8 0%, transparent 70%);
}
.scn-mad-monk-publication-notes .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #e0d0b8, #c8b898);
  animation: mmpn-wall 20s ease-in-out infinite alternate;
}
.scn-mad-monk-publication-notes .desk {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.25);
  animation: mmpn-desk 14s ease-in-out infinite;
}
.scn-mad-monk-publication-notes .paper {
  position: absolute; bottom: 30%; left: 20%; width: 30%; height: 30%;
  background: linear-gradient(165deg, #fff8ec, #f0e4cc);
  border-radius: 2px; box-shadow: inset 0 2px 4px rgba(0,0,0,0.08);
  transform: rotate(-3deg); animation: mmpn-paper 8s ease-in-out infinite alternate;
}
.scn-mad-monk-publication-notes .inkwell {
  position: absolute; bottom: 35%; left: 55%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: mmpn-inkwell 6s ease-in-out infinite;
}
.scn-mad-monk-publication-notes .quill {
  position: absolute; bottom: 42%; left: 55%; width: 3%; height: 25%;
  background: linear-gradient(180deg, #d0c8b0 0%, #b0a890 100%);
  border-radius: 0 0 50% 50%; transform: rotate(-15deg);
  animation: mmpn-quill 4s ease-in-out infinite alternate;
}
.scn-mad-monk-publication-notes .newspaper {
  position: absolute; bottom: 25%; left: 35%; width: 28%; height: 25%;
  background: linear-gradient(165deg, #f5eed8, #e8dcc4);
  border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  transform: rotate(2deg); animation: mmpn-news 10s ease-in-out infinite;
}
.scn-mad-monk-publication-notes .window {
  position: absolute; top: 5%; left: 60%; right: 8%; bottom: 55%;
  background: linear-gradient(180deg, #b0d0e8 0%, #90b8d8 60%, #70a0c8 100%);
  border-radius: 6px; box-shadow: inset 0 0 20px rgba(255,255,255,0.2);
  animation: mmpn-window 18s ease-in-out infinite alternate;
}
.scn-mad-monk-publication-notes .light {
  position: absolute; top: 5%; left: 60%; right: 8%; bottom: 55%;
  background: radial-gradient(ellipse at 70% 30%, rgba(255,250,230,0.3) 0%, transparent 60%);
  filter: blur(15px); animation: mmpn-light 8s ease-in-out infinite alternate;
}
@keyframes mmpn-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mmpn-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes mmpn-paper { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-4deg) translateY(1px); } }
@keyframes mmpn-inkwell { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes mmpn-quill { 0% { transform: rotate(-15deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(-20deg); } }
@keyframes mmpn-news { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(3deg) translateY(1px); } }
@keyframes mmpn-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes mmpn-light { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

.scn-ad-vilmum-variants {
  background: linear-gradient(180deg, #1f1410 0%, #2a1e14 40%, #1a1210 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}

.scn-ad-vilmum-variants .desk {
  position: absolute;
  bottom: 0; left: 5%; right: 5%; height: 45%;
  background: linear-gradient(180deg, #3d2b1f 0%, #2a1e14 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: av-desk 20s ease-in-out infinite;
}

.scn-ad-vilmum-variants .paper {
  position: absolute;
  bottom: 18%; left: 30%; width: 35%; height: 18%;
  background: linear-gradient(135deg, #d4c3a3 0%, #c0a88a 50%, #a88c70 100%);
  border-radius: 2%;
  transform: rotate(-2deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: av-paper 8s ease-in-out infinite alternate;
}

.scn-ad-vilmum-variants .inkwell {
  position: absolute;
  bottom: 25%; left: 70%; width: 8%; height: 10%;
  background: radial-gradient(circle at 50% 30%, #3a2a1a 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.5);
  animation: av-inkwell 12s ease-in-out infinite;
}

.scn-ad-vilmum-variants .candle {
  position: absolute;
  bottom: 32%; left: 55%; width: 3%; height: 20%;
  background: linear-gradient(180deg, #e6d5b8 0%, #c4a882 50%, #9a7b5a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: av-candle 4s ease-in-out infinite;
}

.scn-ad-vilmum-variants .flame {
  position: absolute;
  bottom: 50%; left: 55%; width: 4%; height: 6%;
  background: radial-gradient(circle, #ffd580 0%, #ffaa40 50%, #e08020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 24px 6px rgba(255,170,64,.5), 0 0 48px 12px rgba(224,128,32,.3);
  animation: av-flame 2s ease-in-out infinite alternate;
}

.scn-ad-vilmum-variants .shadow {
  position: absolute;
  bottom: 8%; left: 20%; width: 60%; height: 12%;
  background: radial-gradient(ellipse, rgba(0,0,0,0) 0%, rgba(0,0,0,.15) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: av-shadow 10s ease-in-out infinite;
}

@keyframes av-desk {
  0%, 100% { opacity: .85; }
  50% { opacity: 1; }
}
@keyframes av-paper {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(-3deg) translateY(1px); }
}
@keyframes av-inkwell {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.02) translateY(-1px); }
}
@keyframes av-candle {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
}
@keyframes av-flame {
  0% { transform: scale(1) rotate(-3deg); opacity: .8; box-shadow: 0 0 20px 4px rgba(255,170,64,.4); }
  50% { transform: scale(1.1) rotate(2deg); opacity: 1; box-shadow: 0 0 30px 8px rgba(255,170,64,.6); }
  100% { transform: scale(0.95) rotate(-1deg); opacity: .85; box-shadow: 0 0 22px 5px rgba(255,170,64,.45); }
}
@keyframes av-shadow {
  0%, 100% { transform: scaleX(1) translateX(0); opacity: .4; }
  50% { transform: scaleX(1.05) translateX(3px); opacity: .6; }
}

/* ----- exile-intro ----- */

.scn-exile-intro {
  background: linear-gradient(180deg, #1e1916 0%, #2a221c 30%, #1a1410 100%), radial-gradient(ellipse at 30% 50%, #3a2a1a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}

.scn-exile-intro .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1210 100%);
  animation: ex-wall 15s ease-in-out infinite alternate;
}

.scn-exile-intro .window {
  position: absolute;
  top: 8%; left: 25%; width: 50%; height: 55%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 4% 4% 8% 8%;
  border: 6px solid #3a2a1a;
  box-shadow: inset 0 0 40px rgba(0,0,0,.5);
  animation: ex-window 20s ease-in-out infinite;
}

.scn-exile-intro .glass {
  position: absolute;
  top: 6%; left: 23%; width: 54%; height: 57%;
  background: radial-gradient(ellipse at 40% 30%, rgba(140,170,220,.15) 0%, transparent 70%);
  filter: blur(6px);
  animation: ex-glass 8s ease-in-out infinite alternate;
}

.scn-exile-intro .curtain {
  position: absolute;
  top: 5%; left: 20%; width: 25%; height: 60%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 0 30% 30% 0 / 0 40% 40% 0;
  transform-origin: left center;
  animation: ex-curtain 12s ease-in-out infinite alternate;
}

.scn-exile-intro .figure {
  position: absolute;
  bottom: 18%; left: 40%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: ex-figure 6s ease-in-out infinite alternate;
}

.scn-exile-intro .moonlight {
  position: absolute;
  top: 5%; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(135deg, rgba(180,210,240,.1) 0%, transparent 60%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(3px);
  animation: ex-moonlight 10s ease-in-out infinite alternate;
}

@keyframes ex-wall {
  0%, 100% { opacity: .85; }
  50% { opacity: 1; }
}
@keyframes ex-window {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes ex-glass {
  0% { opacity: .2; }
  50% { opacity: .4; }
  100% { opacity: .25; }
}
@keyframes ex-curtain {
  0% { transform: rotate(0deg); width: 25%; }
  50% { transform: rotate(3deg); width: 23%; }
  100% { transform: rotate(-1deg); width: 24%; }
}
@keyframes ex-figure {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  50% { transform: translateX(2px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-1px) translateY(1px) rotate(-1deg); }
}
@keyframes ex-moonlight {
  0% { opacity: .15; transform: translateX(0); }
  50% { opacity: .3; transform: translateX(5px); }
  100% { opacity: .1; transform: translateX(-3px); }
}

/* ----- sonnet-translated-intro ----- */

.scn-sonnet-translated-intro {
  background: linear-gradient(180deg, #1f1410 0%, #2a1e14 40%, #1a1210 100%), radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}

.scn-sonnet-translated-intro .room {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1210 60%, #0a0806 100%);
  animation: st-room 18s ease-in-out infinite;
}

.scn-sonnet-translated-intro .lady {
  position: absolute;
  bottom: 15%; left: 30%; width: 30%; height: 65%;
  background: radial-gradient(ellipse at 50% 20%, #2a1e14 0%, #1a1210 70%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset -10px 0 20px rgba(0,0,0,.4);
  animation: st-lady 8s ease-in-out infinite alternate;
}

.scn-sonnet-translated-intro .arm {
  position: absolute;
  bottom: 40%; left: 55%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1210 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: 50% 100%;
  animation: st-arm 4s ease-in-out infinite alternate;
}

.scn-sonnet-translated-intro .flame {
  position: absolute;
  bottom: 40%; left: 58%; width: 5%; height: 8%;
  background: radial-gradient(circle, #ffd580 0%, #ffaa40 50%, #d07020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 8px rgba(255,170,64,.6), 0 0 60px 16px rgba(224,128,32,.3);
  animation: st-flame 1.5s ease-in-out infinite alternate;
}

.scn-sonnet-translated-intro .glow {
  position: absolute;
  bottom: 35%; left: 50%; width: 30%; height: 30%;
  background: radial-gradient(circle, rgba(255,170,64,.25) 0%, transparent 70%);
  filter: blur(10px);
  animation: st-glow 3s ease-in-out infinite alternate;
}

.scn-sonnet-translated-intro .tear {
  position: absolute;
  bottom: 32%; left: 35%; width: 2%; height: 3%;
  background: radial-gradient(circle at 40% 30%, #c8d8e8 0%, rgba(200,216,232,.2) 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: st-tear 6s ease-in-out infinite;
}

@keyframes st-room {
  0%, 100% { opacity: .9; }
  50% { opacity: 1; }
}
@keyframes st-lady {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(2px) rotate(-1deg); }
}
@keyframes st-arm {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(-2deg); }
  100% { transform: rotate(-8deg); }
}
@keyframes st-flame {
  0% { transform: scale(1) rotate(-5deg); opacity: .8; }
  50% { transform: scale(1.15) rotate(3deg); opacity: 1; }
  100% { transform: scale(0.9) rotate(-2deg); opacity: .85; }
}
@keyframes st-glow {
  0% { opacity: .3; transform: scale(1); }
  50% { opacity: .6; transform: scale(1.2); }
  100% { opacity: .4; transform: scale(0.9); }
}
@keyframes st-tear {
  0%, 100% { transform: translateY(0) scaleX(1); opacity: .4; }
  50% { transform: translateY(-4px) scaleX(0.8); opacity: .8; }
}

/* ----- phantom-intro ----- */

.scn-phantom-intro {
  background: linear-gradient(180deg, #0a0a1a 0%, #121026 40%, #080612 100%), radial-gradient(ellipse at 50% 60%, #1a1a34 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}

.scn-phantom-intro .room {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #0a0812 0%, #06040a 100%);
  animation: ph-room 20s ease-in-out infinite;
}

.scn-phantom-intro .figure {
  position: absolute;
  bottom: 10%; left: 25%; width: 50%; height: 70%;
  background: radial-gradient(ellipse at 50% 30%, rgba(180,200,230,0.4) 0%, rgba(100,130,180,0.1) 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px 12px rgba(140,170,220,.3), inset 0 0 30px rgba(200,220,255,.2);
  animation: ph-figure 10s ease-in-out infinite alternate;
}

.scn-phantom-intro .nimbus {
  position: absolute;
  top: 15%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(circle, rgba(200,220,255,.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ph-nimbus 12s linear infinite;
}

.scn-phantom-intro .shimmer {
  position: absolute;
  top: 20%; left: 35%; width: 30%; height: 30%;
  background: radial-gradient(circle, rgba(240,250,255,.15) 0%, transparent 60%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(6px);
  animation: ph-shimmer 15s ease-in-out infinite alternate;
}

.scn-phantom-intro .shadow {
  position: absolute;
  bottom: 5%; left: 20%; width: 60%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0) 0%, rgba(0,0,0,.3) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: ph-shadow 8s ease-in-out infinite alternate;
}

@keyframes ph-room {
  0%, 100% { opacity: .9; }
  50% { opacity: 1; }
}
@keyframes ph-figure {
  0% { transform: translateY(0) rotate(0); opacity: .5; }
  50% { transform: translateY(-8px) rotate(2deg); opacity: .8; }
  100% { transform: translateY(4px) rotate(-1deg); opacity: .6; }
}
@keyframes ph-nimbus {
  0% { transform: rotate(0deg) scale(1); opacity: .15; }
  50% { transform: rotate(180deg) scale(1.2); opacity: .3; }
  100% { transform: rotate(360deg) scale(1); opacity: .15; }
}
@keyframes ph-shimmer {
  0% { opacity: .1; transform: translateX(0) scaleY(1); }
  50% { opacity: .25; transform: translateX(8px) scaleY(1.1); }
  100% { opacity: .1; transform: translateX(-5px) scaleY(0.9); }
}
@keyframes ph-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: .3; }
  50% { transform: scaleX(1.1) translateX(5px); opacity: .5; }
  100% { transform: scaleX(0.9) translateX(-3px); opacity: .35; }
}

.scn-sage-warnings-ignored {
  background:
    linear-gradient(180deg, #4a8fc0 0%, #87ceeb 40%, #c8e6f0 70%, #c0d8a0 100%),
    radial-gradient(ellipse at 70% 30%, #fff4c0 0%, transparent 60%);
}
.scn-sage-warnings-ignored .sun {
  position: absolute; top: 8%; right: 18%; width: 48px; height: 48px;
  background: radial-gradient(circle, #fff8d0 0%, #f0d080 50%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(240,208,128,.5), 0 0 120px 40px rgba(240,208,128,.2);
  animation: swi-sun-pulse 6s ease-in-out infinite alternate;
}
.scn-sage-warnings-ignored .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, rgba(74,143,192,.3) 0%, transparent 100%);
  animation: swi-sky-drift 20s linear infinite;
}
.scn-sage-warnings-ignored .village-bg {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 20%;
  background:
    linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%),
    linear-gradient(90deg, #7a6a4a 0%, #9a8a6a 50%, #7a6a4a 100%);
  border-radius: 10% 10% 0 0; opacity: .6;
  animation: swi-village 15s ease-in-out infinite;
}
.scn-sage-warnings-ignored .ox-figure {
  position: absolute; bottom: 22%; left: 40%; width: 50px; height: 32px;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a2a1a 60%, #3a1a0a 100%);
  border-radius: 40% 20% 30% 50% / 50% 40% 40% 40%;
  transform-origin: bottom center;
  animation: swi-ox-run 0.8s steps(2) infinite;
}
.scn-sage-warnings-ignored .mob-fig-1 {
  position: absolute; bottom: 21%; left: 52%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: swi-mob-run 0.9s ease-in-out infinite;
  animation-delay: 0s;
}
.scn-sage-warnings-ignored .mob-fig-2 {
  position: absolute; bottom: 21%; left: 56%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: swi-mob-run 1s ease-in-out infinite;
  animation-delay: 0.15s;
}
.scn-sage-warnings-ignored .mob-fig-3 {
  position: absolute; bottom: 21%; left: 60%; width: 12px; height: 32px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: swi-mob-run 1.1s ease-in-out infinite;
  animation-delay: 0.3s;
}
.scn-sage-warnings-ignored .dust-cloud {
  position: absolute; bottom: 18%; left: 45%; width: 80px; height: 24px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,190,160,.6) 0%, transparent 70%);
  filter: blur(8px); border-radius: 50%;
  animation: swi-dust 2s ease-in-out infinite alternate;
}
.scn-sage-warnings-ignored .fence-post {
  position: absolute; bottom: 28%; left: 30%; width: 4px; height: 22px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: 16px 0 0 0 #5a4a3a, 32px 0 0 0 #5a4a3a;
  border-radius: 2px;
}
@keyframes swi-sun-pulse { 0% { transform: scale(1); opacity: .9 } 50% { transform: scale(1.06); opacity: 1 } 100% { transform: scale(.98); opacity: .85 } }
@keyframes swi-sky-drift { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes swi-village { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes swi-ox-run { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(-2deg) } 50% { transform: translateX(4px) rotate(0) } 75% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes swi-mob-run { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(3deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes swi-dust { 0% { transform: translateX(-4px) scale(1); opacity: .6 } 50% { transform: translateX(2px) scale(1.1); opacity: .8 } 100% { transform: translateX(-4px) scale(1); opacity: .5 } }

/* scene: muse-interrupts-tale — mournful, overcast */

.scn-muse-interrupts-tale {
  background:
    linear-gradient(180deg, #5a5a6a 0%, #7a7a8a 40%, #8a8a9a 70%, #6a7a7a 100%),
    radial-gradient(ellipse at 50% 0%, #9a9aac 0%, transparent 70%);
}
.scn-muse-interrupts-tale .overcast-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a6a7a 0%, transparent 100%);
  animation: mit-sky 25s ease-in-out infinite alternate;
}
.scn-muse-interrupts-tale .distant-hills {
  position: absolute; bottom: 32%; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%);
  border-radius: 50% 40% 0 0 / 80% 60% 0 0;
  opacity: .7;
  animation: mit-hills 20s ease-in-out infinite alternate;
}
.scn-muse-interrupts-tale .lone-tree {
  position: absolute; bottom: 28%; left: 30%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 0 8px rgba(40,50,30,.6);
  animation: mit-tree 8s ease-in-out infinite;
}
.scn-muse-interrupts-tale .figure-lewis {
  position: absolute; bottom: 24%; left: 48%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mit-lewis 5s ease-in-out infinite;
}
.scn-muse-interrupts-tale .muse-figure {
  position: absolute; bottom: 45%; left: 58%; width: 28px; height: 44px;
  background: linear-gradient(180deg, #8a8aaa 0%, #5a5a7a 60%, #3a3a5a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center; opacity: .7;
  animation: mit-muse 6s ease-in-out infinite alternate;
}
.scn-muse-interrupts-tale .rain-veil {
  position: absolute; inset: 0 0 30% 0;
  background:
    linear-gradient(180deg, rgba(180,180,200,.1) 0%, transparent 50%, rgba(180,180,200,.15) 100%),
    repeating-linear-gradient(0deg, transparent, transparent 6px, rgba(180,180,200,.08) 6px, rgba(180,180,200,.08) 8px);
  filter: blur(1px);
  animation: mit-rain 3s linear infinite;
}
.scn-muse-interrupts-tale .puddle {
  position: absolute; bottom: 18%; left: 42%; width: 40px; height: 8px;
  background: radial-gradient(ellipse, rgba(100,110,130,.4) 0%, transparent 70%);
  border-radius: 50%; filter: blur(3px);
  animation: mit-puddle 10s ease-in-out infinite alternate;
}
@keyframes mit-sky { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes mit-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mit-tree { 0% { transform: rotate(0) } 30% { transform: rotate(1deg) } 60% { transform: rotate(-1deg) } 100% { transform: rotate(0) } }
@keyframes mit-lewis { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(-2deg) } 60% { transform: translateY(0) rotate(0) } 80% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mit-muse { 0% { transform: translateY(0) rotate(0); opacity: .6 } 50% { transform: translateY(-5px) rotate(-3deg); opacity: .8 } 100% { transform: translateY(0) rotate(0); opacity: .5 } }
@keyframes mit-rain { 0% { background-position: 0 0 } 100% { background-position: 0 60px } }
@keyframes mit-puddle { 0% { transform: scaleX(1); opacity: .4 } 50% { transform: scaleX(1.2); opacity: .6 } 100% { transform: scaleX(.9); opacity: .3 } }

/* scene: rat-revenge-analogy — philosophical, dim-interior */

.scn-rat-revenge-analogy {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 30%, #3a3a2a 60%, #2a2a1a 100%),
    radial-gradient(ellipse at 50% 60%, #4a4a3a 0%, transparent 70%);
}
.scn-rat-revenge-analogy .barn-beam-l {
  position: absolute; top: 0; left: 0; width: 8px; height: 100%;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 40%, #3a2a1a 100%);
  box-shadow: 2px 0 4px rgba(0,0,0,.3);
}
.scn-rat-revenge-analogy .barn-beam-r {
  position: absolute; top: 0; right: 0; width: 8px; height: 100%;
  background: linear-gradient(270deg, #3a2a1a 0%, #5a4a3a 40%, #3a2a1a 100%);
  box-shadow: -2px 0 4px rgba(0,0,0,.3);
}
.scn-rat-revenge-analogy .dim-window {
  position: absolute; top: 20%; left: 36%; width: 60px; height: 50px;
  background: radial-gradient(ellipse at 50% 50%, #6a6a5a 0%, #3a3a2a 70%, transparent 100%);
  border: 4px solid #4a3a2a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 0 30px rgba(100,100,80,.1);
  animation: rra-window 8s ease-in-out infinite alternate;
}
.scn-rat-revenge-analogy .rat-silhouette {
  position: absolute; bottom: 22%; left: 38%; width: 24px; height: 18px;
  background: #1a1a1a;
  border-radius: 50% 60% 40% 40% / 60% 50% 50% 50%;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.5));
  transform-origin: center bottom;
  animation: rra-rat 4s ease-in-out infinite;
}
.scn-rat-revenge-analogy .ox-shadow {
  position: absolute; bottom: 12%; left: 55%; width: 50px; height: 30px;
  background: rgba(20,20,15,.5);
  border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%;
  filter: blur(4px);
  animation: rra-ox 12s ease-in-out infinite alternate;
}
.scn-rat-revenge-analogy .hay-bale {
  position: absolute; bottom: 8%; left: 20%; width: 40px; height: 24px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.3);
  animation: rra-hay 15s ease-in-out infinite;
}
.scn-rat-revenge-analogy .dust-mote {
  position: absolute; top: 30%; left: 50%; width: 3px; height: 3px;
  background: rgba(200,200,180,.4);
  border-radius: 50%;
  animation: rra-mote 6s linear infinite;
  box-shadow: 
    12px 18px 0 0 rgba(200,200,180,.3),
    -8px -10px 0 0 rgba(200,200,180,.2),
    20px -5px 0 0 rgba(200,200,180,.25),
    -15px 25px 0 0 rgba(200,200,180,.15);
}
@keyframes rra-window { 0% { opacity: .4 } 50% { opacity: .6 } 100% { opacity: .3 } }
@keyframes rra-rat { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(4px) rotate(-2deg) } 60% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rra-ox { 0% { transform: translateX(0) scaleX(1); opacity: .4 } 50% { transform: translateX(-3px) scaleX(1.05); opacity: .6 } 100% { transform: translateX(2px) scaleX(.95); opacity: .3 } }
@keyframes rra-hay { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes rra-mote { 0% { transform: translate(0, 0) rotate(0) } 25% { transform: translate(5px, -8px) rotate(90deg) } 50% { transform: translate(-3px, -15px) rotate(180deg) } 75% { transform: translate(4px, -5px) rotate(270deg) } 100% { transform: translate(0, 0) rotate(360deg) } }

/* scene: devil-astride-beast — darkly humorous, firelit */

.scn-devil-astride-beast {
  background:
    linear-gradient(180deg, #1a0a0a 0%, #2a0a0a 30%, #3a1a0a 60%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 100%, #4a2a0a 0%, transparent 70%);
}
.scn-devil-astride-beast .fire-pit {
  position: absolute; bottom: 18%; left: 25%; width: 50px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #8a3a0a 0%, #3a1a0a 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,80,20,.3);
  animation: dab-firepit 3s ease-in-out infinite alternate;
}
.scn-devil-astride-beast .flame-core {
  position: absolute; bottom: 20%; left: 28%; width: 14px; height: 24px;
  background: radial-gradient(ellipse at 50% 100%, #ffd060 0%, #c08020 40%, #8a3a0a 70%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  filter: blur(2px);
  animation: dab-flame 0.8s ease-in-out infinite alternate;
}
.scn-devil-astride-beast .devil-figure {
  position: absolute; bottom: 32%; left: 42%; width: 28px; height: 46px;
  background: linear-gradient(180deg, #4a1a1a 0%, #2a0a0a 50%, #1a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  transform-origin: bottom center;
  animation: dab-devil 3s ease-in-out infinite;
}
.scn-devil-astride-beast .ox-beast {
  position: absolute; bottom: 20%; left: 38%; width: 60px; height: 36px;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%);
  border-radius: 40% 25% 30% 50% / 50% 40% 40% 40%;
  transform-origin: bottom center;
  animation: dab-ox 2s ease-in-out infinite;
}
.scn-devil-astride-beast .parson-fleeing {
  position: absolute; bottom: 24%; right: 18%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: dab-parson 2.5s ease-in-out infinite;
}
.scn-devil-astride-beast .ground-shadow {
  position: absolute; bottom: 12%; left: 30%; width: 120px; height: 40px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 70%);
  filter: blur(12px);
  animation: dab-shadow 4s ease-in-out infinite alternate;
}
.scn-devil-astride-beast .smoke-wisp {
  position: absolute; bottom: 20%; left: 22%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 40%, rgba(60,40,20,.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: dab-smoke 6s ease-out infinite;
}
.scn-devil-astride-beast .ember {
  position: absolute; bottom: 30%; left: 27%; width: 3px; height: 3px;
  background: #ff8040; border-radius: 50%;
  box-shadow: 0 0 6px 2px #ff8040;
  animation: dab-ember 2s linear infinite;
}
@keyframes dab-firepit { 0% { transform: scaleX(1); opacity: .8 } 50% { transform: scaleX(1.08); opacity: 1 } 100% { transform: scaleX(.95); opacity: .7 } }
@keyframes dab-flame { 0% { transform: scaleY(1) rotate(0) } 50% { transform: scaleY(1.15) rotate(2deg) } 100% { transform: scaleY(.9) rotate(-2deg) } }
@keyframes dab-devil { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes dab-ox { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(2px) rotate(1deg) } 60% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dab-parson { 0% { transform: rotate(-15deg) translateX(0) } 50% { transform: rotate(-18deg) translateX(3px) } 100% { transform: rotate(-15deg) translateX(0) } }
@keyframes dab-shadow { 0% { transform: scaleX(1); opacity: .5 } 50% { transform: scaleX(1.15); opacity: .7 } 100% { transform: scaleX(.9); opacity: .4 } }
@keyframes dab-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 } }
@keyframes dab-ember { 0% { transform: translate(0, 0) scale(1); opacity: 1 } 25% { transform: translate(8px, -6px) scale(.8); opacity: .7 } 50% { transform: translate(16px, -12px) scale(.5); opacity: .4 } 75% { transform: translate(24px, -18px) scale(.3); opacity: .2 } 100% { transform: translate(32px, -24px) scale(0); opacity: 0 } }

/* deliquent-travellers-intro */

.scn-delinquent-travellers-intro {
  background: linear-gradient(180deg, #2b1f1a 0%, #1f1410 60%, #2b1f1a 100%),
              radial-gradient(ellipse at 60% 40%, #4a3028 0%, transparent 70%);
}
.scn-delinquent-travellers-intro .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #3a2a22 0%, #2a1a14 100%);
  animation: dt1-wall 12s ease-in-out infinite alternate;
}
.scn-delinquent-travellers-intro .fireplace {
  position: absolute; bottom: 18%; left: 50%; width: 120px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
  animation: dt1-fireplace 8s ease-in-out infinite alternate;
}
.scn-delinquent-travellers-intro .fire-glow {
  position: absolute; bottom: 22%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #d06a30 0%, #b05020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 16px rgba(208,106,48,0.4);
  animation: dt1-glow 3s ease-in-out infinite;
}
.scn-delinquent-travellers-intro .figure {
  position: absolute; bottom: 18%; left: 30%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dt1-figure 6s ease-in-out infinite;
}
.scn-delinquent-travellers-intro .globe {
  position: absolute; bottom: 20%; right: 28%; width: 40px; height: 40px;
  background: radial-gradient(circle at 30% 30%, #6a6a4a 0%, #3a3a2a 100%);
  border-radius: 50%;
  box-shadow: inset -4px -4px 8px rgba(0,0,0,0.5);
  animation: dt1-globe 20s linear infinite;
}
.scn-delinquent-travellers-intro .lantern {
  position: absolute; top: 16%; left: 20%; width: 8px; height: 12px;
  background: radial-gradient(ellipse, #d4a060 0%, #8a6020 100%);
  border-radius: 20%;
  box-shadow: 0 0 20px 6px rgba(212,160,96,0.5);
  animation: dt1-lantern 5s ease-in-out infinite alternate;
}
.scn-delinquent-travellers-intro .rug {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 14%;
  background: linear-gradient(90deg, #5a3a2a 0%, #4a2a1a 20%, #5a3a2a 40%, #4a2a1a 60%, #5a3a2a 80%, #4a2a1a 100%);
  border-radius: 20% 20% 0 0;
  animation: dt1-rug 15s ease-in-out infinite alternate;
}
.scn-delinquent-travellers-intro .drapes {
  position: absolute; top: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1a14 100%);
  border-bottom: 4px solid #1a0a08;
  animation: dt1-drapes 10s ease-in-out infinite alternate;
}
@keyframes dt1-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes dt1-fireplace { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(0.98) } }
@keyframes dt1-glow { 0% { opacity:0.7; transform: translateX(-50%) scale(0.95) } 50% { opacity:1; transform: translateX(-50%) scale(1.05) } 100% { opacity:0.8; transform: translateX(-50%) scale(0.98) } }
@keyframes dt1-figure { 0% { transform: translateX(0) rotate(-1deg) } 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 dt1-globe { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes dt1-lantern { 0% { transform: translateY(0) rotate(-2deg); box-shadow: 0 0 12px 4px rgba(212,160,96,0.4) } 50% { transform: translateY(-2px) rotate(2deg); box-shadow: 0 0 24px 8px rgba(212,160,96,0.6) } 100% { transform: translateY(0) rotate(-2deg); box-shadow: 0 0 16px 5px rgba(212,160,96,0.4) } }
@keyframes dt1-rug { 0% { transform: scaleX(0.98) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(0.98) } }
@keyframes dt1-drapes { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

/* deliquent-travellers-continued */

.scn-delinquent-travellers-continued {
  background: linear-gradient(180deg, #1f1a1a 0%, #2a2222 40%, #1a1414 100%),
              radial-gradient(ellipse at 40% 60%, #3a2a2a 0%, transparent 70%);
}
.scn-delinquent-travellers-continued .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1e1e 0%, #1a1212 100%);
  border-radius: 8% 8% 0 0;
  animation: dt2-floor 20s ease-in-out infinite alternate;
}
.scn-delinquent-travellers-continued .desk {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: dt2-desk 10s ease-in-out infinite;
}
.scn-delinquent-travellers-continued .telescope {
  position: absolute; bottom: 30%; left: 42%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 20%;
  transform-origin: bottom center;
  animation: dt2-telescope 7s ease-in-out infinite;
}
.scn-delinquent-travellers-continued .map {
  position: absolute; bottom: 24%; left: 52%; width: 50px; height: 30px;
  background: linear-gradient(135deg, #5a4a2a 0%, #3a2a1a 50%, #5a4a2a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: dt2-map 15s ease-in-out infinite;
}
.scn-delinquent-travellers-continued .king {
  position: absolute; bottom: 22%; left: 30%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dt2-king 5s ease-in-out infinite;
}
.scn-delinquent-travellers-continued .crown {
  position: absolute; bottom: 48%; left: 30.5%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #c8a050 0%, #8a6020 100%);
  clip-path: polygon(0% 100%, 20% 0%, 50% 40%, 80% 0%, 100% 100%);
  animation: dt2-crown 2s ease-in-out infinite alternate;
}
.scn-delinquent-travellers-continued .lamp {
  position: absolute; top: 20%; left: 60%; width: 10px; height: 16px;
  background: radial-gradient(ellipse, #d4a060 0%, #8a6020 100%);
  border-radius: 20%;
  box-shadow: 0 0 20px 8px rgba(212,160,96,0.4);
  animation: dt2-lamp 4s ease-in-out infinite alternate;
}
.scn-delinquent-travellers-continued .papers {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 8px;
  background: linear-gradient(90deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  animation: dt2-papers 12s ease-in-out infinite;
}
@keyframes dt2-floor { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes dt2-desk { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes dt2-telescope { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes dt2-map { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes dt2-king { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(0deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(0deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes dt2-crown { 0% { transform: translateY(0) rotate(-5deg) } 100% { transform: translateY(-3px) rotate(5deg) } }
@keyframes dt2-lamp { 0% { box-shadow: 0 0 16px 6px rgba(212,160,96,0.4); opacity:0.8 } 50% { box-shadow: 0 0 30px 10px rgba(212,160,96,0.6); opacity:1 } 100% { box-shadow: 0 0 20px 8px rgba(212,160,96,0.4); opacity:0.85 } }
@keyframes dt2-papers { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(8deg) translateX(2px) } 100% { transform: rotate(10deg) translateX(0) } }

/* deliquent-travellers-nature */

.scn-delinquent-travellers-nature {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-delinquent-travellers-nature .barn-wall {
  position: absolute; inset: 0 40% 0 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 8% 8% 0;
  animation: dt3-barn-wall 16s ease-in-out infinite alternate;
}
.scn-delinquent-travellers-nature .hay {
  position: absolute; bottom: 20%; left: 5%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #c8a040 0%, #8a6a20 100%);
  border-radius: 20% 20% 10% 10%;
  animation: dt3-hay 10s ease-in-out infinite;
}
.scn-delinquent-travellers-nature .donkey {
  position: absolute; bottom: 22%; left: 20%; width: 30px; height: 36px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dt3-donkey 4s ease-in-out infinite;
}
.scn-delinquent-travellers-nature .tether {
  position: absolute; bottom: 35%; left: 15%; width: 2px; height: 40px;
  background: #5a4a3a;
  border-radius: 20%;
  transform: rotate(10deg);
  animation: dt3-tether 8s ease-in-out infinite;
}
.scn-delinquent-travellers-nature .stream {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 12%;
  background: linear-gradient(90deg, #1a3a3a 0%, #2a4a4a 20%, #1a3a3a 40%, #2a4a4a 60%, #1a3a3a 80%, #2a4a4a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: dt3-stream 6s ease-in-out infinite alternate;
}
.scn-delinquent-travellers-nature .gate {
  position: absolute; bottom: 25%; right: 15%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: dt3-gate 12s ease-in-out infinite;
}
.scn-delinquent-travellers-nature .lantern-hook {
  position: absolute; top: 10%; left: 60%; width: 6px; height: 12px;
  background: radial-gradient(ellipse, #d4a060 0%, #8a6020 100%);
  border-radius: 20%;
  box-shadow: 0 0 16px 6px rgba(212,160,96,0.4);
  animation: dt3-lantern-hook 5s ease-in-out infinite alternate;
}
@keyframes dt3-barn-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes dt3-hay { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dt3-donkey { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(1deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes dt3-tether { 0% { transform: rotate(10deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(10deg) } }
@keyframes dt3-stream { 0% { background-position: 0% 0% } 100% { background-position: 200% 0% } }
@keyframes dt3-gate { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes dt3-lantern-hook { 0% { transform: translateY(0) rotate(-3deg); box-shadow: 0 0 12px 4px rgba(212,160,96,0.3) } 50% { transform: translateY(-2px) rotate(3deg); box-shadow: 0 0 24px 8px rgba(212,160,96,0.5) } 100% { transform: translateY(0) rotate(-3deg); box-shadow: 0 0 14px 5px rgba(212,160,96,0.3) } }

/* deliquent-travellers-fellow */

.scn-delinquent-travellers-fellow {
  background: linear-gradient(180deg, #1f1410 0%, #2a1a14 40%, #1a0a08 100%),
              radial-gradient(ellipse at 30% 50%, #3a2018 0%, transparent 70%);
}
.scn-delinquent-travellers-fellow .cabin-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1a14 0%, #1a0a08 100%);
  animation: dt4-cabin-wall 14s ease-in-out infinite alternate;
}
.scn-delinquent-travellers-fellow .table {
  position: absolute; bottom: 18%; left: 50%; width: 120px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: dt4-table 10s ease-in-out infinite;
}
.scn-delinquent-travellers-fellow .convict {
  position: absolute; bottom: 20%; left: 24%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: dt4-convict 6s ease-in-out infinite;
}
.scn-delinquent-travellers-fellow .knight {
  position: absolute; bottom: 20%; left: 42%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.5);
  animation: dt4-knight 8s ease-in-out infinite;
}
.scn-delinquent-travellers-fellow .demirep {
  position: absolute; bottom: 20%; right: 28%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #3a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dt4-demirep 7s ease-in-out infinite;
}
.scn-delinquent-travellers-fellow .candle {
  position: absolute; bottom: 30%; left: 50%; width: 4px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a2a 0%, #4a3a1a 100%);
  border-radius: 10%;
  animation: dt4-candle 3s ease-in-out infinite alternate;
}
.scn-delinquent-travellers-fellow .bottle {
  position: absolute; bottom: 19%; right: 42%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 20%;
  transform: rotate(15deg);
  animation: dt4-bottle 12s ease-in-out infinite;
}
.scn-delinquent-travellers-fellow .shadows {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: dt4-shadows 18s ease-in-out infinite alternate;
}
@keyframes dt4-cabin-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes dt4-table { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(0.98) } }
@keyframes dt4-convict { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(0deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(0deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes dt4-knight { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes dt4-demirep { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(4px) rotate(0deg) } 50% { transform: translateX(8px) rotate(3deg) } 75% { transform: translateX(4px) rotate(0deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes dt4-candle { 0% { opacity:0.7; transform: translateX(-50%) scaleY(0.95) } 50% { opacity:1; transform: translateX(-50%) scaleY(1.05) } 100% { opacity:0.8; transform: translateX(-50%) scaleY(0.98) } }
@keyframes dt4-bottle { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-2px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes dt4-shadows { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }

.scn-to-asra-variants {
  background:
    linear-gradient(180deg, #3b2b1f 0%, #2a1e14 40%, #1f1510 100%),
    radial-gradient(ellipse at 30% 70%, #4a3424 0%, transparent 70%);
}

.scn-to-asra-variants .bg-wall {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #4a3b2e 0%, #2a1e14 100%);
  animation: ta-bg-pulse 24s ease-in-out infinite;
}

.scn-to-asra-variants .window-arch {
  position: absolute; top: 10%; left: 25%; width: 40%; height: 45%;
  background:
    radial-gradient(ellipse 70% 60% at 50% 40%, #5a4a3a 0%, transparent 80%),
    linear-gradient(180deg, #6b5a4a 0%, #4a3b2e 100%);
  border-radius: 60% 60% 10% 10%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
  animation: ta-window 18s ease-in-out infinite alternate;
}

.scn-to-asra-variants .desk {
  position: absolute; bottom: 16%; left: 30%; width: 50%; height: 18%;
  background: linear-gradient(180deg, #5c4a3a 0%, #3b2a1a 100%);
  border-radius: 4% 4% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
}

.scn-to-asra-variants .manuscript {
  position: absolute; bottom: 20%; left: 34%; width: 28%; height: 14%;
  background: linear-gradient(135deg, #d4c8b0 0%, #b8a88a 70%, #a09070 100%);
  border-radius: 2% 8% 12% 2%;
  transform: rotate(-2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: ta-manuscript 12s ease-in-out infinite;
}

.scn-to-asra-variants .candle-body {
  position: absolute; bottom: 22%; left: 58%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 60%, #a89878 100%);
  border-radius: 20% 20% 10% 10%;
  transform: skewX(-2deg);
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
}

.scn-to-asra-variants .candle-flame {
  position: absolute; bottom: 42%; left: 58%; width: 6%; height: 8%;
  background: radial-gradient(circle, #ffc080 0%, #ffa040 50%, #ff8020 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 6px #ffa040, 0 0 40px 12px rgba(255,160,64,0.4);
  animation: ta-flame 1.2s ease-in-out infinite;
}

.scn-to-asra-variants .figure-silhouette {
  position: absolute; bottom: 14%; left: 42%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #1a1410 0%, #0c0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ta-figure 8s ease-in-out infinite alternate;
}

.scn-to-asra-variants .dust-mote-a,
.scn-to-asra-variants .dust-mote-b {
  position: absolute; width: 2%; height: 2%;
  background: radial-gradient(circle, rgba(255,220,180,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
}

.scn-to-asra-variants .dust-mote-a {
  top: 20%; left: 30%;
  animation: ta-drift-a 45s linear infinite;
}

.scn-to-asra-variants .dust-mote-b {
  top: 35%; left: 60%;
  animation: ta-drift-b 60s linear infinite reverse;
}

@keyframes ta-bg-pulse {
  0%,100% { opacity: 0.9; }
  50% { opacity: 1; }
}
@keyframes ta-window {
  0% { filter: brightness(0.7); }
  50% { filter: brightness(1); }
  100% { filter: brightness(0.75); }
}
@keyframes ta-manuscript {
  0%,100% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-2px); }
}
@keyframes ta-flame {
  0%,100% { transform: scaleY(1) scaleX(1); }
  25% { transform: scaleY(1.1) scaleX(0.9); }
  50% { transform: scaleY(0.9) scaleX(1.1) translateY(-1px); }
  75% { transform: scaleY(1.05) scaleX(0.95); }
}
@keyframes ta-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes ta-drift-a {
  0% { transform: translate(0, 0); opacity: 0; }
  10% { opacity: 0.8; }
  90% { opacity: 0.6; }
  100% { transform: translate(80vw, -20vh); opacity: 0; }
}
@keyframes ta-drift-b {
  0% { transform: translate(0, 0); opacity: 0; }
  15% { opacity: 0.5; }
  85% { opacity: 0.4; }
  100% { transform: translate(-60vw, 10vh); opacity: 0; }
}

/* love-sanctuary-intro */

.scn-love-sanctuary-intro {
  background:
    linear-gradient(180deg, #1e1a2e 0%, #2a2438 40%, #362e4a 100%),
    radial-gradient(ellipse at 50% 70%, #4a3e5e 0%, transparent 70%);
}

.scn-love-sanctuary-intro .bg-vault {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #2a2438 0%, #1a1628 100%);
  animation: ls-vault-pulse 30s ease-in-out infinite;
}

.scn-love-sanctuary-intro .pillar-left,
.scn-love-sanctuary-intro .pillar-right {
  position: absolute; bottom: 0; width: 8%; height: 85%;
  background: linear-gradient(90deg, #3a3250 0%, #4a4060 40%, #3a3250 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.5);
}

.scn-love-sanctuary-intro .pillar-left { left: 10%; }
.scn-love-sanctuary-intro .pillar-right { right: 10%; }

.scn-love-sanctuary-intro .altar-stone {
  position: absolute; bottom: 8%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #5a5068 0%, #4a4058 100%);
  border-radius: 10% 10% 40% 40%;
  box-shadow: 0 6px 18px rgba(0,0,0,0.6);
}

.scn-love-sanctuary-intro .heart-glow {
  position: absolute; bottom: 28%; left: 50%; width: 16%; height: 18%;
  transform: translateX(-50%) rotate(45deg);
  background: radial-gradient(circle at 50% 50%, #ffa0a0 0%, #ff6060 40%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 20px rgba(255,96,96,0.3), 0 0 80px 40px rgba(255,96,96,0.1);
  animation: ls-heart-pulse 4s ease-in-out infinite;
}

.scn-love-sanctuary-intro .kneeling-figure {
  position: absolute; bottom: 12%; left: 46%; width: 14%; height: 22%;
  background: linear-gradient(180deg, #2a2438 0%, #1a1628 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ls-kneel 6s ease-in-out infinite;
}

.scn-love-sanctuary-intro .candle-left,
.scn-love-sanctuary-intro .candle-right {
  position: absolute; bottom: 14%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #e0d0b8 0%, #c0b098 100%);
  border-radius: 20% 20% 10% 10%;
}

.scn-love-sanctuary-intro .candle-left { left: 34%; animation: ls-candle-left 2s ease-in-out infinite; }
.scn-love-sanctuary-intro .candle-right { right: 34%; animation: ls-candle-right 2.4s ease-in-out infinite; }

.scn-love-sanctuary-intro .candle-left::after,
.scn-love-sanctuary-intro .candle-right::after {
  content: '';
  position: absolute; top: -20%; left: 50%; transform: translateX(-50%);
  width: 60%; height: 20%;
  background: radial-gradient(circle, #ffc080 0%, #ffa040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #ffa040;
}

@keyframes ls-vault-pulse {
  0%,100% { opacity: 0.85; }
  50% { opacity: 1; }
}
@keyframes ls-heart-pulse {
  0%,100% { transform: translateX(-50%) rotate(45deg) scale(1); }
  25% { transform: translateX(-50%) rotate(45deg) scale(1.05); }
  50% { transform: translateX(-50%) rotate(45deg) scale(1); }
  75% { transform: translateX(-50%) rotate(45deg) scale(1.03); }
}
@keyframes ls-kneel {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes ls-candle-left {
  0%,100% { filter: brightness(1); }
  50% { filter: brightness(1.15); }
}
@keyframes ls-candle-right {
  0%,100% { filter: brightness(1); }
  50% { filter: brightness(1.2); }
}

/* dejection-intro */

.scn-dejection-intro {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 50%, #1a1a32 100%),
    radial-gradient(ellipse at 50% 30%, #2a2a4e 0%, transparent 70%);
}

.scn-dejection-intro .bg-room {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #0e121e 0%, #1a1a2a 100%);
  animation: dj1-room 20s ease-in-out infinite;
}

.scn-dejection-intro .window-frame {
  position: absolute; top: 10%; left: 20%; width: 40%; height: 60%;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2a 100%);
  border: 6px solid #4a3a2a;
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
  animation: dj1-window 14s ease-in-out infinite alternate;
}

.scn-dejection-intro .moon-new {
  position: absolute; top: 18%; left: 40%; width: 12%; height: 14%;
  background: radial-gradient(circle, #e0e8f0 0%, #c0c8d0 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(200,210,220,0.4);
  animation: dj1-moon-new 6s ease-in-out infinite;
}

.scn-dejection-intro .moon-old {
  position: absolute; top: 22%; left: 42%; width: 8%; height: 10%;
  background: radial-gradient(circle, #b8c0c8 0%, #889098 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 4px rgba(150,160,170,0.3);
  animation: dj1-moon-old 8s ease-in-out infinite alternate;
}

.scn-dejection-intro .storm-cloud {
  position: absolute; top: 5%; left: 10%; width: 70%; height: 30%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50%;
  filter: blur(12px);
  animation: dj1-cloud 22s linear infinite;
}

.scn-dejection-intro .lightning-flash {
  position: absolute; top: 8%; left: 35%; width: 4%; height: 30%;
  background: linear-gradient(180deg, rgba(255,255,240,0.9) 0%, transparent 100%);
  border-radius: 2px;
  filter: blur(3px);
  opacity: 0;
  animation: dj1-lightning 8s ease-in-out infinite;
}

.scn-dejection-intro .figure-by-window {
  position: absolute; bottom: 12%; left: 38%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #0a0a12 0%, #05050a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dj1-figure 10s ease-in-out infinite alternate;
}

@keyframes dj1-room {
  0%,100% { opacity: 0.9; }
  50% { opacity: 1; }
}
@keyframes dj1-window {
  0% { filter: brightness(0.6); }
  50% { filter: brightness(0.8); }
  100% { filter: brightness(0.5); }
}
@keyframes dj1-moon-new {
  0%,100% { transform: translate(0, 0) scale(1); }
  25% { transform: translate(2px, -2px) scale(1.02); }
  50% { transform: translate(-1px, 1px) scale(0.98); }
  75% { transform: translate(1px, -1px) scale(1.01); }
}
@keyframes dj1-moon-old {
  0% { transform: translate(0, 0) scale(1); opacity: 0.7; }
  50% { transform: translate(4px, 3px) scale(1.05); opacity: 0.9; }
  100% { transform: translate(0, 0) scale(1); opacity: 0.7; }
}
@keyframes dj1-cloud {
  0% { transform: translateX(0); }
  50% { transform: translateX(40px); }
  100% { transform: translateX(-30px); }
}
@keyframes dj1-lightning {
  0%,95%,100% { opacity: 0; }
  5% { opacity: 0.8; }
  10% { opacity: 0; }
  15% { opacity: 0.6; }
  20% { opacity: 0; }
}
@keyframes dj1-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(6px) rotate(2deg); }
  100% { transform: translateX(-4px) rotate(-1deg); }
}

/* dejection-body */

.scn-dejection-body {
  background:
    linear-gradient(180deg, #0c0c1e 0%, #141428 40%, #1c1c36 100%),
    radial-gradient(ellipse at 50% 20%, #2a2a4e 0%, transparent 70%);
}

.scn-dejection-body .bg-storm-sky {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #1a1a32 0%, #0c0c1e 100%);
  animation: dj2-sky 20s ease-in-out infinite;
}

.scn-dejection-body .moon-new {
  position: absolute; top: 8%; left: 60%; width: 12%; height: 14%;
  background: radial-gradient(circle, #e8ecf4 0%, #c8d0dc 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px rgba(200,210,220,0.5), 0 0 80px 30px rgba(200,210,220,0.2);
  animation: dj2-moon-new 6s ease-in-out infinite;
}

.scn-dejection-body .moon-old-circle {
  position: absolute; top: 6%; left: 58%; width: 16%; height: 18%;
  background: radial-gradient(circle, rgba(180,190,200,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: dj2-moon-old 9s ease-in-out infinite alternate;
}

.scn-dejection-body .storm-cloud-close {
  position: absolute; top: -5%; left: 0; width: 100%; height: 40%;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 50%, transparent 100%);
  filter: blur(16px);
  animation: dj2-cloud 28s linear infinite;
}

.scn-dejection-body .rain-shaft-1,
.scn-dejection-body .rain-shaft-2 {
  position: absolute; top: 0; width: 2%; height: 100%;
  background: linear-gradient(180deg, rgba(180,190,200,0.4) 0%, rgba(180,190,200,0.1) 80%, transparent 100%);
  filter: blur(1px);
}

.scn-dejection-body .rain-shaft-1 {
  left: 20%;
  animation: dj2-rain-1 0.6s linear infinite;
}

.scn-dejection-body .rain-shaft-2 {
  left: 60%;
  animation: dj2-rain-2 0.5s linear infinite 0.3s;
}

.scn-dejection-body .driving-wind {
  position: absolute; top: 20%; left: -10%; width: 120%; height: 12%;
  background: linear-gradient(90deg, transparent 0%, rgba(200,210,220,0.15) 30%, transparent 70%);
  filter: blur(10px);
  animation: dj2-wind 3s linear infinite;
}

.scn-dejection-body .bent-tree {
  position: absolute; bottom: 8%; right: 10%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 10% 40% 10%;
  transform: skewX(-10deg);
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: dj2-tree 8s ease-in-out infinite alternate;
}

@keyframes dj2-sky {
  0%,100% { opacity: 0.8; }
  50% { opacity: 1; }
}
@keyframes dj2-moon-new {
  0%,100% { transform: translate(0, 0) scale(1); }
  25% { transform: translate(3px, -2px) scale(1.02); }
  50% { transform: translate(-2px, 1px) scale(0.98); }
  75% { transform: translate(1px, -1px) scale(1.01); }
}
@keyframes dj2-moon-old {
  0% { opacity: 0.3; filter: blur(12px); }
  50% { opacity: 0.6; filter: blur(6px); }
  100% { opacity: 0.3; filter: blur(12px); }
}
@keyframes dj2-cloud {
  0% { transform: translateX(0); }
  50% { transform: translateX(60px); }
  100% { transform: translateX(-40px); }
}
@keyframes dj2-rain-1 {
  0% { transform: translateY(-10%) rotate(12deg); opacity: 0; }
  20% { opacity: 0.8; }
  100% { transform: translateY(110%) rotate(12deg); opacity: 0; }
}
@keyframes dj2-rain-2 {
  0% { transform: translateY(-10%) rotate(15deg); opacity: 0; }
  20% { opacity: 0.6; }
  100% { transform: translateY(110%) rotate(15deg); opacity: 0; }
}
@keyframes dj2-wind {
  0% { transform: translateX(-30px); opacity: 0.3; }
  50% { transform: translateX(30px); opacity: 0.8; }
  100% { transform: translateX(-30px); opacity: 0.3; }
}
@keyframes dj2-tree {
  0% { transform: skewX(-10deg) translateY(0); }
  50% { transform: skewX(-15deg) translateY(-4px); }
  100% { transform: skewX(-8deg) translateY(0); }
}

.scn-manuscript-notes-alice {
  background:
    linear-gradient(180deg, #2a1f1a 0%, #1a1210 50%, #0d0806 100%),
    radial-gradient(ellipse at 30% 50%, #3a2a20 0%, transparent 70%);
}
.scn-manuscript-notes-alice .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #3a2a1e 0%, #1a1210 100%);
  animation: mn-wall 12s ease-in-out infinite alternate;
}
.scn-manuscript-notes-alice .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #4a382a 0%, #2a1e14 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.6);
  animation: mn-desk 8s ease-in-out infinite;
}
.scn-manuscript-notes-alice .manuscript {
  position: absolute; bottom: 22%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(135deg, #e8dcc8 0%, #c8b89a 50%, #a8987e 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: rotate(-2deg);
  animation: mn-paper 5s ease-in-out infinite alternate;
}
.scn-manuscript-notes-alice .quill {
  position: absolute; bottom: 28%; left: 42%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #e8d8c8 0%, #c0a890 50%, #8a705a 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: mn-quill 3s ease-in-out infinite;
}
.scn-manuscript-notes-alice .inkwell {
  position: absolute; bottom: 18%; left: 35%; width: 20px; height: 22px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: mn-ink 6s ease-in-out infinite;
}
.scn-manuscript-notes-alice .candle {
  position: absolute; bottom: 30%; right: 30%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 50%, #8a6840 100%);
  border-radius: 10% 10% 5% 5%;
  animation: mn-candle 4s ease-in-out infinite;
}
.scn-manuscript-notes-alice .candle-glow {
  position: absolute; bottom: 32%; right: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(240,200,120,0.6) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate( -50%, -50%);
  animation: mn-glow 3s ease-in-out infinite alternate;
}
@keyframes mn-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes mn-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes mn-paper { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-1px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes mn-quill { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(6deg) } }
@keyframes mn-ink { 0% { opacity:0.9 } 50% { opacity:0.95 } 100% { opacity:0.85 } }
@keyframes mn-candle { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } }
@keyframes mn-glow { 0% { transform: translate(-50%,-50%) scale(0.8); opacity:0.7 } 50% { transform: translate(-50%,-50%) scale(1.2); opacity:1 } 100% { transform: translate(-50%,-50%) scale(0.9); opacity:0.8 } }

.scn-variants-continued {
  background:
    linear-gradient(180deg, #1e1a16 0%, #14100c 50%, #0a0806 100%),
    radial-gradient(ellipse at 50% 80%, #2a201a 0%, transparent 70%);
}
.scn-variants-continued .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a201a 0%, #1a1410 100%);
  animation: vc-wall 15s ease-in-out infinite alternate;
}
.scn-variants-continued .bookshelf {
  position: absolute; top: 10%; left: 10%; right: 10%; height: 60%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a1008 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.5);
  animation: vc-shelf 20s ease-in-out infinite;
}
.scn-variants-continued .books {
  position: absolute; top: 20%; left: 15%; right: 15%; height: 45%;
  background: repeating-linear-gradient(90deg,
    #5a4a3a 0px, #5a4a3a 14px, #3a2a1a 14px, #3a2a1a 16px,
    #6a5a4a 16px, #6a5a4a 30px, #2a1a0a 30px, #2a1a0a 32px,
    #4a3a2a 32px, #4a3a2a 46px, #3a2a1a 46px, #3a2a1a 48px);
  border-radius: 2%;
  animation: vc-books 10s ease-in-out infinite alternate;
}
.scn-variants-continued .lamp {
  position: absolute; bottom: 20%; left: 25%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #c8a870 0%, #a88858 50%, #6a5a3a 100%);
  border-radius: 20% 20% 8% 8%;
  animation: vc-lamp 7s ease-in-out infinite;
}
.scn-variants-continued .armchair {
  position: absolute; bottom: 5%; right: 20%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: vc-chair 12s ease-in-out infinite;
}
.scn-variants-continued .figure {
  position: absolute; bottom: 18%; right: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: vc-fig 5s ease-in-out infinite;
}
.scn-variants-continued .lamp-glow {
  position: absolute; bottom: 24%; left: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,180,120,0.3) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: vc-glow 4s ease-in-out infinite alternate;
}
@keyframes vc-wall { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes vc-shelf { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes vc-books { 0% { background-position: 0 0 } 100% { background-position: 20px 0 } }
@keyframes vc-lamp { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } }
@keyframes vc-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes vc-fig { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(0deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-4px) rotate(0deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes vc-glow { 0% { transform: translate(-50%,-50%) scale(0.8); opacity:0.6 } 50% { transform: translate(-50%,-50%) scale(1.1); opacity:0.9 } 100% { transform: translate(-50%,-50%) scale(0.9); opacity:0.7 } }

.scn-loves-burial-place {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 50%, #0a0505 100%),
    radial-gradient(ellipse at 50% 30%, #4a2a2a 0%, transparent 70%);
}
.scn-loves-burial-place .arch {
  position: absolute; top: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: lbp-arch 20s ease-in-out infinite alternate;
}
.scn-loves-burial-place .window {
  position: absolute; top: 8%; left: 35%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #2a1e1e 0%, #120a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 20px 8px #0a0505;
  animation: lbp-window 6s ease-in-out infinite alternate;
}
.scn-loves-burial-place .altar {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 20%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: lbp-altar 10s ease-in-out infinite;
}
.scn-loves-burial-place .tomb {
  position: absolute; bottom: 25%; left: 40%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 8% 8% 4% 4%;
  transform: rotate(-2deg);
  animation: lbp-tomb 8s ease-in-out infinite;
}
.scn-loves-burial-place .heart {
  position: absolute; bottom: 30%; left: 48%; width: 20px; height: 20px;
  background: #702243;
  border-radius: 50% 50% 0 0;
  transform: rotate(45deg);
  box-shadow: 0 0 12px 4px rgba(112,34,67,0.5);
  animation: lbp-heart 4s ease-in-out infinite;
}
.scn-loves-burial-place .heart::after {
  content: '';
  position: absolute; top: 0; left: 0; width: 20px; height: 20px;
  background: #702243;
  border-radius: 50%;
}
.scn-loves-burial-place .candle {
  position: absolute; bottom: 28%; left: 35%; width: 10px; height: 28px;
  background: linear-gradient(180deg, #e0c8a0 0%, #b8a070 50%, #7a6040 100%);
  border-radius: 10% 10% 5% 5%;
  animation: lbp-candle 5s ease-in-out infinite;
}
.scn-loves-burial-place .rose {
  position: absolute; bottom: 22%; left: 55%; width: 14px; height: 16px;
  background: radial-gradient(circle, #b87878 0%, #8a5050 60%, #5a3030 100%);
  border-radius: 50%;
  animation: lbp-rose 7s ease-in-out infinite;
}
@keyframes lbp-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes lbp-window { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes lbp-altar { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes lbp-tomb { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes lbp-heart { 0% { transform: rotate(45deg) scale(1) } 50% { transform: rotate(45deg) scale(1.05) } 100% { transform: rotate(45deg) scale(1) } }
@keyframes lbp-candle { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.96) } }
@keyframes lbp-rose { 0% { transform: rotate(0deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(0deg) } }

.scn-editorial-loves-burial {
  background:
    linear-gradient(180deg, #2a241e 0%, #1a1410 50%, #0a0a08 100%),
    radial-gradient(ellipse at 40% 60%, #3a2a20 0%, transparent 70%);
}
.scn-editorial-loves-burial .desk {
  position: absolute; bottom: 0; left: 8%; right: 8%; height: 40%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e14 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -8px 24px rgba(0,0,0,0.5);
  animation: elb-desk 9s ease-in-out infinite;
}
.scn-editorial-loves-burial .manuscript {
  position: absolute; bottom: 28%; left: 25%; width: 140px; height: 48px;
  background: linear-gradient(135deg, #e0d4c0 0%, #c0b09a 50%, #a0907a 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: rotate(1deg);
  animation: elb-paper 6s ease-in-out infinite alternate;
}
.scn-editorial-loves-burial .quill {
  position: absolute; bottom: 32%; left: 38%; width: 5px; height: 45px;
  background: linear-gradient(180deg, #d8c8b8 0%, #b0a090 50%, #8a7a6a 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: elb-quill 4s ease-in-out infinite;
}
.scn-editorial-loves-burial .inkpot {
  position: absolute; bottom: 22%; left: 30%; width: 22px; height: 24px;
  background: radial-gradient(circle at 50% 30%, #4a3a2a 0%, #1a0e08 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: elb-ink 8s ease-in-out infinite;
}
.scn-editorial-loves-burial .candle {
  position: absolute; bottom: 34%; right: 28%; width: 10px; height: 26px;
  background: linear-gradient(180deg, #e8c8a0 0%, #c0a070 50%, #8a6040 100%);
  border-radius: 10% 10% 5% 5%;
  animation: elb-candle 5s ease-in-out infinite;
}
.scn-editorial-loves-burial .scroll {
  position: absolute; bottom: 18%; right: 40%; width: 50px; height: 12px;
  background: linear-gradient(180deg, #d0c0a8 0%, #b0a088 100%);
  border-radius: 50% 50% 50% 50%;
  transform: rotate(5deg);
  animation: elb-scroll 7s ease-in-out infinite;
}
@keyframes elb-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes elb-paper { 0% { transform: rotate(1deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-1px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes elb-quill { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } }
@keyframes elb-ink { 0% { opacity:0.9 } 50% { opacity:0.95 } 100% { opacity:0.85 } }
@keyframes elb-candle { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } }
@keyframes elb-scroll { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(5deg) translateX(2px) } 100% { transform: rotate(5deg) translateX(0) } }

/* fancy-in-nubibus */

.scn-fancy-in-nubibus { background: linear-gradient(180deg, #1b1a3a 0%, #3e2a4e 40%, #8a5a5a 70%, #c88a5a 100%), radial-gradient(ellipse at 50% 30%, #e6b060 0%, transparent 60%); }
.scn-fancy-in-nubibus .sky { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a3e 0%, transparent 60%); animation: fn-sky 20s ease-in-out infinite alternate; }
.scn-fancy-in-nubibus .moon { position:absolute; top:15%; left:70%; width:40px; height:40px; background: radial-gradient(circle at 35% 35%, #f0e0c0, #c0a060); border-radius:50%; box-shadow: 0 0 40px 12px #e0b060; animation: fn-moon 8s ease-in-out infinite alternate; }
.scn-fancy-in-nubibus .cloud-a { position:absolute; top:22%; left:-10%; width:120px; height:30px; background: linear-gradient(180deg, rgba(180,160,200,.6) 0%, rgba(100,80,120,.4) 100%); border-radius:50%; filter:blur(8px); animation: fn-cld-a 40s linear infinite; }
.scn-fancy-in-nubibus .cloud-b { position:absolute; top:30%; left:30%; width:90px; height:22px; background: linear-gradient(180deg, rgba(200,180,220,.5) 0%, rgba(120,100,140,.3) 100%); border-radius:50%; filter:blur(6px); animation: fn-cld-b 50s linear infinite; }
.scn-fancy-in-nubibus .cloud-c { position:absolute; top:35%; right:-20%; width:100px; height:26px; background: linear-gradient(180deg, rgba(160,140,180,.55) 0%, rgba(80,60,100,.35) 100%); border-radius:50%; filter:blur(7px); animation: fn-cld-c 45s linear infinite reverse; }
.scn-fancy-in-nubibus .poet { position:absolute; bottom:32%; left:15%; width:30px; 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: fn-poet 6s ease-in-out infinite; }
.scn-fancy-in-nubibus .arm { position:absolute; bottom:45%; left:22%; width:12px; height:24px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 0 0; transform: rotate(30deg); transform-origin: bottom left; animation: fn-arm 6s ease-in-out infinite; }
@keyframes fn-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fn-moon { 0% { transform: translateY(0) scale(1); box-shadow:0 0 40px 12px #e0b060 } 50% { transform: translateY(-4px) scale(1.02); box-shadow:0 0 50px 18px #f0c080 } 100% { transform: translateY(0) scale(1); box-shadow:0 0 40px 12px #e0b060 } }
@keyframes fn-cld-a { 0% { transform: translateX(0) } 50% { transform: translateX(120vw) } 100% { transform: translateX(0) } }
@keyframes fn-cld-b { 0% { transform: translateX(0) } 50% { transform: translateX(-130vw) } 100% { transform: translateX(0) } }
@keyframes fn-cld-c { 0% { transform: translateX(0) } 50% { transform: translateX(140vw) } 100% { transform: translateX(0) } }
@keyframes fn-poet { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fn-arm { 0% { transform: rotate(30deg) } 50% { transform: rotate(40deg) } 100% { transform: rotate(30deg) } }

/* fancy-in-nubibus-editorial */

.scn-fancy-in-nubibus-editorial { background: linear-gradient(180deg, #2a1e12 0%, #1c140e 40%, #0d0a07 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%); }
.scn-fancy-in-nubibus-editorial .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1a 0%, #1c140e 100%); border-bottom:8px solid #4a3a2a; }
.scn-fancy-in-nubibus-editorial .desk { position:absolute; bottom:8%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius:4px 4px 0 0; box-shadow:0 -4px 12px rgba(0,0,0,.6); }
.scn-fancy-in-nubibus-editorial .lamp { position:absolute; bottom:42%; left:60%; width:24px; height:40px; background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%); border-radius: 8px 8px 4px 4px; box-shadow:0 0 30px 10px #d08040; animation: fe-lamp 3s ease-in-out infinite alternate; }
.scn-fancy-in-nubibus-editorial .book { position:absolute; bottom:28%; left:20%; width:70px; height:20px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:2px; transform: rotate(-5deg); box-shadow:0 2px 6px rgba(0,0,0,.5); }
.scn-fancy-in-nubibus-editorial .quill { position:absolute; bottom:35%; left:42%; width:6px; height:30px; background: linear-gradient(180deg, #c0a080 0%, #806040 100%); border-radius: 0 0 50% 50%; transform: rotate(20deg); transform-origin: bottom; animation: fe-quill 4s ease-in-out infinite; }
.scn-fancy-in-nubibus-editorial .inkwell { position:absolute; bottom:24%; left:38%; width:20px; height:18px; background: radial-gradient(circle, #2a1a0a 0%, #1a0a00 100%); border-radius:50% 50% 30% 30%; box-shadow:0 2px 4px rgba(0,0,0,.6); }
@keyframes fe-lamp { 0% { box-shadow:0 0 20px 6px #d08040; opacity:.9 } 50% { box-shadow:0 0 35px 14px #e09050; opacity:1 } 100% { box-shadow:0 0 22px 8px #d08040; opacity:.9 } }
@keyframes fe-quill { 0% { transform: rotate(20deg) } 50% { transform: rotate(25deg) scaleY(1.02) } 100% { transform: rotate(20deg) } }

/* tears-grateful-people-intro */

.scn-tears-grateful-people-intro { background: linear-gradient(180deg, #0c0820 0%, #140c30 40%, #1a0e3a 100%), radial-gradient(ellipse at 50% 80%, #2a1a4a 0%, transparent 80%); }
.scn-tears-grateful-people-intro .bg-dim { position:absolute; inset:0; background: linear-gradient(180deg, #0a0618 0%, #140c30 100%); animation: tg-dim 15s ease-in-out infinite alternate; }
.scn-tears-grateful-people-intro .bimah { position:absolute; bottom:15%; left:30%; right:30%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 8px 8px 0 0; box-shadow:0 -4px 12px rgba(0,0,0,.5); }
.scn-tears-grateful-people-intro .candle-a { position:absolute; bottom:40%; left:35%; width:8px; height:30px; background: linear-gradient(180deg, #e8d0a0 0%, #a08040 100%); border-radius: 4px 4px 2px 2px; }
.scn-tears-grateful-people-intro .candle-b { position:absolute; bottom:40%; right:35%; width:8px; height:30px; background: linear-gradient(180deg, #e8d0a0 0%, #a08040 100%); border-radius: 4px 4px 2px 2px; }
.scn-tears-grateful-people-intro .flame-a { position:absolute; bottom:68%; left:35%; width:12px; height:16px; background: radial-gradient(circle, #f0c080 0%, #d08020 60%, transparent 100%); border-radius:50%; box-shadow:0 0 20px 6px #c06020; animation: tg-flame 2s ease-in-out infinite alternate; }
.scn-tears-grateful-people-intro .flame-b { position:absolute; bottom:68%; right:35%; width:12px; height:16px; background: radial-gradient(circle, #f0c080 0%, #d08020 60%, transparent 100%); border-radius:50%; box-shadow:0 0 20px 6px #c06020; animation: tg-flame 2s ease-in-out infinite alternate-reverse; }
.scn-tears-grateful-people-intro .figure { position:absolute; bottom:20%; left:45%; width:24px; height:55px; background: linear-gradient(180deg, #0e0e1e 0%, #06060e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tg-fig 6s ease-in-out infinite; }
@keyframes tg-dim { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes tg-flame { 0% { transform: scaleY(1) translateY(0); opacity:.9 } 50% { transform: scaleY(1.15) translateY(-2px); opacity:1 } 100% { transform: scaleY(1) translateY(0); opacity:.9 } }
@keyframes tg-fig { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(-2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }

/* tears-grateful-people-king-dead */

.scn-tears-grateful-people-king-dead { background: linear-gradient(180deg, #0a0a1a 0%, #12102a 50%, #1a103a 100%), radial-gradient(ellipse at 50% 30%, #202050 0%, transparent 70%); }
.scn-tears-grateful-people-king-dead .room { position:absolute; inset:0; background: linear-gradient(180deg, #08081a 0%, #100e2a 100%); animation: tk-room 20s ease-in-out infinite alternate; }
.scn-tears-grateful-people-king-dead .window { position:absolute; top:10%; left:40%; right:40%; bottom:55%; background: linear-gradient(180deg, #1a1a3e 0%, #0a0a1a 100%); border: 3px solid #3a2a4a; border-radius: 40% 40% 0 0; overflow:hidden; }
.scn-tears-grateful-people-king-dead .moon { position:absolute; top:5%; left:50%; width:30px; height:30px; background: radial-gradient(circle at 30% 30%, #d0c0a0, #a09070); border-radius:50%; box-shadow:0 0 30px 8px #c0b090; animation: tk-moon 8s ease-in-out infinite alternate; }
.scn-tears-grateful-people-king-dead .crown { position:absolute; bottom:28%; left:40%; width:50px; height:20px; background: linear-gradient(180deg, #b09060 0%, #705030 100%); border-radius: 10px 10px 4px 4px; clip-path: polygon(0% 100%, 10% 0%, 30% 40%, 50% 0%, 70% 40%, 90% 0%, 100% 100%); animation: tk-crown 6s ease-in-out infinite; }
.scn-tears-grateful-people-king-dead .cushion { position:absolute; bottom:22%; left:35%; width:70px; height:14px; background: linear-gradient(180deg, #4a1a1a 0%, #2a0a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow:0 2px 6px rgba(0,0,0,.6); }
.scn-tears-grateful-people-king-dead .sceptre { position:absolute; bottom:30%; left:30%; width:5px; height:50px; background: linear-gradient(180deg, #c0a060 0%, #806040 100%); border-radius: 2px; transform: rotate(-15deg); transform-origin: bottom; animation: tk-scp 4s ease-in-out infinite; }
.scn-tears-grateful-people-king-dead .kneeler { position:absolute; bottom:10%; right:20%; width:22px; height:50px; background: linear-gradient(180deg, #0e0e1a 0%, #06060e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tk-kneel 5s ease-in-out infinite; }
@keyframes tk-room { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes tk-moon { 0% { transform: translateX(0) scale(1); box-shadow:0 0 30px 8px #c0b090 } 50% { transform: translateX(3px) scale(1.03); box-shadow:0 0 40px 12px #d0c0a0 } 100% { transform: translateX(0) scale(1); box-shadow:0 0 30px 8px #c0b090 } }
@keyframes tk-crown { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tk-scp { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-15deg) } }
@keyframes tk-kneel { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(-3deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }

/* composed-on-night-intro */

.scn-composed-on-night-intro {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #4a3520 100%),
    radial-gradient(ellipse at 50% 30%, #4a3520 0%, transparent 70%);
}
.scn-composed-on-night-intro .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #4a3520 0%, #2a1a0a 100%); border-radius: 0 0 30% 30% / 0 0 50% 50%; }
.scn-composed-on-night-intro .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; }
.scn-composed-on-night-intro .desk { position:absolute; bottom:28%; left:35%; width:30%; height:4%; background: #5a3a20; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-composed-on-night-intro .book-open { position:absolute; bottom:33%; left:38%; width:12%; height:6%; background: linear-gradient(135deg, #c8a86a 0%, #a08040 100%); border-radius: 2px; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ni-book-rotate 6s ease-in-out infinite alternate; }
.scn-composed-on-night-intro .lamp { position:absolute; bottom:33%; right:35%; width:4%; height:12%; background: linear-gradient(180deg, #8a6a4a 0%, #4a3020 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: ni-lamp-sway 8s ease-in-out infinite; }
.scn-composed-on-night-intro .lamp-glow { position:absolute; bottom:44%; right:35%; width:8%; height:8%; background: radial-gradient(circle, #ffd080 0%, #ffb050 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,176,80,.4), 0 0 80px 40px rgba(255,176,80,.15); animation: ni-lamp-pulse 3s ease-in-out infinite alternate; }
.scn-composed-on-night-intro .chair-figure { position:absolute; bottom:28%; left:35%; width:10%; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ni-figure-breathe 4s ease-in-out infinite; }
.scn-composed-on-night-intro .bookshelf { position:absolute; bottom:30%; right:5%; width:20%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); overflow: hidden; }
.scn-composed-on-night-intro .bookshelf::before { content:''; position:absolute; left:10%; width:80%; height:8%; background:#5a4020; top:15%; border-radius: 2px; }
.scn-composed-on-night-intro .bookshelf::after { content:''; position:absolute; left:10%; width:80%; height:8%; background:#5a4020; top:45%; border-radius: 2px; }
@keyframes ni-book-rotate { 0% { transform: rotate(-2deg) scaleX(1); } 50% { transform: rotate(0deg) scaleX(1.05); } 100% { transform: rotate(-2deg) scaleX(1); } }
@keyframes ni-lamp-sway { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes ni-lamp-pulse { 0% { opacity:0.8; box-shadow: 0 0 30px 15px rgba(255,176,80,.3); } 50% { opacity:1; box-shadow: 0 0 50px 25px rgba(255,176,80,.5); } 100% { opacity:0.85; box-shadow: 0 0 35px 18px rgba(255,176,80,.35); } }
@keyframes ni-figure-breathe { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } }

/* composed-on-night-body */

.scn-composed-on-night-body {
  background: 
    linear-gradient(180deg, #1a142a 0%, #2a1a3a 30%, #1a0a2a 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a5a 0%, transparent 70%);
}
.scn-composed-on-night-body .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a1a3a 0%, #1a0a2a 100%); border-radius: 0 0 20% 20%; }
.scn-composed-on-night-body .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a0a2a 0%, #0a051a 100%); border-radius: 30% 30% 0 0; }
.scn-composed-on-night-body .globe-stand { position:absolute; bottom:30%; left:50%; width:6%; height:25%; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10%; }
.scn-composed-on-night-body .globe { position:absolute; bottom:45%; left:50%; width:18%; height:18%; transform:translateX(-50%); background: radial-gradient(circle at 40% 30%, #6a8a5a 0%, #3a5a3a 40%, #1a2a1a 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(90,138,90,.3), inset 0 0 30px rgba(0,0,0,.5); animation: nb-globe-rotate 12s linear infinite; }
.scn-composed-on-night-body .globe-glow { position:absolute; bottom:45%; left:50%; width:24%; height:24%; transform:translateX(-50%); background: radial-gradient(circle, rgba(160,200,160,.15) 0%, transparent 70%); border-radius: 50%; animation: nb-globe-pulse 4s ease-in-out infinite alternate; }
.scn-composed-on-night-body .figure-profile { position:absolute; bottom:30%; left:30%; width:10%; height:28%; background: linear-gradient(180deg, #0a0a1a 0%, #14142a 100%); border-radius: 50% 40% 30% 30% / 70% 60% 30% 30%; transform: scaleX(-1); animation: nb-figure-rise 6s ease-in-out infinite alternate; }
.scn-composed-on-night-body .garland-glow { position:absolute; bottom:55%; left:25%; width:10%; height:6%; background: radial-gradient(circle, #c8b080 0%, transparent 80%); border-radius: 50%; filter: blur(4px); animation: nb-garland-fade 5s ease-in-out infinite; }
.scn-composed-on-night-body .lines-emitted { position:absolute; bottom:50%; left:45%; width:2%; height:30%; background: linear-gradient(180deg, rgba(200,200,220,.6) 0%, transparent 100%); transform: rotate(15deg); border-radius: 50%; filter: blur(2px); animation: nb-lines-wave 3s ease-in-out infinite alternate; }
@keyframes nb-globe-rotate { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(360deg); } }
@keyframes nb-globe-pulse { 0% { transform: translateX(-50%) scale(0.95); opacity:0.7; } 50% { transform: translateX(-50%) scale(1.05); opacity:1; } 100% { transform: translateX(-50%) scale(0.98); opacity:0.8; } }
@keyframes nb-figure-rise { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-4px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes nb-garland-fade { 0%,100% { opacity:0.3; } 50% { opacity:0.8; } }
@keyframes nb-lines-wave { 0% { transform: rotate(15deg) scaleY(0.8); opacity:0.4; } 50% { transform: rotate(20deg) scaleY(1.1); opacity:0.8; } 100% { transform: rotate(15deg) scaleY(0.9); opacity:0.5; } }

/* composed-on-night-variants */

.scn-composed-on-night-variants {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 30%, #0a0a2a 100%),
    radial-gradient(ellipse at 50% 10%, #2a2a5a 0%, transparent 70%);
}
.scn-composed-on-night-variants .porthole-frame { position:absolute; inset:5% 10%; border: 8px solid #3a2a1a; border-radius: 50%; background: transparent; box-shadow: inset 0 0 50px rgba(0,0,0,.8), 0 0 30px rgba(0,0,0,.5); }
.scn-composed-on-night-variants .sky-night { position:absolute; top:5%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 100%); border-radius: 50% 50% 0 0; }
.scn-composed-on-night-variants .sea { position:absolute; top:45%; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #1a2a4a 0%, #0a1a2a 100%); border-radius: 0 0 50% 50%; animation: nv-sea-sway 8s ease-in-out infinite alternate; }
.scn-composed-on-night-variants .vessel-hull { position:absolute; top:55%; left:30%; width:30%; height:10%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius: 20% 20% 40% 40%; transform: translateX(-20%); animation: nv-hull-roll 4s ease-in-out infinite; }
.scn-composed-on-night-variants .foam-cloud-a { position:absolute; top:60%; left:15%; width:20%; height:4%; background: rgba(240,240,255,0.4); border-radius: 50%; filter: blur(6px); animation: nv-foam-drift 10s linear infinite; }
.scn-composed-on-night-variants .foam-cloud-b { position:absolute; top:65%; right:20%; width:25%; height:5%; background: rgba(240,240,255,0.3); border-radius: 50%; filter: blur(8px); animation: nv-foam-drift 14s linear infinite reverse; }
.scn-composed-on-night-variants .stars-layer { position:absolute; top:8%; left:15%; width:70%; height:30%; background: transparent; background-image: radial-gradient(2px 2px at 20% 30%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 40% 10%, #f0e0a0 0%, transparent 100%), radial-gradient(2px 2px at 60% 50%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 80% 20%, #f0e0a0 0%, transparent 100%), radial-gradient(1px 1px at 50% 70%, #fff 0%, transparent 100%); background-size: 100% 100%; background-repeat: no-repeat; animation: nv-stars-twinkle 4s ease-in-out infinite alternate; }
.scn-composed-on-night-variants .sparkle { position:absolute; top:58%; left:45%; width:4%; height:4%; background: radial-gradient(circle, #fff 0%, rgba(255,255,200,0.6) 30%, transparent 70%); border-radius: 50%; animation: nv-sparkle-burst 2s ease-in-out infinite; }
@keyframes nv-sea-sway { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.02) translateY(2px); } 100% { transform: scaleX(1) translateY(0); } }
@keyframes nv-hull-roll { 0%,100% { transform: translateX(-20%) rotate(0deg); } 50% { transform: translateX(-20%) rotate(2deg); } }
@keyframes nv-foam-drift { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(10px) scaleX(1.1); } 100% { transform: translateX(20px) scaleX(1); } }
@keyframes nv-stars-twinkle { 0% { opacity:0.5; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes nv-sparkle-burst { 0%,100% { transform: scale(0.5); opacity:0; } 50% { transform: scale(1.5); opacity:1; } }

/* within-sweet-berries-intro */

.scn-within-sweet-berries-intro {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #1a1008 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 60%);
}
.scn-within-sweet-berries-intro .bg-warm { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 0 40% 40%; }
.scn-within-sweet-berries-intro .window-arch { position:absolute; top:15%; left:25%; width:50%; height:60%; background: transparent; border: 6px solid #5a4020; border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%; box-shadow: inset 0 0 60px rgba(0,0,0,.6), 0 0 30px rgba(0,0,0,.4); }
.scn-within-sweet-berries-intro .sky-vernal { position:absolute; top:16%; left:26%; width:48%; height:58%; background: linear-gradient(180deg, #8ab0c8 0%, #6a8aa0 100%); border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%; opacity:0.4; }
.scn-within-sweet-berries-intro .climbing-vine { position:absolute; top:20%; left:20%; width:60%; height:50%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%); border-radius: 60% 40% 30% 70% / 50% 60% 40% 50%; filter: blur(2px); animation: wb-vine-sway 7s ease-in-out infinite alternate; }
.scn-within-sweet-berries-intro .bench { position:absolute; bottom:25%; left:30%; width:40%; height:6%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-within-sweet-berries-intro .coupled-silhouettes { position:absolute; bottom:30%; left:35%; width:30%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: scaleX(1); animation: wb-couple-breathe 5s ease-in-out infinite; }
.scn-within-sweet-berries-intro .flower-cluster { position:absolute; top:30%; left:50%; width:8%; height:8%; background: radial-gradient(circle, #b8a080 0%, #a08060 40%, transparent 70%); border-radius: 50%; filter: blur(3px); animation: wb-flower-drift 9s ease-in-out infinite; }
@keyframes wb-vine-sway { 0% { transform: rotate(-1deg) scaleY(1); } 50% { transform: rotate(1deg) scaleY(1.03); } 100% { transform: rotate(-1deg) scaleY(1); } }
@keyframes wb-couple-breathe { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } }
@keyframes wb-flower-drift { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(3px, -2px) rotate(5deg); } 100% { transform: translate(-2px,1px) rotate(-3deg); } }

.scn-skeltoniad-poem-devils-speech {
  background: linear-gradient(180deg, #0a0e1a 0%, #12182a 40%, #1a2035 100%),
              radial-gradient(ellipse at 80% 20%, #2a3a5a 0%, transparent 60%);
}
.scn-skeltoniad-poem-devils-speech .night-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #080c18 0%, #101828 60%, transparent);
  animation: sds-sky 15s ease-in-out infinite alternate;
}
.scn-skeltoniad-poem-devils-speech .moon {
  position: absolute; top: 8%; right: 22%; width: 45px; height: 45px;
  background: radial-gradient(circle, #d0d8e8 0%, #a0a8c0 60%, transparent 75%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(160,168,192,0.4);
  animation: sds-moon 20s ease-in-out infinite alternate;
}
.scn-skeltoniad-poem-devils-speech .snow-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #c8d0dc 0%, #e0e4ee 50%, #f0f2f8 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: sds-ground 12s ease-in-out infinite alternate;
}
.scn-skeltoniad-poem-devils-speech .stone {
  position: absolute; bottom: 28%; left: 40%; width: 60px; height: 35px;
  background: linear-gradient(160deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: sds-stone 8s ease-in-out infinite;
}
.scn-skeltoniad-poem-devils-speech .devil {
  position: absolute; bottom: 30%; left: 48%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 0 15px rgba(0,0,0,0.8);
  animation: sds-devil 4s ease-in-out infinite;
}
.scn-skeltoniad-poem-devils-speech .bare-tree {
  position: absolute; bottom: 30%; left: 25%; width: 10px; height: 70px;
  background: linear-gradient(180deg, #3a3a4a, #1a1a2a);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-10deg);
  box-shadow: -3px 0 6px rgba(0,0,0,0.4);
  animation: sds-tree 30s ease-in-out infinite alternate;
}
.scn-skeltoniad-poem-devils-speech .bare-tree::before {
  content: ''; position: absolute; top: -18px; left: -12px; width: 30px; height: 24px;
  background: radial-gradient(circle, #2a2a3a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
}
.scn-skeltoniad-poem-devils-speech .snowflakes {
  position: absolute; inset: 0;
  background: radial-gradient(2px 2px at 20% 30%, rgba(255,255,255,0.6) 0%, transparent 2px),
              radial-gradient(3px 3px at 70% 50%, rgba(255,255,255,0.4) 0%, transparent 3px),
              radial-gradient(2px 2px at 40% 80%, rgba(255,255,255,0.5) 0%, transparent 2px);
  background-size: 200px 200px;
  animation: sds-snow 6s linear infinite;
}
@keyframes sds-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sds-moon { 0% { transform: translateY(0); opacity:0.8; } 50% { transform: translateY(-5px); opacity:1; } 100% { transform: translateY(2px); opacity:0.9; } }
@keyframes sds-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes sds-stone { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes sds-devil { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(24px) rotate(1deg); } 100% { transform: translateX(32px) rotate(0); } }
@keyframes sds-tree { 0% { transform: rotate(-10deg); } 50% { transform: rotate(12deg); } 100% { transform: rotate(-8deg); } }
@keyframes sds-snow { 0% { background-position: 0 0; } 100% { background-position: 200px 200px; } }

.scn-skeltoniad-poem-variants {
  background: linear-gradient(135deg, #1a1a22 0%, #2a2a35 40%, #3a3a4a 100%),
              radial-gradient(ellipse at 50% 70%, #2a2a36 0%, transparent 60%);
}
.scn-skeltoniad-poem-variants .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2e2e3a 0%, #1e1e2a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
}
.scn-skeltoniad-poem-variants .window {
  position: absolute; top: 15%; left: 30%; width: 80px; height: 100px;
  background: #0a0a18;
  border: 4px solid #4a4a5a;
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(0,0,0,0.6);
  animation: spv-window 10s ease-in-out infinite alternate;
}
.scn-skeltoniad-poem-variants .snow-outside {
  position: absolute; top: 17%; left: 32%; width: 72px; height: 92px;
  background: linear-gradient(180deg, #c8d0dc 0%, #e0e8f0 100%);
  border-radius: 2px;
  opacity: 0.3;
  animation: spv-snow-out 8s ease-in-out infinite alternate;
}
.scn-skeltoniad-poem-variants .table {
  position: absolute; bottom: 30%; left: 25%; width: 120px; height: 12px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: spv-table 15s ease-in-out infinite;
}
.scn-skeltoniad-poem-variants .candle {
  position: absolute; bottom: 36%; left: 35%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b898 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 10px rgba(232,216,184,0.5);
  animation: spv-candle 4s ease-in-out infinite alternate;
}
.scn-skeltoniad-poem-variants .candle::after {
  content: ''; position: absolute; top: -8px; left: -2px; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd060 0%, #e8a030 50%, transparent 70%);
  border-radius: 50%;
  animation: spv-flame 0.8s ease-in-out infinite alternate;
}
.scn-skeltoniad-poem-variants .chair {
  position: absolute; bottom: 20%; right: 25%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: spv-chair 12s ease-in-out infinite alternate;
}
.scn-skeltoniad-poem-variants .sleeping-figure {
  position: absolute; bottom: 22%; right: 28%; width: 22px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 40% 40% / 50% 50% 40% 40%;
  transform: rotate(10deg);
  animation: spv-sleep 6s ease-in-out infinite;
}
@keyframes spv-window { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes spv-snow-out { 0% { transform: scaleY(0.8); opacity:0.2; } 50% { transform: scaleY(1); opacity:0.4; } 100% { transform: scaleY(0.9); opacity:0.3; } }
@keyframes spv-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes spv-candle { 0% { opacity:0.8; transform: scaleY(0.95); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:0.9; transform: scaleY(1); } }
@keyframes spv-flame { 0% { transform: scale(0.8) rotate(-5deg); } 100% { transform: scale(1.2) rotate(5deg); } }
@keyframes spv-chair { 0% { transform: rotate(0); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(1deg); } }
@keyframes spv-sleep { 0%,100% { transform: translateY(0) rotate(10deg); } 50% { transform: translateY(-3px) rotate(12deg); } }

.scn-skeltoniad-poem-end {
  background: linear-gradient(180deg, #2a2e38 0%, #3a3e48 50%, #4a4e58 100%),
              radial-gradient(ellipse at 50% 100%, #5a5e68 0%, transparent 80%);
}
.scn-skeltoniad-poem-end .sky-overcast {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2e3a 0%, #3a3e4a 60%, transparent);
  animation: spe-sky 20s ease-in-out infinite alternate;
}
.scn-skeltoniad-poem-end .dead-tree {
  position: absolute; bottom: 30%; left: 15%; width: 12px; height: 80px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(5deg);
  box-shadow: -3px 0 6px rgba(0,0,0,0.5);
  animation: spe-tree 30s ease-in-out infinite alternate;
}
.scn-skeltoniad-poem-end .dead-tree::before {
  content: ''; position: absolute; top: -20px; left: -10px; width: 30px; height: 20px;
  background: radial-gradient(circle, #2a2a3a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(5px);
}
.scn-skeltoniad-poem-end .trumpeter {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: spe-trumpeter 5s ease-in-out infinite;
}
.scn-skeltoniad-poem-end .horn {
  position: absolute; bottom: 38%; left: 52%; width: 28px; height: 8px;
  background: linear-gradient(135deg, #6a6a7a 0%, #4a4a5a 100%);
  border-radius: 0 50% 50% 0 / 0 100% 100% 0;
  transform: rotate(-30deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: spe-horn 10s ease-in-out infinite alternate;
}
.scn-skeltoniad-poem-end .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a4e58 0%, #3a3e48 100%);
  border-radius: 40% 60% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.4);
}
.scn-skeltoniad-poem-end .mist {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,200,220,0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: spe-mist 12s ease-in-out infinite alternate;
}
.scn-skeltoniad-poem-end .crows {
  position: absolute; top: 12%; right: 20%; width: 10px; height: 10px;
  background: #0a0a1a;
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 15px -5px 0 #0a0a1a, 30px 2px 0 #0a0a1a;
  animation: spe-crows 8s ease-in-out infinite;
}
@keyframes spe-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes spe-tree { 0% { transform: rotate(5deg); } 50% { transform: rotate(-8deg); } 100% { transform: rotate(6deg); } }
@keyframes spe-trumpeter { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(6px) rotate(2deg); } 50% { transform: translateX(12px) rotate(-1deg); } 75% { transform: translateX(18px) rotate(1deg); } 100% { transform: translateX(24px) rotate(0); } }
@keyframes spe-horn { 0% { transform: rotate(-30deg) scaleX(0.8); } 50% { transform: rotate(-20deg) scaleX(1); } 100% { transform: rotate(-35deg) scaleX(0.9); } }
@keyframes spe-mist { 0% { transform: translateX(-10px); opacity:0.5; } 50% { transform: translateX(10px); opacity:0.8; } 100% { transform: translateX(0); opacity:0.6; } }
@keyframes spe-crows { 0% { transform: translateY(0); } 50% { transform: translateY(-15px); } 100% { transform: translateY(0); } }

.scn-skeltoniad-intro {
  background: linear-gradient(180deg, #1a1a22 0%, #2a2a35 40%, #3a3a46 100%),
              radial-gradient(ellipse at 50% 70%, #3a3a48 0%, transparent 60%);
}
.scn-skeltoniad-intro .bookshelf-bg {
  position: absolute; top: 0; left: 0; width: 20%; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.5);
  border-right: 2px solid #5a4a3a;
  animation: sin-bookshelf 25s ease-in-out infinite alternate;
}
.scn-skeltoniad-intro .desk {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 12px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: sin-desk 18s ease-in-out infinite;
}
.scn-skeltoniad-intro .book-open {
  position: absolute; bottom: 22%; left: 30%; width: 40px; height: 14px;
  background: linear-gradient(135deg, #c8b898 0%, #a89878 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: skewY(-5deg);
  animation: sin-book 12s ease-in-out infinite alternate;
}
.scn-skeltoniad-intro .oil-lamp {
  position: absolute; bottom: 30%; left: 40%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 0 15px rgba(200,180,160,0.4);
  animation: sin-lamp 4s ease-in-out infinite alternate;
}
.scn-skeltoniad-intro .oil-lamp::after {
  content: ''; position: absolute; top: -6px; left: 2px; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd060 0%, #e8a030 50%, transparent 70%);
  border-radius: 50%;
  animation: sin-flame 0.8s ease-in-out infinite alternate;
}
.scn-skeltoniad-intro .armchair {
  position: absolute; bottom: 15%; right: 20%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: sin-chair 20s ease-in-out infinite alternate;
}
.scn-skeltoniad-intro .reader {
  position: absolute; bottom: 18%; right: 28%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 40% 40% / 50% 50% 40% 40%;
  transform: rotate(5deg);
  animation: sin-reader 6s ease-in-out infinite;
}
.scn-skeltoniad-intro .warm-glow {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 120px;
  background: radial-gradient(ellipse, rgba(255,208,96,0.15) 0%, transparent 70%);
  filter: blur(20px);
  animation: sin-glow 8s ease-in-out infinite alternate;
}
@keyframes sin-bookshelf { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes sin-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes sin-book { 0% { transform: skewY(-5deg) rotate(0); } 50% { transform: skewY(-5deg) rotate(3deg); } 100% { transform: skewY(-5deg) rotate(-2deg); } }
@keyframes sin-lamp { 0% { opacity:0.8; transform: scaleY(0.95); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:0.9; transform: scaleY(1); } }
@keyframes sin-flame { 0% { transform: scale(0.8) rotate(-5deg); } 100% { transform: scale(1.1) rotate(5deg); } }
@keyframes sin-chair { 0% { transform: rotate(0); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(1deg); } }
@keyframes sin-reader { 0%,100% { transform: translateY(0) rotate(5deg); } 50% { transform: translateY(-3px) rotate(7deg); } }
@keyframes sin-glow { 0% { opacity:0.5; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(1); } }

/* answer-to-child-intro - dim interior, child at window */

.scn-answer-to-child-intro {
  background: linear-gradient(180deg, #2c2a3d 0%, #1a1826 100%), radial-gradient(ellipse at 50% 30%, #3a354f 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-answer-to-child-intro .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2e2a3d 0%, #1f1b2e 100%);
}
.scn-answer-to-child-intro .window-frame {
  position: absolute; top: 18%; left: 25%; width: 40%; height: 55%; background: transparent; border: 8px solid #4a3f5e; border-radius: 6% 6% 4% 4%; box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: aci-frame 12s ease-in-out infinite alternate;
}
.scn-answer-to-child-intro .glass {
  position: absolute; top: 19%; left: 26%; width: 38%; height: 53%; background: linear-gradient(180deg, #4c5b6e 0%, #6a7a8a 60%, #9aabbb 100%); opacity: 0.3; border-radius: 4%; filter: blur(2px);
  animation: aci-glass-fade 8s ease-in-out infinite alternate;
}
.scn-answer-to-child-intro .sill {
  position: absolute; top: 73%; left: 22%; width: 46%; height: 4%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-answer-to-child-intro .bird-silhouette {
  position: absolute; top: 35%; left: 45%; width: 20px; height: 14px; background: #1a1a2e; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-15deg);
  animation: aci-bird 6s ease-in-out infinite;
}
.scn-answer-to-child-intro .child-figure {
  position: absolute; bottom: 5%; left: 36%; width: 60px; height: 100px; background: linear-gradient(180deg, #3a364a 0%, #1e1b2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: aci-child 10s ease-in-out infinite;
}
.scn-answer-to-child-intro .curtain-left {
  position: absolute; top: 15%; left: 22%; width: 10%; height: 60%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); opacity: 0.6; border-radius: 0 30% 30% 0; filter: blur(1px);
  animation: aci-curtain 8s ease-in-out infinite alternate;
}
.scn-answer-to-child-intro .curtain-right {
  position: absolute; top: 15%; right: 22%; width: 10%; height: 60%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); opacity: 0.6; border-radius: 30% 0 0 30%; filter: blur(1px);
  animation: aci-curtain 8s ease-in-out infinite alternate-reverse;
}
.scn-answer-to-child-intro .dust-mote {
  position: absolute; top: 40%; left: 50%; width: 4px; height: 4px; background: rgba(200,180,130,0.5); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(200,180,130,0.3);
  animation: aci-mote 15s linear infinite;
}
@keyframes aci-frame { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.4); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.5); } 100% { box-shadow: inset 0 0 15px rgba(0,0,0,0.3); } }
@keyframes aci-glass-fade { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.25; } }
@keyframes aci-bird { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(4px); } 100% { transform: rotate(-20deg) translateX(-2px); } }
@keyframes aci-child { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes aci-curtain { 0% { width: 10%; opacity: 0.6; } 50% { width: 12%; opacity: 0.7; } 100% { width: 9%; opacity: 0.5; } }
@keyframes aci-mote { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translate(40px, -80px) scale(0.5); opacity: 0; } }

/* answer-to-child-variants - desk with book, candle, hand writing */

.scn-answer-to-child-variants {
  background: linear-gradient(180deg, #2a2538 0%, #1b1624 100%), radial-gradient(ellipse at 70% 50%, #3d334f 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-answer-to-child-variants .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #251f32 0%, #191524 100%);
}
.scn-answer-to-child-variants .desk {
  position: absolute; bottom: 5%; left: 5%; width: 80%; height: 25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 -6px 20px rgba(0,0,0,0.5);
}
.scn-answer-to-child-variants .book-spine {
  position: absolute; bottom: 18%; left: 15%; width: 12%; height: 32%; background: linear-gradient(180deg, #6b5a4a 0%, #4a3a2a 100%); border-radius: 8% 8% 4% 4%; transform: rotate(-5deg);
  animation: acv-book 20s ease-in-out infinite alternate;
}
.scn-answer-to-child-variants .candle {
  position: absolute; bottom: 20%; left: 45%; width: 6%; height: 18%; background: linear-gradient(180deg, #e0c5a0 0%, #b09060 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 10px 2px #ffcc80;
}
.scn-answer-to-child-variants .candle-glow {
  position: absolute; bottom: 18%; left: 43%; width: 12%; height: 20%; background: radial-gradient(ellipse, #ffdd90 0%, #ffb050 40%, transparent 70%); mix-blend-mode: screen; opacity: 0.7;
  animation: acv-glow 5s ease-in-out infinite alternate;
}
.scn-answer-to-child-variants .hand {
  position: absolute; bottom: 12%; left: 35%; width: 14%; height: 18%; background: linear-gradient(180deg, #c8b090 0%, #a08870 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform: rotate(-20deg); transform-origin: bottom center;
  animation: acv-hand 4s ease-in-out infinite;
}
.scn-answer-to-child-variants .feather {
  position: absolute; bottom: 16%; left: 38%; width: 8%; height: 25%; background: linear-gradient(180deg, #d4c8b0 0%, #a89880 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); transform: rotate(30deg);
  animation: acv-feather 6s ease-in-out infinite;
}
.scn-answer-to-child-variants .ink-blot {
  position: absolute; bottom: 10%; left: 55%; width: 10px; height: 10px; background: #2a2040; border-radius: 50%; opacity: 0.6;
  animation: acv-blot 12s ease-in-out infinite;
}
.scn-answer-to-child-variants .moth {
  position: absolute; top: 40%; right: 20%; width: 8px; height: 6px; background: #a09080; border-radius: 50% 50% 30% 30%; transform: rotate(20deg);
  animation: acv-moth 18s linear infinite;
}
@keyframes acv-book { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(-3deg) scaleY(1.02); } 100% { transform: rotate(-6deg) scaleY(0.98); } }
@keyframes acv-glow { 0% { opacity: 0.5; transform: scale(0.95); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes acv-hand { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-18deg) translateY(-1px); } 100% { transform: rotate(-22deg) translateY(1px); } }
@keyframes acv-feather { 0% { transform: rotate(30deg) translateX(0); } 50% { transform: rotate(28deg) translateX(2px); } 100% { transform: rotate(32deg) translateX(-1px); } }
@keyframes acv-blot { 0% { opacity: 0.4; transform: scale(0.8); } 50% { opacity: 0.7; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(0.9); } }
@keyframes acv-moth { 0% { transform: rotate(20deg) translate(0,0); } 25% { transform: rotate(25deg) translate(-10px, -15px); } 50% { transform: rotate(-10deg) translate(20px, -30px); } 75% { transform: rotate(15deg) translate(-5px, -10px); } 100% { transform: rotate(20deg) translate(0,0); } }

/* the-daydream-intro - seated figure at table, moonlight */

.scn-the-daydream-intro {
  background: linear-gradient(180deg, #1c1a2a 0%, #0f0d1a 100%), radial-gradient(ellipse at 30% 20%, #2a2645 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-the-daydream-intro .bg-night {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2e 0%, #10101a 100%);
}
.scn-the-daydream-intro .window {
  position: absolute; top: 10%; right: 15%; width: 30%; height: 50%; border: 6px solid #3a3a4e; border-radius: 8% 8% 4% 4%; background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 60%, #0a1a2a 100%); opacity: 0.2;
  animation: tdi-win 15s ease-in-out infinite alternate;
}
.scn-the-daydream-intro .moonshine {
  position: absolute; top: 15%; right: 20%; width: 20%; height: 40%; background: linear-gradient(135deg, rgba(200,210,230,0.15) 0%, transparent 100%); transform: rotate(-45deg); filter: blur(4px);
  animation: tdi-moon 12s ease-in-out infinite alternate;
}
.scn-the-daydream-intro .figure-seated {
  position: absolute; bottom: 12%; left: 30%; width: 70px; height: 110px; background: linear-gradient(180deg, #3a364a 0%, #1e1b2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: tdi-figure 8s ease-in-out infinite;
}
.scn-the-daydream-intro .table {
  position: absolute; bottom: 8%; left: 25%; width: 50%; height: 8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-the-daydream-intro .letter {
  position: absolute; bottom: 14%; left: 38%; width: 18%; height: 24%; background: linear-gradient(180deg, #d8c8b0 0%, #b8a890 100%); border-radius: 4% 4% 2% 2%; transform: rotate(2deg); box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: tdi-letter 18s ease-in-out infinite alternate;
}
.scn-the-daydream-intro .tear-drop {
  position: absolute; bottom: 22%; left: 42%; width: 6px; height: 8px; background: rgba(180,200,230,0.3); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: tdi-tear 9s ease-in-out infinite;
}
.scn-the-daydream-intro .shadow {
  position: absolute; bottom: 5%; left: 25%; width: 50%; height: 15%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); border-radius: 50%;
  animation: tdi-shadow 10s ease-in-out infinite alternate;
}
@keyframes tdi-win { 0% { opacity: 0.15; } 50% { opacity: 0.25; } 100% { opacity: 0.2; } }
@keyframes tdi-moon { 0% { opacity: 0.5; transform: rotate(-45deg) scale(0.95); } 50% { opacity: 0.7; transform: rotate(-40deg) scale(1.05); } 100% { opacity: 0.6; transform: rotate(-48deg) scale(0.98); } }
@keyframes tdi-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0.5px) rotate(-0.5deg); } }
@keyframes tdi-letter { 0% { transform: rotate(2deg) scale(1); } 50% { transform: rotate(4deg) scale(1.02); } 100% { transform: rotate(1deg) scale(0.98); } }
@keyframes tdi-tear { 0% { transform: translateY(0) scaleY(1); opacity: 0.3; } 50% { transform: translateY(3px) scaleY(1.3); opacity: 0.6; } 100% { transform: translateY(0) scaleY(1); opacity: 0.4; } }
@keyframes tdi-shadow { 0% { opacity: 0.3; transform: scaleY(0.9); } 50% { opacity: 0.5; transform: scaleY(1.1); } 100% { opacity: 0.4; transform: scaleY(0.95); } }

/* the-daydream-body - fireplace, bed, vision of woman */

.scn-the-daydream-body {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%), radial-gradient(ellipse at 50% 80%, #5a3a1a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-the-daydream-body .hearth-bg {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 60%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%);
}
.scn-the-daydream-body .bed-rail {
  position: absolute; bottom: 30%; left: 15%; width: 70%; height: 5%; background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.scn-the-daydream-body .figure-on-bed {
  position: absolute; bottom: 35%; left: 30%; width: 90px; height: 50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg);
  animation: tdb-body 10s ease-in-out infinite;
}
.scn-the-daydream-body .vision-woman {
  position: absolute; bottom: 45%; left: 40%; width: 60px; height: 100px; background: linear-gradient(180deg, #c8a090 0%, #a08070 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity: 0.4; filter: blur(2px);
  animation: tdb-vision 8s ease-in-out infinite alternate;
}
.scn-the-daydream-body .fire-glow {
  position: absolute; bottom: 5%; left: 10%; width: 60%; height: 50%; background: radial-gradient(ellipse at 30% 100%, #ffb050 0%, transparent 60%); mix-blend-mode: screen; opacity: 0.5;
  animation: tdb-glow 5s ease-in-out infinite alternate;
}
.scn-the-daydream-body .flame-a {
  position: absolute; bottom: 5%; left: 25%; width: 10%; height: 20%; background: linear-gradient(180deg, #ff8030 0%, #ff5510 100%); border-radius: 50% 50% 10% 10%; filter: blur(2px);
  animation: tdb-flame 3s ease-in-out infinite alternate;
}
.scn-the-daydream-body .flame-b {
  position: absolute; bottom: 3%; left: 32%; width: 8%; height: 16%; background: linear-gradient(180deg, #ffa050 0%, #ff7020 100%); border-radius: 50% 50% 10% 10%; filter: blur(2px);
  animation: tdb-flame 4s ease-in-out infinite alternate-reverse;
}
.scn-the-daydream-body .ember {
  position: absolute; bottom: 2%; left: 28%; width: 4px; height: 4px; background: #ffcc00; border-radius: 50%; box-shadow: 0 0 6px #ff8800;
  animation: tdb-ember 2s ease-in-out infinite;
}
.scn-the-daydream-body .warm-mist {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 30%; background: linear-gradient(180deg, rgba(255,180,80,0.1) 0%, transparent 100%); filter: blur(10px);
  animation: tdb-mist 12s ease-in-out infinite alternate;
}
@keyframes tdb-body { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(6deg) translateY(1px); } }
@keyframes tdb-vision { 0% { opacity: 0.3; transform: scale(0.95) translateY(0); } 50% { opacity: 0.5; transform: scale(1.05) translateY(-3px); } 100% { opacity: 0.4; transform: scale(0.98) translateY(2px); } }
@keyframes tdb-glow { 0% { opacity: 0.3; transform: scale(0.9); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(1); } }
@keyframes tdb-flame { 0% { transform: scaleY(0.8) translateY(0); } 50% { transform: scaleY(1.2) translateY(-2px); } 100% { transform: scaleY(0.9) translateY(1px); } }
@keyframes tdb-ember { 0% { transform: translateY(0) scale(0.8); opacity: 0.8; } 50% { transform: translateY(-10px) scale(1.2); opacity: 1; } 100% { transform: translateY(0) scale(0.9); opacity: 0.6; } }
@keyframes tdb-mist { 0% { opacity: 0.1; transform: translateX(0); } 50% { opacity: 0.3; transform: translateX(-10px); } 100% { opacity: 0.15; transform: translateX(5px); } }

/* Scene: Sancti Dominici Pallium - Dialogue */

.scn-sancti-dominici-pallium-dialogue {
  background: 
    linear-gradient(180deg, #1e1815 0%, #2a1f1a 40%, #0d0a08 100%),
    radial-gradient(ellipse at 50% 60%, #2a1f1a 0%, transparent 70%);
}
.scn-sancti-dominici-pallium-dialogue .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1f1a 60%, transparent 100%);
  animation: sdpd-wall 12s ease-in-out infinite alternate;
}
.scn-sancti-dominici-pallium-dialogue .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a100a 0%, #2a1a10 60%, #3a2a1a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.5);
}
.scn-sancti-dominici-pallium-dialogue .table {
  position: absolute; bottom: 22%; left: 25%; width: 50%; height: 10%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(5deg);
}
.scn-sancti-dominici-pallium-dialogue .candle-glow {
  position: absolute; bottom: 30%; left: 50%; width: 14px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 20%, #ffdd88 0%, #cc8840 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #cc8840, 0 0 80px 40px rgba(204,136,64,0.3);
  animation: sdpd-candle 3s ease-in-out infinite alternate;
}
.scn-sancti-dominici-pallium-dialogue .poet {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a100a 0%, #0d0805 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sdpd-sway-left 5s ease-in-out infinite;
}
.scn-sancti-dominici-pallium-dialogue .friend {
  position: absolute; bottom: 20%; right: 35%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #1a100a 0%, #0d0805 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sdpd-sway-right 5s ease-in-out infinite;
}
.scn-sancti-dominici-pallium-dialogue .book {
  position: absolute; bottom: 28%; left: 44%; width: 22px; height: 16px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
  animation: sdpd-book 12s ease-in-out infinite;
}
@keyframes sdpd-wall { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes sdpd-candle { 0% { opacity:0.8; box-shadow: 0 0 30px 15px #cc8840; } 50% { opacity:1; box-shadow: 0 0 50px 25px #ffdd88; } 100% { opacity:0.85; box-shadow: 0 0 35px 18px #cc8840; } }
@keyframes sdpd-sway-left { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-1px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes sdpd-sway-right { 0% { transform: rotate(2deg) translateY(0); } 25% { transform: rotate(-1deg) translateY(-1px); } 50% { transform: rotate(1deg) translateY(0); } 75% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes sdpd-book { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-1px); } 100% { transform: scale(1) translateY(0); } }

/* Scene: Sancti Dominici Pallium - Debate */

.scn-sancti-dominici-pallium-debate {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1c16 40%, #0d0805 100%),
    radial-gradient(ellipse at 50% 40%, #2a1c16 0%, transparent 70%);
}
.scn-sancti-dominici-pallium-debate .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a2820 0%, #2a1c16 60%, transparent 100%);
  animation: sdd-wall 15s ease-in-out infinite alternate;
}
.scn-sancti-dominici-pallium-debate .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #120c08 0%, #221610 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-sancti-dominici-pallium-debate .podium {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: sdd-podium 8s ease-in-out infinite alternate;
}
.scn-sancti-dominici-pallium-debate .figure-left {
  position: absolute; bottom: 18%; left: 30%; width: 32px; height: 55px;
  background: linear-gradient(180deg, #1a100a 0%, #0d0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sdd-figure-left 6s ease-in-out infinite;
}
.scn-sancti-dominici-pallium-debate .figure-right {
  position: absolute; bottom: 18%; right: 30%; width: 30px; height: 52px;
  background: linear-gradient(180deg, #1a100a 0%, #0d0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sdd-figure-right 6s ease-in-out infinite;
}
.scn-sancti-dominici-pallium-debate .paper-a {
  position: absolute; bottom: 28%; left: 20%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #c8b090 0%, #a08060 100%);
  border-radius: 2px;
  opacity: 0.9;
  animation: sdd-paper 20s linear infinite;
}
.scn-sancti-dominici-pallium-debate .paper-b {
  position: absolute; bottom: 32%; right: 18%; width: 18px; height: 12px;
  background: linear-gradient(135deg, #c8b090 0%, #a08060 100%);
  border-radius: 2px;
  opacity: 0.7;
  animation: sdd-paper 25s linear infinite reverse;
  animation-delay: -10s;
}
.scn-sancti-dominici-pallium-debate .paper-c {
  position: absolute; bottom: 25%; left: 50%; width: 16px; height: 10px;
  background: linear-gradient(135deg, #c8b090 0%, #a08060 100%);
  border-radius: 2px;
  opacity: 0.5;
  animation: sdd-paper 30s linear infinite;
  animation-delay: -15s;
}
@keyframes sdd-wall { 0% { opacity:0.65 } 50% { opacity:0.85 } 100% { opacity:0.7 } }
@keyframes sdd-podium { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes sdd-figure-left { 0% { transform: rotate(-3deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes sdd-figure-right { 0% { transform: rotate(3deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-2px); } 50% { transform: rotate(1deg) translateY(0); } 75% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes sdd-paper { 0% { transform: translate(0, 0) rotate(0deg) scale(1); opacity:0; } 10% { opacity:0.8; } 50% { transform: translate(50px, -30px) rotate(180deg) scale(0.8); } 90% { opacity:0.6; } 100% { transform: translate(100px, -60px) rotate(360deg) scale(0.5); opacity:0; } }

/* Scene: Sancti Dominici Pallium - Conclusion */

.scn-sancti-dominici-pallium-conclusion {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1c16 30%, #0d0805 100%),
    radial-gradient(ellipse at 50% 70%, #2a1c16 0%, transparent 60%);
}
.scn-sancti-dominici-pallium-conclusion .desk {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.5);
  transform: perspective(500px) rotateX(3deg);
  animation: sdc-desk 14s ease-in-out infinite alternate;
}
.scn-sancti-dominici-pallium-conclusion .chair {
  position: absolute; bottom: 10%; left: 25%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  animation: sdc-chair 16s ease-in-out infinite alternate;
}
.scn-sancti-dominici-pallium-conclusion .hand {
  position: absolute; bottom: 22%; left: 48%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #d0b090 0%, #a08060 100%);
  border-radius: 60% 60% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: sdc-hand 4s ease-in-out infinite;
}
.scn-sancti-dominici-pallium-conclusion .inkwell {
  position: absolute; bottom: 24%; left: 55%; width: 14px; height: 16px;
  background: radial-gradient(circle at 50% 40%, #2a1a10 0%, #0d0805 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: sdc-inkwell 18s ease-in-out infinite alternate;
}
.scn-sancti-dominici-pallium-conclusion .paper {
  position: absolute; bottom: 20%; left: 38%; width: 34px; height: 24px;
  background: linear-gradient(135deg, #d8c8b0 0%, #b8a080 100%);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: sdc-paper 8s ease-in-out infinite alternate;
}
.scn-sancti-dominici-pallium-conclusion .candle {
  position: absolute; bottom: 24%; left: 62%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #ffdd88 0%, #cc8840 40%, #8a5a2a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px 10px #cc8840, 0 0 40px 20px rgba(204,136,64,0.3);
  animation: sdc-candle 3s ease-in-out infinite alternate;
}
.scn-sancti-dominici-pallium-conclusion .shadow-layer {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, transparent 50%, rgba(0,0,0,0.2) 100%);
  pointer-events: none;
  animation: sdc-shadow 20s ease-in-out infinite alternate;
}
@keyframes sdc-desk { 0% { transform: perspective(500px) rotateX(3deg) translateY(0); } 50% { transform: perspective(500px) rotateX(3deg) translateY(-2px); } 100% { transform: perspective(500px) rotateX(3deg) translateY(0); } }
@keyframes sdc-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sdc-hand { 0% { transform: rotate(-10deg) translate(0, 0); } 25% { transform: rotate(-5deg) translate(2px, -1px); } 50% { transform: rotate(0deg) translate(4px, -2px); } 75% { transform: rotate(-5deg) translate(2px, -1px); } 100% { transform: rotate(-10deg) translate(0, 0); } }
@keyframes sdc-inkwell { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes sdc-paper { 0% { transform: scale(1) rotate(0deg); box-shadow: 0 4px 12px rgba(0,0,0,0.3); } 50% { transform: scale(1.01) rotate(2deg); box-shadow: 0 6px 16px rgba(0,0,0,0.4); } 100% { transform: scale(1) rotate(0deg); box-shadow: 0 4px 12px rgba(0,0,0,0.3); } }
@keyframes sdc-candle { 0% { opacity:0.9; box-shadow: 0 0 15px 8px #cc8840; } 50% { opacity:1; box-shadow: 0 0 25px 12px #ffdd88; } 100% { opacity:0.85; box-shadow: 0 0 18px 10px #cc8840; } }
@keyframes sdc-shadow { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

/* Scene: Sancti Dominici Pallium - Emblem */

.scn-sancti-dominici-pallium-emblem {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1c16 50%, #0d0805 100%),
    radial-gradient(ellipse at 50% 50%, #2a1c16 0%, transparent 80%);
}
.scn-sancti-dominici-pallium-emblem .backdrop {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, #4a3020 0%, transparent 70%);
  animation: sde-backdrop 20s ease-in-out infinite alternate;
}
.scn-sancti-dominici-pallium-emblem .shield {
  position: absolute; top: 25%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #5a3a2a 0%, #3a2018 50%, #2a1410 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.6), 0 10px 30px rgba(0,0,0,0.5);
  animation: sde-shield 10s ease-in-out infinite alternate;
}
.scn-sancti-dominici-pallium-emblem .lion {
  position: absolute; top: 32%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  clip-path: polygon(0 20%, 40% 0, 100% 20%, 100% 80%, 60% 100%, 0 80%);
  animation: sde-lion 8s ease-in-out infinite alternate;
}
.scn-sancti-dominici-pallium-emblem .cross {
  position: absolute; top: 45%; left: 50%; width: 6px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 2px rgba(200,176,144,0.4);
  animation: sde-cross 6s ease-in-out infinite alternate;
}
.scn-sancti-dominici-pallium-emblem .laurel-a {
  position: absolute; top: 38%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%);
  border-radius: 50% 10% 50% 10% / 50% 20% 50% 20%;
  transform: rotate(-30deg);
  animation: sde-laurel 14s ease-in-out infinite alternate;
}
.scn-sancti-dominici-pallium-emblem .laurel-b {
  position: absolute; top: 38%; right: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%);
  border-radius: 10% 50% 10% 50% / 20% 50% 20% 50%;
  transform: rotate(30deg);
  animation: sde-laurel 14s ease-in-out infinite alternate-reverse;
}
.scn-sancti-dominici-pallium-emblem .inner-glow {
  position: absolute; top: 30%; left: 50%; width: 60px; height: 70px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(200,176,144,0.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: sde-glow 5s ease-in-out infinite alternate;
}
@keyframes sde-backdrop { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes sde-shield { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes sde-lion { 0% { transform: translateX(-50%) scale(1) rotate(-2deg); } 50% { transform: translateX(-50%) scale(1.03) rotate(0deg); } 100% { transform: translateX(-50%) scale(1) rotate(2deg); } }
@keyframes sde-cross { 0% { transform: translateX(-50%) scaleY(1); opacity:0.8; } 50% { transform: translateX(-50%) scaleY(1.05); opacity:1; } 100% { transform: translateX(-50%) scaleY(1); opacity:0.85; } }
@keyframes sde-laurel { 0% { transform: scale(1) rotate(-30deg); } 50% { transform: scale(1.05) rotate(-28deg); } 100% { transform: scale(1) rotate(-30deg); } }
@keyframes sde-glow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

.scn-bridal-wanderer-roaming {
  background: linear-gradient(180deg, #6b4a6e 0%, #c87a5a 30%, #e8a060 50%, #d08050 70%, #3a4a5a 85%, #1a2a3a 100%),
              radial-gradient(ellipse at 50% 0%, #f0b070 0%, transparent 60%);
}
.scn-bridal-wanderer-roaming .dusk-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5a3a5e 0%, #b06a5a 40%, #d09050 70%, transparent 100%);
  animation: bwr-fade 14s ease-in-out infinite alternate;
}
.scn-bridal-wanderer-roaming .sun-glow {
  position: absolute; top: 18%; left: 50%; width: 120px; height: 120px;
  transform: translate(-50%, -20%);
  background: radial-gradient(circle, #f0c080 0%, #e8a050 40%, transparent 70%);
  border-radius: 50%;
  animation: bwr-glow 6s ease-in-out infinite alternate;
}
.scn-bridal-wanderer-roaming .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 48%;
  background: linear-gradient(180deg, #3a5a6a 0%, #1a2a3a 50%, #0a1a2a 100%);
  animation: bwr-water 20s ease-in-out infinite alternate;
}
.scn-bridal-wanderer-roaming .boat-hull {
  position: absolute; bottom: 38%; left: 50%; width: 100px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: bwr-rock 8s ease-in-out infinite;
}
.scn-bridal-wanderer-roaming .sail-fore {
  position: absolute; bottom: 52%; left: 40%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b090 100%);
  border-radius: 10% 40% 10% 40% / 20% 50% 20% 50%;
  box-shadow: -2px 0 6px rgba(0,0,0,.3);
  animation: bwr-sail-f 6s ease-in-out infinite alternate;
}
.scn-bridal-wanderer-roaming .sail-aft {
  position: absolute; bottom: 50%; left: 58%; width: 26px; height: 44px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #e8d8b8 0%, #c8a888 100%);
  border-radius: 40% 10% 40% 10% / 50% 20% 50% 20%;
  box-shadow: 2px 0 6px rgba(0,0,0,.3);
  animation: bwr-sail-a 7s ease-in-out infinite alternate;
}
.scn-bridal-wanderer-roaming .figures {
  position: absolute; bottom: 40%; left: 50%; width: 20px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: bwr-figures 4s ease-in-out infinite;
}
.scn-bridal-wanderer-roaming .ripple-a,
.scn-bridal-wanderer-roaming .ripple-b {
  position: absolute; bottom: 30%; width: 40px; height: 6px;
  background: radial-gradient(ellipse, rgba(200,160,120,.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-bridal-wanderer-roaming .ripple-a { left: 30%; animation: bwr-ripple 5s ease-in-out infinite; }
.scn-bridal-wanderer-roaming .ripple-b { right: 30%; animation: bwr-ripple 6s ease-in-out infinite 1.5s; }

@keyframes bwr-fade { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes bwr-glow { 0% { transform: translate(-50%, -20%) scale(1) } 50% { transform: translate(-50%, -25%) scale(1.08) } 100% { transform: translate(-50%, -18%) scale(.95) } }
@keyframes bwr-water { 0% { background-position: 0 0 } 50% { background-position: 20% 5% } 100% { background-position: 40% 0 } }
@keyframes bwr-rock { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-48%) rotate(1.5deg) } 100% { transform: translateX(-52%) rotate(-1deg) } }
@keyframes bwr-sail-f { 0% { transform: translateX(-50%) rotate(-3deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes bwr-sail-a { 0% { transform: translateX(-50%) rotate(2deg) } 50% { transform: translateX(-50%) rotate(-2deg) } 100% { transform: translateX(-50%) rotate(1deg) } }
@keyframes bwr-figures { 0% { transform: translateX(-50%) translateY(0) rotate(0) } 50% { transform: translateX(-50%) translateY(-1px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes bwr-ripple { 0% { transform: scale(1); opacity: .3 } 50% { transform: scale(1.8); opacity: .1 } 100% { transform: scale(1); opacity: .3 } }

.scn-infant-death-epitaph {
  background: linear-gradient(135deg, #2a2218 0%, #3a2a1a 30%, #2a1a0a 60%, #1a1208 100%),
              radial-gradient(ellipse at 30% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-infant-death-epitaph .dim-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(50,30,10,.6) 0%, rgba(30,20,10,.8) 100%);
  animation: ide-wall 10s ease-in-out infinite alternate;
}
.scn-infant-death-epitaph .window-light {
  position: absolute; top: 10%; right: 12%; width: 40px; height: 60px;
  background: rgba(200,180,160,.15);
  border-radius: 4px;
  box-shadow: 0 0 40px 20px rgba(200,180,160,.1);
  animation: ide-light 6s ease-in-out infinite alternate;
}
.scn-infant-death-epitaph .mother-torso {
  position: absolute; bottom: 15%; left: 35%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: ide-mother 5s ease-in-out infinite;
}
.scn-infant-death-epitaph .mother-arm {
  position: absolute; bottom: 20%; left: 42%; width: 16px; height: 40px;
  transform: rotate(-20deg); transform-origin: top center;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ide-arm 4s ease-in-out infinite;
}
.scn-infant-death-epitaph .infant {
  position: absolute; bottom: 22%; left: 48%; width: 24px; height: 28px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.3);
  animation: ide-infant 3s ease-in-out infinite alternate;
}
.scn-infant-death-epitaph .candle {
  position: absolute; bottom: 40%; left: 55%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #e8d0a0 0%, #a08050 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(2deg);
  animation: ide-candle 4s ease-in-out infinite;
}
.scn-infant-death-epitaph .candle-halo {
  position: absolute; bottom: 52%; left: 55%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(240,200,120,.5) 0%, rgba(240,200,120,.2) 40%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: ide-flame 2s ease-in-out infinite alternate;
}
.scn-infant-death-epitaph .shadow-drape {
  position: absolute; inset: auto 0 0 0; height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(10,8,4,.6) 100%);
  animation: ide-shadow 8s ease-in-out infinite alternate;
}

@keyframes ide-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ide-light { 0% { opacity: .4 } 50% { opacity: .7 } 100% { opacity: .5 } }
@keyframes ide-mother { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ide-arm { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-22deg) } 100% { transform: rotate(-18deg) } }
@keyframes ide-infant { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(.98) } }
@keyframes ide-candle { 0% { opacity: .9; transform: rotate(2deg) } 50% { opacity: 1; transform: rotate(4deg) } 100% { opacity: .85; transform: rotate(0) } }
@keyframes ide-flame { 0% { transform: translate(-50%, -50%) scale(1); opacity: .6 } 50% { transform: translate(-50%, -55%) scale(1.3); opacity: .9 } 100% { transform: translate(-50%, -50%) scale(.9); opacity: .7 } }
@keyframes ide-shadow { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }

.scn-catechism-question-ref {
  background: linear-gradient(135deg, #e8dcc8 0%, #d0c0a8 50%, #b8a890 100%),
              radial-gradient(ellipse at 70% 40%, #f0e8d8 0%, transparent 60%);
}
.scn-catechism-question-ref .bright-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(240,235,220,.9) 0%, rgba(210,200,180,.8) 100%);
  animation: cqr-wall 12s ease-in-out infinite alternate;
}
.scn-catechism-question-ref .window-frame {
  position: absolute; top: 8%; right: 10%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #705030 0%, #4a3020 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: cqr-frame 8s ease-in-out infinite alternate;
}
.scn-catechism-question-ref .window-glass {
  position: absolute; top: 10%; right: 12%; width: 44px; height: 64px;
  background: linear-gradient(135deg, rgba(200,220,240,.6) 0%, rgba(160,190,220,.4) 100%);
  border-radius: 2px;
  box-shadow: 0 0 30px 10px rgba(180,200,230,.3);
  animation: cqr-glass 6s ease-in-out infinite alternate;
}
.scn-catechism-question-ref .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 6px 20px rgba(0,0,0,.4);
  animation: cqr-desk 10s ease-in-out infinite alternate;
}
.scn-catechism-question-ref .seated-figure {
  position: absolute; bottom: 28%; left: 40%; width: 34px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cqr-figure 5s ease-in-out infinite;
}
.scn-catechism-question-ref .open-book {
  position: absolute; bottom: 22%; left: 42%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a8 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  transform: perspective(60px) rotateX(10deg);
  animation: cqr-book 7s ease-in-out infinite alternate;
}
.scn-catechism-question-ref .quill {
  position: absolute; bottom: 25%; left: 50%; width: 4px; height: 24px;
  background: linear-gradient(180deg, #f0e8d0 0%, #c8b8a0 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: cqr-quill 3s ease-in-out infinite;
}
.scn-catechism-question-ref .sunbeam {
  position: absolute; top: 0; right: 10%; width: 20px; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,200,.15) 0%, rgba(255,240,200,.05) 100%);
  transform: rotate(-5deg);
  filter: blur(6px);
  animation: cqr-beam 8s ease-in-out infinite alternate;
}

@keyframes cqr-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .95 } }
@keyframes cqr-frame { 0% { transform: scale(1) } 50% { transform: scale(1.01) } 100% { transform: scale(.99) } }
@keyframes cqr-glass { 0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .6 } }
@keyframes cqr-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes cqr-figure { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cqr-book { 0% { transform: perspective(60px) rotateX(10deg) } 50% { transform: perspective(60px) rotateX(12deg) } 100% { transform: perspective(60px) rotateX(8deg) } }
@keyframes cqr-quill { 0% { transform: rotate(15deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(12deg) } }
@keyframes cqr-beam { 0% { opacity: .4 } 50% { opacity: .8 } 100% { opacity: .5 } }

.scn-childish-wings-bird {
  background: linear-gradient(180deg, #2a3a5a 0%, #5a7a9a 30%, #c0a070 60%, #e8c080 80%, #f0d8a0 100%),
              radial-gradient(ellipse at 50% 80%, #f0d8a0 0%, transparent 60%);
}
.scn-childish-wings-bird .dawn-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a4a6a 0%, #6a8aaa 40%, #b0a070 70%, transparent 100%);
  animation: cwb-sky 15s ease-in-out infinite alternate;
}
.scn-childish-wings-bird .sunrise {
  position: absolute; bottom: 32%; left: 50%; width: 80px; height: 80px;
  transform: translate(-50%, 50%);
  background: radial-gradient(circle, #f0d0a0 0%, #e8b060 40%, transparent 70%);
  border-radius: 50%;
  animation: cwb-sun 8s ease-in-out infinite alternate;
}
.scn-childish-wings-bird .cloud-a,
.scn-childish-wings-bird .cloud-b {
  position: absolute; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,220,180,.4) 0%, rgba(255,220,180,.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
}
.scn-childish-wings-bird .cloud-a { top: 15%; left: 10%; animation: cwb-drift-a 40s linear infinite; }
.scn-childish-wings-bird .cloud-b { top: 25%; right: 5%; width: 60px; height: 16px; animation: cwb-drift-b 50s linear infinite reverse; }
.scn-childish-wings-bird .bird {
  position: absolute; top: 30%; left: 15%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: cwb-bird 6s ease-in-out infinite;
}
.scn-childish-wings-bird .figure-ground {
  position: absolute; bottom: 22%; left: 50%; width: 18px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cwb-figure 5s ease-in-out infinite;
}
.scn-childish-wings-bird .figure-up {
  position: absolute; bottom: 34%; left: 50%; width: 14px; height: 18px;
  transform: translateX(-50%) rotate(-10deg);
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  animation: cwb-fig-arm 4s ease-in-out infinite;
}
.scn-childish-wings-bird .shadow-wings {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, rgba(40,30,20,.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: cwb-wings 3s ease-in-out infinite alternate;
}

@keyframes cwb-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes cwb-sun { 0% { transform: translate(-50%, 50%) scale(.95); opacity: .8 } 50% { transform: translate(-50%, 45%) scale(1.08); opacity: 1 } 100% { transform: translate(-50%, 50%) scale(1); opacity: .9 } }
@keyframes cwb-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes cwb-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-130vw) } }
@keyframes cwb-bird { 0% { transform: translate(0, 0) rotate(-2deg) } 50% { transform: translate(30px, -10px) rotate(3deg) } 100% { transform: translate(60px, 0) rotate(-1deg) } }
@keyframes cwb-figure { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes cwb-fig-arm { 0% { transform: translateX(-50%) rotate(-10deg) } 50% { transform: translateX(-50%) rotate(-30deg) } 100% { transform: translateX(-50%) rotate(-10deg) } }
@keyframes cwb-wings { 0% { transform: translateX(-50%) scale(1) rotate(0) } 50% { transform: translateX(-50%) scale(1.6) rotate(5deg) } 100% { transform: translateX(-50%) scale(1) rotate(0) } }

/* ===== scene 1: outward-forms-inner-life ===== */

.scn-outward-forms-inner-life {
  background:
    radial-gradient(ellipse at 60% 30%, #6b7b8b 0%, transparent 50%),
    linear-gradient(180deg, #5a687a 0%, #3a4a5a 50%, #2a3a4a 100%);
}
.scn-outward-forms-inner-life .sky-overcast {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 100%);
  animation: ol1-sky 15s ease-in-out infinite alternate;
}
.scn-outward-forms-inner-life .window-frame {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 60%;
  background: #2a2a2a;
  border: 4px solid #4a3a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-outward-forms-inner-life .window-glass {
  position: absolute; bottom: 22%; left: 27%; width: 46%; height: 56%;
  background: linear-gradient(135deg, rgba(180,200,220,0.3), rgba(120,140,160,0.2));
  border-radius: 2px;
  animation: ol1-glass 12s ease-in-out infinite;
}
.scn-outward-forms-inner-life .figure-outward {
  position: absolute; bottom: 28%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ol1-figure 6s ease-in-out infinite;
}
.scn-outward-forms-inner-life .lamp-glow {
  position: absolute; bottom: 30%; left: 60%; width: 12px; height: 12px;
  background: radial-gradient(circle, #f0d080 0%, #c09040 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240,208,128,0.6);
  animation: ol1-lamp 4s ease-in-out infinite alternate;
}
.scn-outward-forms-inner-life .book-shelf {
  position: absolute; bottom: 20%; left: 10%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.5);
  animation: ol1-shelf 20s linear infinite;
}
.scn-outward-forms-inner-life .rain-streak.a,
.scn-outward-forms-inner-life .rain-streak.b {
  position: absolute; top: -5%; width: 2px; height: 30px;
  background: rgba(200,220,240,0.3);
  border-radius: 1px;
}
.scn-outward-forms-inner-life .rain-streak.a {
  left: 30%;
  animation: ol1-rain 2s linear infinite;
}
.scn-outward-forms-inner-life .rain-streak.b {
  left: 60%;
  animation: ol1-rain 2.5s linear infinite 1s;
}

@keyframes ol1-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes ol1-glass {
  0% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.01) translateY(-1px); opacity: 0.8; }
  100% { transform: scale(1); opacity: 0.6; }
}
@keyframes ol1-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ol1-lamp {
  0% { box-shadow: 0 0 20px 5px rgba(240,208,128,0.4); }
  50% { box-shadow: 0 0 40px 15px rgba(255,224,160,0.8); }
  100% { box-shadow: 0 0 20px 5px rgba(240,208,128,0.4); }
}
@keyframes ol1-shelf {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ol1-rain {
  0% { transform: translateY(-30px); opacity: 0; }
  10% { opacity: 0.3; }
  90% { opacity: 0.3; }
  100% { transform: translateY(120vh); opacity: 0; }
}

/* ===== scene 2: brocken-vision-vanishes ===== */

.scn-brocken-vision-vanishes {
  background:
    radial-gradient(ellipse at 50% 100%, #7a5a6a 0%, transparent 60%),
    linear-gradient(180deg, #6a7a8a 0%, #4a3a4a 30%, #2a1a2a 100%);
}
.scn-brocken-vision-vanishes .sunrise-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b08070 0%, #806070 30%, #4a3a4a 100%);
  animation: bv2-sky 25s ease-in-out infinite alternate;
}
.scn-brocken-vision-vanishes .mountain-peak {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(135deg, #4a4a5a 0%, #2a2a3a 100%);
  clip-path: polygon(50% 0%, 70% 50%, 90% 100%, 10% 100%, 30% 50%);
  animation: bv2-mtn 30s linear infinite;
}
.scn-brocken-vision-vanishes .tree-line {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 0 0;
  animation: bv2-trees 18s ease-in-out infinite;
}
.scn-brocken-vision-vanishes .mist-haze.a,
.scn-brocken-vision-vanishes .mist-haze.b {
  position: absolute; top: 20%; width: 100%; height: 15%;
  background: linear-gradient(180deg, rgba(200,180,200,0.3) 0%, transparent 100%);
  filter: blur(8px);
}
.scn-brocken-vision-vanishes .mist-haze.a {
  animation: bv2-mist 40s linear infinite;
}
.scn-brocken-vision-vanishes .mist-haze.b {
  animation: bv2-mist 45s linear infinite 10s;
  height: 20%; top: 30%;
}
.scn-brocken-vision-vanishes .figure-summit {
  position: absolute; bottom: 48%; left: 46%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bv2-fig 7s ease-in-out infinite;
}
.scn-brocken-vision-vanishes .bird-silhouette {
  position: absolute; top: 25%; left: 60%; width: 24px; height: 8px;
  background: #1a1a1a;
  border-radius: 50%;
  filter: blur(1px);
  animation: bv2-bird 12s linear infinite;
}
.scn-brocken-vision-vanishes .cloud-wisp {
  position: absolute; top: 15%; left: 10%; width: 90px; height: 12px;
  background: rgba(220,200,210,0.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: bv2-wisp 50s linear infinite;
}

@keyframes bv2-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes bv2-mtn {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.98) translateY(2px); }
  100% { transform: scaleX(1); }
}
@keyframes bv2-trees {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes bv2-mist {
  0% { transform: translateX(0); opacity: 0.3; }
  50% { transform: translateX(40px); opacity: 0.5; }
  100% { transform: translateX(80px); opacity: 0.3; }
}
@keyframes bv2-fig {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(4px) rotate(3deg); }
  66% { transform: translateX(-4px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bv2-bird {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-30px) translateY(-15px); }
  100% { transform: translateX(-60px) translateY(0); }
}
@keyframes bv2-wisp {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(100px) scale(1.2); opacity: 0.2; }
  100% { transform: translateX(200px) scale(1); }
}

/* ===== scene 3: hill-hermit-impulse ===== */

.scn-hill-hermit-impulse {
  background:
    radial-gradient(ellipse at 70% 50%, #7a6a5a 0%, transparent 60%),
    linear-gradient(135deg, #8a7a6a 0%, #5a4a3a 50%, #3a2a1a 100%);
}
.scn-hill-hermit-impulse .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
}
.scn-hill-hermit-impulse .window-out {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(180deg, #7a8a6a 0%, #4a5a3a 100%);
  border: 6px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-hill-hermit-impulse .hills-beyond {
  position: absolute; top: 30%; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 60% 40% 0 0;
  animation: hh3-hills 20s ease-in-out infinite alternate;
}
.scn-hill-hermit-impulse .hermit-figure {
  position: absolute; bottom: 20%; left: 38%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: hh3-fig 8s ease-in-out infinite;
}
.scn-hill-hermit-impulse .wooden-table {
  position: absolute; bottom: 12%; left: 30%; width: 40%; height: 6%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-hill-hermit-impulse .candle-glow {
  position: absolute; bottom: 22%; left: 42%; width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 100%, #ffe080 0%, #c09040 70%);
  border-radius: 2px;
  box-shadow: 0 0 30px 10px rgba(255,224,128,0.7);
  animation: hh3-candle 3s ease-in-out infinite alternate;
}
.scn-hill-hermit-impulse .candle-wax {
  position: absolute; bottom: 18%; left: 43%; width: 8px; height: 6px;
  background: linear-gradient(180deg, #e0c8a0 0%, #c0a080 100%);
  border-radius: 1px;
}
.scn-hill-hermit-impulse .book-stack {
  position: absolute; bottom: 13%; left: 55%; width: 25%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: hh3-books 15s linear infinite;
}

@keyframes hh3-hills {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes hh3-fig {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hh3-candle {
  0% { box-shadow: 0 0 15px 5px rgba(255,224,128,0.5); transform: scale(1); }
  50% { box-shadow: 0 0 40px 15px rgba(255,224,128,0.9); transform: scale(1.05); }
  100% { box-shadow: 0 0 15px 5px rgba(255,224,128,0.5); transform: scale(1); }
}
@keyframes hh3-books {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

/* ===== scene 4: thoughts-of-home-nature ===== */

.scn-thoughts-of-home-nature {
  background:
    radial-gradient(ellipse at 30% 20%, #2a3a5a 0%, transparent 70%),
    linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #1a1a2a 100%);
}
.scn-thoughts-of-home-nature .dim-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
}
.scn-thoughts-of-home-nature .night-window {
  position: absolute; top: 15%; left: 25%; width: 50%; height: 60%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border: 4px solid #2a2a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
  animation: th4-window 20s ease-in-out infinite alternate;
}
.scn-thoughts-of-home-nature .desk-surface {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-thoughts-of-home-nature .open-book {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 15%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: th4-book 12s ease-in-out infinite;
}
.scn-thoughts-of-home-nature .lamp-soft {
  position: absolute; bottom: 25%; left: 55%; width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 100%, #f0c070 0%, #a08040 70%);
  border-radius: 4px;
  box-shadow: 0 0 40px 20px rgba(240,192,112,0.4);
  animation: th4-lamp 5s ease-in-out infinite alternate;
}
.scn-thoughts-of-home-nature .chair-back {
  position: absolute; bottom: 10%; left: 32%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: th4-chair 25s linear infinite;
}
.scn-thoughts-of-home-nature .curtain-left,
.scn-thoughts-of-home-nature .curtain-right {
  position: absolute; top: 10%; width: 15%; height: 70%;
  background: linear-gradient(90deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 4px;
}
.scn-thoughts-of-home-nature .curtain-left {
  left: 8%;
  animation: th4-curtain-l 18s ease-in-out infinite;
}
.scn-thoughts-of-home-nature .curtain-right {
  right: 8%;
  animation: th4-curtain-r 18s ease-in-out infinite;
}
.scn-thoughts-of-home-nature .dust-mote {
  position: absolute; top: 30%; left: 40%; width: 4px; height: 4px;
  background: rgba(255,220,180,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: th4-dust 8s linear infinite;
}

@keyframes th4-window {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes th4-book {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes th4-lamp {
  0% { box-shadow: 0 0 20px 10px rgba(240,192,112,0.3); }
  50% { box-shadow: 0 0 60px 30px rgba(240,192,112,0.6); }
  100% { box-shadow: 0 0 20px 10px rgba(240,192,112,0.3); }
}
@keyframes th4-chair {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes th4-curtain-l {
  0% { transform: translateX(0); }
  50% { transform: translateX(-6px); }
  100% { transform: translateX(0); }
}
@keyframes th4-curtain-r {
  0% { transform: translateX(0); }
  50% { transform: translateX(6px); }
  100% { transform: translateX(0); }
}
@keyframes th4-dust {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  20% { opacity: 0.4; }
  80% { opacity: 0.4; }
  100% { transform: translateY(-40px) translateX(20px); opacity: 0; }
}

/* tears-grateful-people-virtues */

.scn-tears-grateful-people-virtues {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 30%, #3a2a3e 60%, #2e1e2e 100%),
              radial-gradient(ellipse at 50% 80%, #4a3a4e 0%, transparent 70%);
}
.scn-tears-grateful-people-virtues .bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 60%, #0e0e1a 0%, #1a1a2e 100%);
  animation: tpv-bg 20s ease-in-out infinite alternate;
}
.scn-tears-grateful-people-virtues .pillar-l {
  position: absolute; left: 5%; top: 10%; width: 8%; height: 70%;
  background: linear-gradient(90deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 4px; box-shadow: 4px 0 8px rgba(0,0,0,0.6);
}
.scn-tears-grateful-people-virtues .pillar-r {
  position: absolute; right: 5%; top: 10%; width: 8%; height: 70%;
  background: linear-gradient(90deg, #2a1a2a 0%, #3a2a3a 100%);
  border-radius: 4px; box-shadow: -4px 0 8px rgba(0,0,0,0.6);
}
.scn-tears-grateful-people-virtues .throne {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 35%; height: 50%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.7), inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: tpv-throne 8s ease-in-out infinite;
}
.scn-tears-grateful-people-virtues .ruler {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 12%; height: 30%;
  background: radial-gradient(ellipse 80% 60% at 50% 80%, #3a2a3a 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tpv-ruler 6s ease-in-out infinite alternate;
}
.scn-tears-grateful-people-virtues .window {
  position: absolute; left: 34%; top: 15%; width: 12%; height: 20%;
  background: radial-gradient(circle at 50% 50%, #c8a060 0%, #8a6030 60%, #4a3018 100%);
  border: 4px solid #2a1a1a; border-radius: 4px;
  box-shadow: 0 0 30px 10px #8a6030, 0 0 60px 20px rgba(138,96,48,0.3);
  animation: tpv-window 4s ease-in-out infinite alternate;
}
.scn-tears-grateful-people-virtues .candle {
  position: absolute; bottom: 22%; left: 20%; width: 2%; height: 6%;
  background: linear-gradient(0deg, #4a2a1a 0%, #8a4a2a 100%);
  border-radius: 2px; box-shadow: 0 -4px 15px 5px #c06a30;
  animation: tpv-candle 3s ease-in-out infinite alternate;
}
.scn-tears-grateful-people-virtues .subject {
  position: absolute; bottom: 18%; left: 20%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tpv-subject 5s ease-in-out infinite;
}
.scn-tears-grateful-people-virtues .dust {
  position: absolute; top: 20%; left: 30%; width: 2%; height: 2%;
  background: rgba(200,160,96,0.3); border-radius: 50%;
  filter: blur(2px);
  animation: tpv-dust 15s linear infinite;
}
@keyframes tpv-bg {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes tpv-throne {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.01) translateY(-2px); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes tpv-ruler {
  0% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(0deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(1deg) translateY(0); }
}
@keyframes tpv-window {
  0% { box-shadow: 0 0 20px 5px #8a6030, 0 0 40px 10px rgba(138,96,48,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 12px #c8a060, 0 0 80px 24px rgba(200,160,96,0.4); opacity: 1; }
  100% { box-shadow: 0 0 25px 7px #8a6030, 0 0 50px 14px rgba(138,96,48,0.3); opacity: 0.85; }
}
@keyframes tpv-candle {
  0% { transform: translateY(0) scaleY(1); opacity: 0.9; }
  50% { transform: translateY(-1px) scaleY(1.1); opacity: 1; }
  100% { transform: translateY(0) scaleY(1); opacity: 0.95; }
}
@keyframes tpv-subject {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(4px) translateY(0) rotate(0deg); }
  75% { transform: translateX(2px) translateY(1px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes tpv-dust {
  0% { transform: translate(0,0) scale(1); opacity: 0.4; }
  50% { transform: translate(20px, -30px) scale(1.5); opacity: 0.8; }
  100% { transform: translate(40px, -60px) scale(0.5); opacity: 0; }
}

/* tears-grateful-people-consolation */

.scn-tears-grateful-people-consolation {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1e2e 50%, #3a2a3e 100%),
              radial-gradient(ellipse at 50% 70%, #2a2a4e 0%, transparent 70%);
}
.scn-tears-grateful-people-consolation .bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 50%, #0e0e1a 0%, #1a1a2e 100%);
  animation: tpc-bg 18s ease-in-out infinite alternate;
}
.scn-tears-grateful-people-consolation .bench {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 10px; box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: tpc-bench 7s ease-in-out infinite;
}
.scn-tears-grateful-people-consolation .figure1 {
  position: absolute; bottom: 20%; left: 35%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tpc-figure1 5s ease-in-out infinite alternate;
}
.scn-tears-grateful-people-consolation .figure2 {
  position: absolute; bottom: 22%; left: 52%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #2e1e2e 0%, #1a0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tpc-figure2 6s ease-in-out infinite alternate;
}
.scn-tears-grateful-people-consolation .halo {
  position: absolute; top: 20%; left: 50%; transform: translateX(-50%);
  width: 20%; height: 20%;
  background: radial-gradient(circle, rgba(200,180,140,0.3) 0%, rgba(200,180,140,0) 70%);
  border-radius: 50%;
  animation: tpc-halo 4s ease-in-out infinite alternate;
}
.scn-tears-grateful-people-consolation .orb {
  position: absolute; bottom: 35%; left: 45%; width: 4%; height: 4%;
  background: radial-gradient(circle, #d0c090 0%, #b8a070 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #b8a070;
  animation: tpc-orb 3s ease-in-out infinite alternate;
}
.scn-tears-grateful-people-consolation .shadow {
  position: absolute; bottom: 14%; left: 32%; width: 36%; height: 4%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: tpc-shadow 7s ease-in-out infinite;
}
@keyframes tpc-bg {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes tpc-bench {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes tpc-figure1 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes tpc-figure2 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes tpc-halo {
  0% { transform: translateX(-50%) scale(0.9); opacity: 0.5; }
  50% { transform: translateX(-50%) scale(1.1); opacity: 0.8; }
  100% { transform: translateX(-50%) scale(1); opacity: 0.6; }
}
@keyframes tpc-orb {
  0% { transform: translateY(0) scale(1); opacity: 0.7; }
  50% { transform: translateY(-3px) scale(1.2); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.8; }
}
@keyframes tpc-shadow {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(0.95); }
  100% { opacity: 0.5; transform: scaleX(1); }
}

/* tears-grateful-people-britannia */

.scn-tears-grateful-people-britannia {
  background: linear-gradient(180deg, #1e1e3e 0%, #2a1a3e 40%, #3a2a4e 100%),
              radial-gradient(ellipse at 50% 60%, #2a2a4e 0%, transparent 70%);
}
.scn-tears-grateful-people-britannia .bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 40%, #0e0e1a 0%, #1a1a2e 100%);
  animation: tpb-bg 22s ease-in-out infinite alternate;
}
.scn-tears-grateful-people-britannia .pedestal {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 15%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2e 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.5);
}
.scn-tears-grateful-people-britannia .britannia {
  position: absolute; bottom: 22%; left: 38%; width: 24%; height: 35%;
  background: linear-gradient(180deg, #2e1e3e 0%, #1a0e2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tpb-britannia 7s ease-in-out infinite alternate;
}
.scn-tears-grateful-people-britannia .trident {
  position: absolute; bottom: 40%; left: 58%; width: 4%; height: 30%;
  background: linear-gradient(180deg, #8a7a60 0%, #4a3a2a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: tpb-trident 5s ease-in-out infinite alternate;
}
.scn-tears-grateful-people-britannia .shield {
  position: absolute; bottom: 25%; left: 30%; width: 14%; height: 18%;
  background: radial-gradient(ellipse at 50% 50%, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 30% 30%; border: 2px solid #4a3a2a;
  animation: tpb-shield 6s ease-in-out infinite;
}
.scn-tears-grateful-people-britannia .veil {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, rgba(100,80,120,0.3) 0%, rgba(50,40,60,0.1) 100%);
  border-radius: 40% 60% 50% 50% / 60% 40% 60% 40%;
  filter: blur(4px);
  animation: tpb-veil 10s ease-in-out infinite alternate;
}
.scn-tears-grateful-people-britannia .tear {
  position: absolute; bottom: 30%; left: 45%; width: 3%; height: 4%;
  background: radial-gradient(circle, #a0b8d8 0%, #6080a0 70%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px 4px rgba(96,128,160,0.4);
  animation: tpb-tear 4s ease-in-out infinite;
}
@keyframes tpb-bg {
  0% { opacity: 0.65; }
  50% { opacity: 0.85; }
  100% { opacity: 0.7; }
}
@keyframes tpb-britannia {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tpb-trident {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes tpb-shield {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(2px) scale(1.02); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes tpb-veil {
  0% { transform: translateX(0) rotate(-2deg); opacity: 0.3; }
  50% { transform: translateX(3px) rotate(2deg); opacity: 0.5; }
  100% { transform: translateX(-2px) rotate(-1deg); opacity: 0.35; }
}
@keyframes tpb-tear {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(10px) scale(1.2); opacity: 1; }
  100% { transform: translateY(20px) scale(0.6); opacity: 0; }
}

/* tears-grateful-people-praise */

.scn-tears-grateful-people-praise {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 40%, #2a2a3e 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a4e 0%, transparent 70%);
}
.scn-tears-grateful-people-praise .bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 70%, #0a0a1a 0%, #1a1a2e 100%);
}
.scn-tears-grateful-people-praise .beam {
  position: absolute; top: 0; left: 40%; width: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(200,180,140,0.3) 0%, rgba(200,180,140,0) 80%);
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%);
  animation: tpp-beam 6s ease-in-out infinite alternate;
}
.scn-tears-grateful-people-praise .halo {
  position: absolute; top: 5%; left: 50%; transform: translateX(-50%);
  width: 30%; height: 30%;
  background: radial-gradient(circle, rgba(220,200,160,0.4) 0%, rgba(220,200,160,0) 70%);
  border-radius: 50%;
  animation: tpp-halo 8s ease-in-out infinite alternate;
}
.scn-tears-grateful-people-praise .steps {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.6);
}
.scn-tears-grateful-people-praise .figure1 {
  position: absolute; bottom: 14%; left: 30%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tpp-figure1 5s ease-in-out infinite alternate;
}
.scn-tears-grateful-people-praise .figure2 {
  position: absolute; bottom: 16%; left: 45%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #2e1e2e 0%, #1a0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tpp-figure2 6s ease-in-out infinite alternate-reverse;
}
.scn-tears-grateful-people-praise .figure3 {
  position: absolute; bottom: 14%; left: 60%; width: 10%; height: 24%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tpp-figure3 4.5s ease-in-out infinite alternate;
}
@keyframes tpp-beam {
  0% { opacity: 0.3; transform: scaleY(0.9); }
  50% { opacity: 0.6; transform: scaleY(1.05); }
  100% { opacity: 0.4; transform: scaleY(0.95); }
}
@keyframes tpp-halo {
  0% { transform: translateX(-50%) scale(0.8); opacity: 0.3; }
  50% { transform: translateX(-50%) scale(1.1); opacity: 0.7; }
  100% { transform: translateX(-50%) scale(0.9); opacity: 0.4; }
}
@keyframes tpp-figure1 {
  0% { transform: translateX(0) rotate(-3deg) translateY(0); }
  50% { transform: translateX(0) rotate(0deg) translateY(-2px); }
  100% { transform: translateX(0) rotate(3deg) translateY(0); }
}
@keyframes tpp-figure2 {
  0% { transform: translateX(0) rotate(2deg) translateY(0); }
  50% { transform: translateX(0) rotate(-1deg) translateY(-1px); }
  100% { transform: translateX(0) rotate(-2deg) translateY(0); }
}
@keyframes tpp-figure3 {
  0% { transform: translateX(0) rotate(0deg) translateY(0); }
  50% { transform: translateX(0) rotate(3deg) translateY(-2px); }
  100% { transform: translateX(0) rotate(-3deg) translateY(0); }
}

.scn-for-market-clock-impromptu {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #0d0d1a 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, transparent 70%);
}
.scn-for-market-clock-impromptu .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #0d0d1a 100%);
  opacity: 0.8; animation: f1-bg 10s ease-in-out infinite alternate;
}
.scn-for-market-clock-impromptu .clock-face {
  position: absolute; bottom: 40%; left: 50%; width: 120px; height: 120px;
  transform: translate(-50%, 0); background: radial-gradient(circle at 50% 40%, #c8a060 0%, #8a6a3a 80%);
  border-radius: 50%; border: 6px solid #5a3a1a; box-shadow: 0 0 40px 10px rgba(200,160,96,0.3);
  animation: f1-clock 6s ease-in-out infinite;
}
.scn-for-market-clock-impromptu .pendulum {
  position: absolute; bottom: 30%; left: 50%; width: 4px; height: 80px;
  transform-origin: top center; background: linear-gradient(180deg, #b8860b 0%, #5a3a1a 100%);
  border-radius: 2px; animation: f1-pendulum 2s ease-in-out infinite alternate;
}
.scn-for-market-clock-impromptu .pendulum::after {
  content: ''; position: absolute; bottom: -10px; left: -6px; width: 16px; height: 16px;
  background: radial-gradient(circle at 30% 30%, #d4a040 0%, #8a5a20 100%); border-radius: 50%;
}
.scn-for-market-clock-impromptu .dot {
  position: absolute; bottom: 45%; left: 50%; width: 8px; height: 8px;
  transform: translate(-50%, 0); background: radial-gradient(circle, #ffd700 0%, #b8860b 100%);
  border-radius: 50%; box-shadow: 0 0 12px 4px rgba(255,215,0,0.6); animation: f1-dot 3s ease-in-out infinite;
}
.scn-for-market-clock-impromptu .hand {
  position: absolute; bottom: 63%; left: 50%; width: 3px; height: 50px;
  transform-origin: bottom center; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 1px; animation: f1-hand 8s ease-in-out infinite alternate;
}
.scn-for-market-clock-impromptu .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: f1-shadow 6s ease-in-out infinite alternate;
}
.scn-for-market-clock-impromptu .glow {
  position: absolute; bottom: 42%; left: 50%; width: 140px; height: 140px;
  transform: translate(-50%, 0); background: radial-gradient(circle, rgba(200,160,96,0.15) 0%, transparent 70%);
  border-radius: 50%; pointer-events: none; animation: f1-glow 4s ease-in-out infinite alternate;
}
@keyframes f1-bg { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes f1-clock { 0%,100% { transform: translate(-50%,0) scale(1) } 50% { transform: translate(-50%,0) scale(1.02) } }
@keyframes f1-pendulum { 0% { transform: rotate(-8deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(8deg) } }
@keyframes f1-dot { 0%,100% { opacity:0.7; transform: translate(-50%,0) scale(1) } 50% { opacity:1; transform: translate(-50%,0) scale(1.15) } }
@keyframes f1-hand { 0% { transform: rotate(-15deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(15deg) } }
@keyframes f1-shadow { 0% { opacity:0.5; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.1) } 100% { opacity:0.5; transform: scale(0.9) } }
@keyframes f1-glow { 0%,100% { opacity:0.3 } 50% { opacity:0.6 } }

/* --- madman-lethargist-intro --- */

.scn-madman-lethargist-intro {
  background: linear-gradient(180deg, #2a2218 0%, #1e1810 40%, #14100a 100%),
              radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 80%);
}
.scn-madman-lethargist-intro .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); animation: ml1-wall 12s ease-in-out infinite alternate;
}
.scn-madman-lethargist-intro .bed-left {
  position: absolute; bottom: 10%; left: 10%; width: 35%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ml1-bed 8s ease-in-out infinite;
}
.scn-madman-lethargist-intro .bed-right {
  position: absolute; bottom: 10%; right: 10%; width: 35%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ml1-bed 8s ease-in-out infinite reverse;
}
.scn-madman-lethargist-intro .lethargist {
  position: absolute; bottom: 30%; left: 18%; width: 20%; height: 25%;
  background: radial-gradient(ellipse at 50% 40%, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: ml1-lethargist 10s ease-in-out infinite;
}
.scn-madman-lethargist-intro .madman {
  position: absolute; bottom: 30%; right: 18%; width: 22%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #b8a080 0%, #7a6a5a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center;
  animation: ml1-madman 2s ease-in-out infinite alternate;
}
.scn-madman-lethargist-intro .lamp {
  position: absolute; top: 15%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%); background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%);
  border-radius: 10px 10px 4px 4px; box-shadow: 0 0 30px 6px rgba(200,160,96,0.5);
  animation: ml1-lamp 4s ease-in-out infinite alternate;
}
.scn-madman-lethargist-intro .speech-bubble {
  position: absolute; top: 20%; right: 25%; width: 60px; height: 40px;
  background: radial-gradient(circle at 50% 50%, rgba(200,200,200,0.3) 0%, transparent 100%);
  border-radius: 50%; border: 2px dashed rgba(200,200,200,0.4);
  animation: ml1-bubble 3s ease-in-out infinite;
}
@keyframes ml1-wall { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes ml1-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes ml1-lethargist { 0%,100% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.02) rotate(2deg) } }
@keyframes ml1-madman { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-5px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes ml1-lamp { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ml1-bubble { 0%,100% { transform: scale(1) translateX(0) } 50% { transform: scale(1.2) translateX(5px) } }

/* --- madman-lethargist-continued --- */

.scn-madman-lethargist-continued {
  background: linear-gradient(180deg, #1e1810 0%, #2a1a0a 40%, #1a1008 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-madman-lethargist-continued .room {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  animation: ml2-room 15s ease-in-out infinite alternate;
}
.scn-madman-lethargist-continued .madman-standing {
  position: absolute; bottom: 20%; left: 20%; width: 18%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, #b8a080 0%, #7a6a5a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center;
  animation: ml2-madman 1.5s ease-in-out infinite alternate;
}
.scn-madman-lethargist-continued .lethargist-lying {
  position: absolute; bottom: 15%; right: 20%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 40%, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: left center;
  animation: ml2-lethargist 8s ease-in-out infinite;
}
.scn-madman-lethargist-continued .troops {
  position: absolute; top: 10%; left: 30%; width: 50%; height: 20%;
  background: radial-gradient(circle at 20% 50%, rgba(200,180,120,0.4) 0%, transparent 30%),
              radial-gradient(circle at 60% 20%, rgba(200,180,120,0.3) 0%, transparent 30%),
              radial-gradient(circle at 80% 70%, rgba(200,180,120,0.35) 0%, transparent 30%);
  background-size: 30px 30px; background-repeat: no-repeat;
  animation: ml2-troops 3s ease-in-out infinite alternate;
}
.scn-madman-lethargist-continued .snore-lines {
  position: absolute; bottom: 25%; right: 38%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,180,180,0.5) 0%, transparent 100%);
  border-radius: 50%; filter: blur(2px); animation: ml2-snore 4s ease-in-out infinite;
}
.scn-madman-lethargist-continued .lamp-glow {
  position: absolute; top: 10%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%); background: radial-gradient(circle at 50% 30%, #c8a060 0%, #8a6a3a 100%);
  border-radius: 8px 8px 4px 4px; box-shadow: 0 0 40px 10px rgba(200,160,96,0.4);
  animation: ml2-lamp 5s ease-in-out infinite alternate;
}
.scn-madman-lethargist-continued .shadow {
  position: absolute; bottom: 0; left: 15%; width: 30%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: ml2-shadow 3s ease-in-out infinite alternate;
}
@keyframes ml2-room { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes ml2-madman { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-8px) } 100% { transform: rotate(-8deg) translateY(0) } }
@keyframes ml2-lethargist { 0%,100% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.03) rotate(2deg) } }
@keyframes ml2-troops { 0% { opacity:0.3; transform: translateY(0) } 50% { opacity:0.7; transform: translateY(-5px) } 100% { opacity:0.4; transform: translateY(0) } }
@keyframes ml2-snore { 0%,100% { transform: scale(1) translateX(0) } 50% { transform: scale(1.5) translateX(10px) } }
@keyframes ml2-lamp { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ml2-shadow { 0%,100% { opacity:0.3; transform: scale(1) } 50% { opacity:0.6; transform: scale(1.2) } }

/* --- madman-lethargist-moral --- */

.scn-madman-lethargist-moral {
  background: linear-gradient(180deg, #1e1810 0%, #2a1a0a 40%, #14100a 100%),
              radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 80%);
}
.scn-madman-lethargist-moral .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1a0a 0%, #14100a 100%);
  animation: ml3-bg 12s ease-in-out infinite alternate;
}
.scn-madman-lethargist-moral .book {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: rotate(-5deg); animation: ml3-book 10s ease-in-out infinite;
}
.scn-madman-lethargist-moral .quill {
  position: absolute; bottom: 35%; left: 38%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%);
  transform-origin: bottom center; transform: rotate(20deg);
  animation: ml3-quill 4s ease-in-out infinite alternate;
}
.scn-madman-lethargist-moral .dice {
  position: absolute; top: 25%; right: 25%; width: 30px; height: 30px;
  background: radial-gradient(circle at 40% 40%, #e0c8a0 0%, #b89870 100%);
  border-radius: 6px; border: 2px solid #8a6a3a;
  animation: ml3-dice 3s ease-in-out infinite;
}
.scn-madman-lethargist-moral .figure-despair {
  position: absolute; bottom: 15%; left: 45%; width: 15%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center;
  animation: ml3-figure 6s ease-in-out infinite alternate;
}
.scn-madman-lethargist-moral .light-glow {
  position: absolute; top: 15%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%); background: radial-gradient(circle at 50% 30%, #c8a060 0%, transparent 70%);
  box-shadow: 0 0 40px 20px rgba(200,160,96,0.3);
  animation: ml3-light 5s ease-in-out infinite alternate;
}
.scn-madman-lethargist-moral .floating-chance {
  position: absolute; top: 30%; right: 35%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 100%);
  border-radius: 50%; box-shadow: 0 0 12px 4px rgba(255,215,0,0.5);
  animation: ml3-chance 4s ease-in-out infinite;
}
@keyframes ml3-bg { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes ml3-book { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-3px) } }
@keyframes ml3-quill { 0% { transform: rotate(15deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(18deg) } }
@keyframes ml3-dice { 0%,100% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(45deg) scale(1.1) } }
@keyframes ml3-figure { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.05) } }
@keyframes ml3-light { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes ml3-chance { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-10px) rotate(180deg) } }

/* inscription-fountain-intro */

.scn-inscription-fountain-intro {
  background: 
    linear-gradient(180deg, #1a2a1a 0%, #2a3a2a 40%, #3a4a3a 100%),
    radial-gradient(ellipse at 50% 60%, #2a3a2a 0%, #0a1a0a 80%);
}
.scn-inscription-fountain-intro .if1-canopy {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a3a1a 0%, #0a2a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: if1-canopy 20s ease-in-out infinite alternate;
}
.scn-inscription-fountain-intro .if1-basin {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 40px; transform: translateX(-50%);
  background: radial-gradient(ellipse, #5a5a4a 0%, #3a3a2a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-inscription-fountain-intro .if1-water {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 20px; transform: translateX(-50%);
  background: radial-gradient(ellipse, #7a9a7a 0%, #4a6a4a 100%);
  border-radius: 50%;
  animation: if1-water 4s ease-in-out infinite;
}
.scn-inscription-fountain-intro .if1-stone {
  position: absolute; bottom: 24%; left: 50%; width: 30px; height: 50px; transform: translateX(30px);
  background: linear-gradient(180deg, #6a6a5a 0%, #4a4a3a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 4px 6px rgba(0,0,0,0.4);
  animation: if1-stone 8s ease-in-out infinite alternate;
}
.scn-inscription-fountain-intro .if1-figure {
  position: absolute; bottom: 15%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: if1-figure 5s ease-in-out infinite;
}
.scn-inscription-fountain-intro .if1-bee {
  position: absolute; top: 30%; left: 20%; width: 8px; height: 6px;
  background: #5a3a1a;
  border-radius: 50%;
  animation: if1-bee 3s ease-in-out infinite;
}
.scn-inscription-fountain-intro .if1-glow {
  position: absolute; bottom: 22%; left: 50%; width: 60px; height: 20px; transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(200,220,180,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: if1-glow 6s ease-in-out infinite alternate;
}
@keyframes if1-canopy { 0% { transform: translateY(0); } 50% { transform: translateY(-4px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes if1-water { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.95) translateY(1px); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes if1-stone { 0% { transform: translateX(30px) rotate(0deg); } 50% { transform: translateX(30px) rotate(1deg) scale(1.02); } 100% { transform: translateX(30px) rotate(-1deg); } }
@keyframes if1-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0); } }
@keyframes if1-bee { 0% { transform: translate(0, 0); } 50% { transform: translate(20px, -10px) rotate(20deg); } 100% { transform: translate(40px, 0) rotate(-10deg); } }
@keyframes if1-glow { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }

/* inscription-fountain-variants */

.scn-inscription-fountain-variants {
  background: 
    linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 40%, #3a3a1a 100%),
    radial-gradient(ellipse at 50% 70%, #3a3a1a 0%, #0a0a00 80%);
}
.scn-inscription-fountain-variants .if2-basin {
  position: absolute; bottom: 20%; left: 60%; width: 90px; height: 35px; transform: translateX(-50%);
  background: radial-gradient(ellipse, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-inscription-fountain-variants .if2-water {
  position: absolute; bottom: 22%; left: 60%; width: 70px; height: 18px; transform: translateX(-50%);
  background: radial-gradient(ellipse, #7a8a7a 0%, #3a4a3a 100%);
  border-radius: 50%;
  animation: if2-water 3s ease-in-out infinite;
}
.scn-inscription-fountain-variants .if2-stone {
  position: absolute; bottom: 24%; left: 60%; width: 25px; height: 45px; transform: translateX(20px);
  background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 3px 5px rgba(0,0,0,0.4);
}
.scn-inscription-fountain-variants .if2-book {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(-10deg) scale(1);
  animation: if2-book 10s ease-in-out infinite alternate;
}
.scn-inscription-fountain-variants .if2-hand {
  position: absolute; bottom: 22%; left: 35%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: if2-hand 6s ease-in-out infinite;
}
.scn-inscription-fountain-variants .if2-leaf {
  position: absolute; top: 35%; left: 20%; width: 15px; height: 8px;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 10% 10% / 50% 50% 20% 20%;
  animation: if2-leaf 8s ease-in-out infinite;
}
@keyframes if2-water { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.92) translateY(1px); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes if2-book { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.03); } 100% { transform: rotate(-12deg) scale(0.98); } }
@keyframes if2-hand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes if2-leaf { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(10px) rotate(3deg); } 100% { transform: translateX(20px) rotate(-2deg); } }

/* ode-to-rain-intro */

.scn-ode-to-rain-intro {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, #0a0a1a 80%);
}
.scn-ode-to-rain-intro .or1-window {
  position: absolute; inset: 10% 10% 30% 10%;
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: or1-win 4s ease-in-out infinite alternate;
}
.scn-ode-to-rain-intro .or1-rain {
  position: absolute; top: 15%; left: 20%; width: 2px; height: 60%;
  background: repeating-linear-gradient(180deg, transparent, transparent 10px, rgba(150,170,200,0.3) 10px, rgba(150,170,200,0.3) 12px);
  animation: or1-rain 1s linear infinite;
}
.scn-ode-to-rain-intro .or1-rain2 {
  position: absolute; top: 20%; left: 70%; width: 2px; height: 50%;
  background: repeating-linear-gradient(180deg, transparent, transparent 8px, rgba(150,170,200,0.2) 8px, rgba(150,170,200,0.2) 10px);
  animation: or1-rain 1.5s linear infinite;
}
.scn-ode-to-rain-intro .or1-curtain {
  position: absolute; top: 8%; left: 8%; width: 15%; height: 60%;
  background: linear-gradient(90deg, rgba(40,30,20,0.8) 0%, rgba(40,30,20,0.4) 100%);
  border-radius: 0 20% 20% 0 / 0 10% 10% 0;
  animation: or1-curtain 10s ease-in-out infinite alternate;
}
.scn-ode-to-rain-intro .or1-bed {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.5);
}
.scn-ode-to-rain-intro .or1-figure {
  position: absolute; bottom: 18%; left: 35%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: or1-figure 5s ease-in-out infinite;
}
.scn-ode-to-rain-intro .or1-candle-glow {
  position: absolute; bottom: 25%; left: 70%; width: 14px; height: 18px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%, transparent 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 24px 8px rgba(200,140,60,0.4);
  animation: or1-candle 3s ease-in-out infinite alternate;
}
@keyframes or1-win { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes or1-rain { 0% { transform: translateY(-100%); } 100% { transform: translateY(100%); } }
@keyframes or1-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(3px); } }
@keyframes or1-figure { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes or1-candle { 0% { box-shadow: 0 0 20px 6px rgba(200,140,60,0.3); } 50% { box-shadow: 0 0 30px 10px rgba(255,200,100,0.6); } 100% { box-shadow: 0 0 22px 7px rgba(200,140,60,0.35); } }

/* ode-to-rain-body */

.scn-ode-to-rain-body {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 30%, #1a1a2a 0%, #00000a 80%);
}
.scn-ode-to-rain-body .or2-figure {
  position: absolute; bottom: 20%; left: 50%; width: 24px; height: 60px; transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: or2-figure 1.5s ease-in-out infinite;
}
.scn-ode-to-rain-body .or2-umbrella {
  position: absolute; bottom: 65%; left: 50%; width: 50px; height: 16px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%;
  animation: or2-umbrella 2s ease-in-out infinite;
}
.scn-ode-to-rain-body .or2-rain {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: repeating-linear-gradient(180deg, transparent, transparent 8px, rgba(150,170,200,0.2) 8px, rgba(150,170,200,0.2) 10px);
  animation: or2-rain 0.8s linear infinite;
}
.scn-ode-to-rain-body .or2-puddle {
  position: absolute; bottom: 10%; left: 30%; width: 80px; height: 12px;
  background: radial-gradient(ellipse, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 50%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.3);
  animation: or2-puddle 3s ease-in-out infinite alternate;
}
.scn-ode-to-rain-body .or2-splash1 {
  position: absolute; bottom: 16%; left: 40%; width: 6px; height: 6px;
  background: radial-gradient(circle, #8a9aaa 0%, transparent 70%);
  border-radius: 50%;
  animation: or2-splash 0.6s ease-out infinite;
}
.scn-ode-to-rain-body .or2-splash2 {
  position: absolute; bottom: 14%; left: 55%; width: 5px; height: 5px;
  background: radial-gradient(circle, #8a9aaa 0%, transparent 70%);
  border-radius: 50%;
  animation: or2-splash 0.8s ease-out infinite 0.4s;
}
.scn-ode-to-rain-body .or2-hat {
  position: absolute; bottom: 68%; left: 47%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 10% 10% / 70% 70% 20% 20%;
  animation: or2-hat 1.5s ease-in-out infinite alternate;
}
@keyframes or2-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-8px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes or2-umbrella { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg) scaleY(1.1); } 100% { transform: translateX(-50%) rotate(-5deg); } }
@keyframes or2-rain { 0% { transform: translateY(-100%); } 100% { transform: translateY(100%); } }
@keyframes or2-puddle { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05) translateY(1px); } 100% { transform: scaleX(0.95); } }
@keyframes or2-splash { 0% { transform: scale(0); opacity: 1; } 50% { transform: scale(1.5); opacity: 0.7; } 100% { transform: scale(2); opacity: 0; } }
@keyframes or2-hat { 0% { transform: translateY(-2px) rotate(-3deg); } 50% { transform: translateY(2px) rotate(3deg); } 100% { transform: translateY(-1px) rotate(-2deg); } }

.scn-reproof-and-reply-intro {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 30%, #b8996e 100%), radial-gradient(circle at 30% 20%, #fff6e0 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-reproof-and-reply-intro .stainglass {
  position: absolute; top: 5%; width: 20%; height: 70%; border-radius: 10%; background: linear-gradient(135deg, #a8d8ea 0%, #70b8d0 50%, #4a90b0 100%); box-shadow: inset 0 0 30px rgba(255,245,200,0.3); animation: s1-glass 4s ease-in-out infinite alternate;
}
.scn-reproof-and-reply-intro .stainglass.left { left: 8%; }
.scn-reproof-and-reply-intro .stainglass.right { right: 8%; }
.scn-reproof-and-reply-intro .pulpit {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%); width: 40px; height: 60px; background: linear-gradient(180deg, #8b6f4a 0%, #5a3e2a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 10px rgba(0,0,0,0.3), inset 0 2px 8px rgba(255,235,200,0.2);
}
.scn-reproof-and-reply-intro .preacher {
  position: absolute; bottom: calc(10% + 60px); left: 50%; transform: translateX(-50%); width: 24px; height: 40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: s1-preach 2s ease-in-out infinite;
}
.scn-reproof-and-reply-intro .book {
  position: absolute; bottom: calc(10% + 70px); left: 50%; transform: translateX(8px); width: 18px; height: 24px; background: linear-gradient(180deg, #e8d8b0 0%, #c4b080 100%); border-radius: 4px; box-shadow: -2px 2px 4px rgba(0,0,0,0.3); animation: s1-book 3s ease-in-out infinite alternate;
}
.scn-reproof-and-reply-intro .halo {
  position: absolute; bottom: calc(10% + 100px); left: 50%; transform: translateX(-50%); width: 30px; height: 30px; background: radial-gradient(circle, rgba(255,230,150,0.6) 0%, rgba(255,200,80,0.2) 60%, transparent 80%); border-radius: 50%; filter: blur(2px); animation: s1-halo 4s ease-in-out infinite alternate;
}
.scn-reproof-and-reply-intro .pew {
  position: absolute; bottom: 5%; left: 5%; width: 90%; height: 8%; background: linear-gradient(180deg, #7a5e3a 0%, #4a3018 100%); border-radius: 5% 5% 0 0;
}
@keyframes s1-glass { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes s1-preach { 0% { transform: translateX(-50%) rotate(-2deg); } 25% { transform: translateX(-50%) rotate(1deg) translateY(-1px); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-50%) rotate(2deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes s1-book { 0% { transform: translateX(8px) rotate(0deg); } 100% { transform: translateX(8px) rotate(5deg); } }
@keyframes s1-halo { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

.scn-reproof-reply-apology {
  background: linear-gradient(180deg, #87CEEB 0%, #FFF8DC 60%, #F5DEB3 100%),
              radial-gradient(ellipse at 50% 100%, #F0E68C 0%, transparent 70%);
}
.scn-reproof-reply-apology .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 100%);
  animation: sky-ap 12s ease-in-out infinite alternate;
}
.scn-reproof-reply-apology .hills {
  position:absolute; bottom:30%; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #8FBC8F 0%, #6B8E23 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: hills-ap 18s ease-in-out infinite alternate;
}
.scn-reproof-reply-apology .fountain-base {
  position:absolute; bottom:28%; left:50%; width:40px; height:60px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #D3D3D3 0%, #A9A9A9 100%);
  border-radius: 10% 10% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: base-ap 9s ease-in-out infinite;
}
.scn-reproof-reply-apology .fountain-water {
  position:absolute; bottom:50%; left:50%; width:20px; height:30px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #00BFFF 0%, #87CEEB 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 12px 6px rgba(135,206,250,.5);
  animation: water-ap 4s ease-in-out infinite alternate;
}
.scn-reproof-reply-apology .nymph-figure {
  position:absolute; bottom:26%; left:52%; width:20px; height:40px;
  background: linear-gradient(180deg, #FFD700 0%, #DAA520 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nymph-ap 4s ease-in-out infinite;
}
.scn-reproof-reply-apology .stream {
  position:absolute; bottom:22%; left:45%; width:80px; height:8px;
  background: linear-gradient(90deg, #00BFFF 0%, #87CEEB 50%, #00BFFF 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: stream-ap 5s ease-in-out infinite alternate;
}
.scn-reproof-reply-apology .flowers {
  position:absolute; bottom:20%; left:30%; width:50px; height:20px;
  background: radial-gradient(circle at 20% 50%, #FFB6C1 0%, transparent 60%),
              radial-gradient(circle at 80% 50%, #FFD700 0%, transparent 60%);
  filter: blur(1px);
  animation: flowers-ap 7s ease-in-out infinite;
}
.scn-reproof-reply-apology .cloud-a {
  position:absolute; top:15%; left:10%; width:100px; height:20px;
  background: linear-gradient(180deg, rgba(255,255,255,.8) 0%, rgba(255,255,255,.3) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: drift-a-ap 40s linear infinite;
}
.scn-reproof-reply-apology .cloud-b {
  position:absolute; top:20%; right:10%; width:80px; height:16px;
  background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.2) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: drift-b-ap 50s linear infinite reverse;
}
@keyframes sky-ap { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes hills-ap { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes base-ap { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes water-ap { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.2) } 100% { transform: translateX(-50%) scaleY(0.8) } }
@keyframes nymph-ap { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(6px) translateY(0) rotate(2deg) } 75% { transform: translateX(3px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes stream-ap { 0% { opacity:.5; transform: scaleX(1) } 50% { opacity:.8; transform: scaleX(1.1) } 100% { opacity:.6; transform: scaleX(0.9) } }
@keyframes flowers-ap { 0% { opacity:.6; transform: scale(1) } 50% { opacity:.9; transform: scale(1.05) rotate(3deg) } 100% { opacity:.7; transform: scale(0.95) rotate(-3deg) } }
@keyframes drift-a-ap { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes drift-b-ap { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-reproof-reply-may {
  background: linear-gradient(180deg, #87CEEB 0%, #f9d976 80%, #f7b731 100%), radial-gradient(circle at 70% 10%, rgba(255,255,200,0.6) 0%, transparent 60%);
  overflow: hidden;
  position: relative;
}
.scn-reproof-reply-may .sun {
  position: absolute; top: 10%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff 0%, #FFD700 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px rgba(255,215,0,0.6);
  animation: rm-sun 8s ease-in-out infinite alternate;
}
.scn-reproof-reply-may .cloud {
  position: absolute; top: 15%; left: 20%; width: 80px; height: 20px;
  background: rgba(255,255,255,0.4);
  border-radius: 50%;
  filter: blur(5px);
  animation: rm-cloud 30s linear infinite;
}
.scn-reproof-reply-may .meadow {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #4CAF50 0%, #8BC34A 100%);
  border-radius: 60% 30% 0 0 / 40% 20% 0 0;
  box-shadow: inset 0 -15px 30px rgba(0,0,0,0.2);
  animation: rm-meadow 10s ease-in-out infinite alternate;
}
.scn-reproof-reply-may .flower-a {
  position: absolute; bottom: 35%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, #FFB6C1 0%, #FF69B4 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(255,105,180,0.3);
  animation: rm-flower 5s ease-in-out infinite;
}
.scn-reproof-reply-may .flower-b {
  position: absolute; bottom: 38%; left: 50%; width: 16px; height: 16px;
  background: radial-gradient(circle, #FFDAB9 0%, #FFA07A 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(255,160,122,0.3);
  animation: rm-flower 5s ease-in-out infinite 2s;
}
.scn-reproof-reply-may .figure {
  position: absolute; bottom: 32%; left: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2c2c2c, #1a1a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rm-figure 4s ease-in-out infinite;
}
.scn-reproof-reply-may .figure::before {
  content: ''; position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
  width: 14px; height: 14px; background: #2c2c2c; border-radius: 50%;
}
.scn-reproof-reply-may .figure::after {
  content: ''; position: absolute; bottom: 20px; left: -10px;
  width: 20px; height: 4px; background: #2c2c2c; border-radius: 2px;
  transform-origin: right center;
  animation: rm-arm 4s ease-in-out infinite;
}
.scn-reproof-reply-may .petal-1 {
  position: absolute; bottom: 45%; left: 40%; width: 8px; height: 8px;
  background: #FF69B4;
  border-radius: 50%;
  animation: rm-petal 6s ease-in-out infinite;
}
.scn-reproof-reply-may .petal-2 {
  position: absolute; bottom: 45%; left: 55%; width: 6px; height: 6px;
  background: #FFD700;
  border-radius: 50%;
  animation: rm-petal 6s ease-in-out infinite 3s;
}
@keyframes rm-sun {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-5px) scale(1.02); }
  100% { transform: translateY(3px) scale(0.98); }
}
@keyframes rm-cloud {
  0% { transform: translateX(0); }
  50% { transform: translateX(60vw); }
  100% { transform: translateX(120vw); }
}
@keyframes rm-meadow {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
  100% { transform: scaleY(0.99); }
}
@keyframes rm-flower {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.1); }
  100% { transform: rotate(-3deg) scale(0.95); }
}
@keyframes rm-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(5deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rm-arm {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(-20deg) translateX(5px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes rm-petal {
  0% { transform: translateY(0) rotate(0deg); opacity:1; }
  50% { transform: translateY(-20px) rotate(180deg); opacity:0.8; }
  100% { transform: translateY(20px) rotate(360deg); opacity:0; }
}

.scn-first-advent-love {
  background: linear-gradient(180deg, #f2d5a0 0%, #d4a85a 30%, #b08040 100%), radial-gradient(ellipse at 50% 20%, #fff2d0 0%, transparent 70%);
}
.scn-first-advent-love .dawn-sky { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #ffd8a0 0%, #f0b870 40%, #c89050 100%); animation: s4-sky 20s ease-in-out infinite alternate; }
.scn-first-advent-love .star {
  position: absolute; top: 10%; left: 45%; width: 20px; height: 20px; background: radial-gradient(circle, #fffbe0 0%, #ffd080 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(255,210,80,0.5); animation: s4-star 3s ease-in-out infinite alternate;
}
.scn-first-advent-love .cloud.soft { position: absolute; top: 15%; left: 20%; width: 80px; height: 20px; background: linear-gradient(180deg, rgba(255,235,200,0.5) 0%, rgba(255,220,160,0.2) 100%); border-radius: 50%; filter: blur(6px); animation: s4-cloud 40s linear infinite; }
.scn-first-advent-love .meadow { position: absolute; bottom: 25%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #a0b880 0%, #607a40 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-first-advent-love .water { position: absolute; bottom: 5%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #80a0b8 0%, #406080 100%); border-radius: 60% 40% 0 0 / 40% 20% 0 0; animation: s4-water 6s ease-in-out infinite alternate; }
.scn-first-advent-love .willow {
  position: absolute; bottom: 30%; left: 20%; width: 30px; height: 80px; background: linear-gradient(180deg, #4a5a2a 0%, #2a3a1a 100%); border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%; animation: s4-willow 8s ease-in-out infinite alternate;
}
.scn-first-advent-love .reed {
  position: absolute; bottom: 20%; right: 15%; width: 6px; height: 40px; background: linear-gradient(180deg, #6a7a4a 0%, #3a4a2a 100%); border-radius: 50%; transform: rotate(5deg); animation: s4-reed 5s ease-in-out infinite alternate;
}
@keyframes s4-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes s4-star { 0% { transform: scale(1) rotate(0deg); opacity: 0.8; } 50% { transform: scale(1.2) rotate(15deg); opacity: 1; } 100% { transform: scale(1) rotate(0deg); opacity: 0.8; } }
@keyframes s4-cloud { 0% { transform: translateX(-60px); } 100% { transform: translateX(120vw); } }
@keyframes s4-water { 0% { background-position: 0% 50%; } 100% { background-position: 100% 50%; } }
@keyframes s4-willow { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg) scaleY(1.02); } 100% { transform: rotate(-3deg); } }
@keyframes s4-reed { 0% { transform: rotate(5deg) translateY(0); } 100% { transform: rotate(10deg) translateY(-2px); } }

/* --- rich-poor-scotchman (rps) --- */

.scn-rich-poor-scotchman { background: linear-gradient(180deg, #f5e6c8 0%, #d4a373 40%, #8b5e3c 100%), radial-gradient(ellipse at 50% 0%, #ffe0b2 0%, transparent 60%); }
.scn-rich-poor-scotchman .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(90deg, #c4a882 0%, #e6d5b8 50%, #c4a882 100%); box-shadow: inset 0 -8px 12px rgba(0,0,0,0.15); animation: rps-wall 10s ease-in-out infinite alternate; }
.scn-rich-poor-scotchman .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-rich-poor-scotchman .desk { position:absolute; bottom:30%; left:50%; width:160px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-rich-poor-scotchman .money { position:absolute; bottom:33%; left:50%; width:60px; height:20px; transform:translateX(-50%); background: linear-gradient(90deg, #c8a050, #e8c060, #c8a050); border-radius:2px; box-shadow: 0 0 12px 4px rgba(200,160,80,0.4); animation: rps-money 4s ease-in-out infinite alternate; }
.scn-rich-poor-scotchman .rich-man { position:absolute; bottom:35%; left:42%; width:40px; height:70px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rps-figure 6s ease-in-out infinite; }
.scn-rich-poor-scotchman .scotchman { position:absolute; bottom:35%; left:56%; width:34px; height:64px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rps-figure 7s ease-in-out infinite 1s; }
.scn-rich-poor-scotchman .devil-shadow { position:absolute; bottom:38%; left:36%; width:60px; height:30px; background: radial-gradient(ellipse, rgba(100,20,20,0.6) 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 20px 10px rgba(100,20,20,0.3); animation: rps-devil 3s ease-in-out infinite alternate; }
@keyframes rps-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes rps-money { 0% { transform:scaleX(1) scaleY(1); opacity:0.8; } 50% { transform:scaleX(1.05) scaleY(1.1); opacity:1; } 100% { transform:scaleX(1) scaleY(1); opacity:0.9; } }
@keyframes rps-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } }
@keyframes rps-devil { 0% { transform:scale(1) rotate(0deg); opacity:0.4; } 50% { transform:scale(1.2) rotate(5deg); opacity:0.7; } 100% { transform:scale(0.9) rotate(-3deg); opacity:0.3; } }

/* --- concert-room-harlot-song (crh) --- */

.scn-concert-room-harlot-song { background: linear-gradient(180deg, #4a2040 0%, #7a3a5a 30%, #5a2a40 100%), radial-gradient(ellipse at 50% 100%, #2a0a1a 0%, transparent 70%); }
.scn-concert-room-harlot-song .room-bg { position:absolute; inset:0; background: linear-gradient(90deg, #6a3a4a 0%, #8a4a5a 50%, #6a3a4a 100%); clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%); animation: crh-bg 12s ease-in-out infinite; }
.scn-concert-room-harlot-song .stage { position:absolute; bottom:30%; left:20%; right:20%; height:35%; background: linear-gradient(180deg, #3a1a2a 0%, #2a0a1a 100%); border-radius:20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-concert-room-harlot-song .singer { position:absolute; bottom:38%; left:50%; width:45px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px 8px rgba(200,150,100,0.3); animation: crh-singer 4s ease-in-out infinite; }
.scn-concert-room-harlot-song .audience-left { position:absolute; bottom:20%; left:5%; width:50px; height:60px; background: radial-gradient(ellipse, #1a1a1a 0%, transparent 60%); border-radius:50%; animation: crh-audience 3s ease-in-out infinite; }
.scn-concert-room-harlot-song .audience-right { position:absolute; bottom:20%; right:5%; width:50px; height:60px; background: radial-gradient(ellipse, #1a1a1a 0%, transparent 60%); border-radius:50%; animation: crh-audience 3s ease-in-out infinite 1.5s; }
.scn-concert-room-harlot-song .chandelier { position:absolute; top:5%; left:50%; width:80px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a050 0%, #a08030 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 30px 10px rgba(200,160,80,0.5); animation: crh-chandelier 8s ease-in-out infinite; }
.scn-concert-room-harlot-song .spotlight { position:absolute; top:0; left:50%; width:120px; height:100%; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, rgba(255,230,180,0.3) 0%, transparent 70%); animation: crh-spotlight 5s ease-in-out infinite alternate; }
@keyframes crh-bg { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes crh-singer { 0%,100% { transform:translateX(-50%) rotate(0deg) translateY(0); } 50% { transform:translateX(-50%) rotate(3deg) translateY(-4px); } }
@keyframes crh-audience { 0%,100% { transform:scale(1); opacity:0.6; } 50% { transform:scale(1.1); opacity:0.8; } }
@keyframes crh-chandelier { 0% { transform:translateX(-50%) rotate(-2deg); } 50% { transform:translateX(-50%) rotate(2deg); } 100% { transform:translateX(-50%) rotate(-1deg); } }
@keyframes crh-spotlight { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }

/* --- prattling-scandal-ear (pse) --- */

.scn-prattling-scandal-ear { background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 0%, #4a4a5a 0%, transparent 60%); }
.scn-prattling-scandal-ear .bg-curtains { position:absolute; inset:0; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 20%, transparent 50%, #5a4a3a 80%, #4a3a2a 100%); animation: pse-curtains 15s ease-in-out infinite alternate; }
.scn-prattling-scandal-ear .lady { position:absolute; bottom:25%; left:40%; width:36px; 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: pse-lady 5s ease-in-out infinite; }
.scn-prattling-scandal-ear .maid { position:absolute; bottom:25%; left:46%; width:30px; height:50px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pse-maid 6s ease-in-out infinite 0.5s; }
.scn-prattling-scandal-ear .captain { position:absolute; bottom:28%; left:48%; width:32px; 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: pse-captain 4s ease-in-out infinite; }
.scn-prattling-scandal-ear .bench { position:absolute; bottom:20%; left:35%; width:100px; height:12px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
.scn-prattling-scandal-ear .whisper-shape { position:absolute; bottom:40%; left:50%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(180,180,200,0.3) 0%, transparent 70%); border-radius:50%; animation: pse-whisper 3s ease-in-out infinite alternate; }
@keyframes pse-curtains { 0%,100% { opacity:0.7; } 50% { opacity:1; } }
@keyframes pse-lady { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-2px) rotate(2deg); } }
@keyframes pse-maid { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(1px) rotate(-1deg); } }
@keyframes pse-captain { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(3px) rotate(3deg); } }
@keyframes pse-whisper { 0% { transform:scale(1) translateX(0); opacity:0.2; } 50% { transform:scale(1.3) translateX(5px); opacity:0.5; } 100% { transform:scale(0.9) translateX(-3px); opacity:0.3; } }

/* --- purple-evening-bay-fisher (peb) --- */

.scn-purple-evening-bay-fisher { background: linear-gradient(180deg, #2a1640 0%, #4a2a6a 40%, #6a3a8a 100%), radial-gradient(ellipse at 50% 0%, #8a5aaa 0%, transparent 70%); }
.scn-purple-evening-bay-fisher .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a1640 0%, #4a2a6a 70%, transparent 100%); animation: peb-sky 20s ease-in-out infinite alternate; }
.scn-purple-evening-bay-fisher .water { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a1a5a 0%, #2a0a4a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.4); animation: peb-water 15s ease-in-out infinite alternate; }
.scn-purple-evening-bay-fisher .moon { position:absolute; top:10%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #e0d8f0 0%, #b0a8d0 60%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(220,210,240,0.4); animation: peb-moon 8s ease-in-out infinite; }
.scn-purple-evening-bay-fisher .trees-back { position:absolute; bottom:42%; left:5%; right:60%; height:30%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); clip-path: polygon(0% 100%, 20% 20%, 40% 100%, 60% 30%, 80% 100%, 100% 40%, 100% 100%); animation: peb-trees 30s linear infinite; }
.scn-purple-evening-bay-fisher .trees-front { position:absolute; bottom:40%; right:5%; left:50%; height:35%; background: linear-gradient(180deg, #0a1a0a 0%, #000a00 100%); clip-path: polygon(0% 100%, 30% 10%, 50% 100%, 70% 20%, 100% 100%); animation: peb-trees 40s linear infinite 10s; }
.scn-purple-evening-bay-fisher .boat { position:absolute; bottom:20%; left:30%; width:80px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:0 20px 20px 0; transform-origin: left center; animation: peb-boat 6s ease-in-out infinite; }
.scn-purple-evening-bay-fisher .fisher { position:absolute; bottom:22%; left:33%; width:16px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: peb-fisher 4s ease-in-out infinite; }
.scn-purple-evening-bay-fisher .ripple { position:absolute; bottom:15%; left:20%; width:60px; height:4px; background: linear-gradient(90deg, transparent, rgba(200,180,220,0.3), transparent); border-radius:50%; animation: peb-ripple 6s ease-in-out infinite; }
@keyframes peb-sky { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes peb-water { 0% { background-position:0 0; } 50% { background-position:5px 2px; } 100% { background-position:-5px -2px; } }
@keyframes peb-moon { 0%,100% { transform:scale(1); opacity:0.7; } 50% { transform:scale(1.05); opacity:1; } }
@keyframes peb-trees { 0% { transform:translateX(0); } 100% { transform:translateX(-20px); } }
@keyframes peb-boat { 0%,100% { transform:rotate(-3deg); } 50% { transform:rotate(3deg); } }
@keyframes peb-fisher { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(2deg); } }
@keyframes peb-ripple { 0% { transform:translateX(0) scaleX(1); opacity:0.5; } 50% { transform:translateX(10px) scaleX(1.2); opacity:0.8; } 100% { transform:translateX(0) scaleX(1); opacity:0.3; } }

/* phantom-world-vanishes – dim interior, fading phantom rings */

.scn-phantom-world-vanishes {
  background: linear-gradient(135deg, #1c1b2e 0%, #2a2640 40%, #1f1d33 100%),
              radial-gradient(circle at 60% 40%, #3a3250 0%, transparent 70%);
}
.scn-phantom-world-vanishes .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #151324 0%, #1f1c30 50%, #2a2640 100%);
  animation: pvw-breathe 8s ease-in-out infinite alternate;
}
.scn-phantom-world-vanishes .window {
  position: absolute; top: 10%; left: 50%; width: 30%; height: 40%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #354466 0%, #1e2a40 100%);
  border: 2px solid #3a4060; border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
}
.scn-phantom-world-vanishes .figure {
  position: absolute; bottom: 28%; left: 42%; width: 12%; height: 22%;
  background: radial-gradient(ellipse 60% 70% at 50% 50%, #151324 0%, #0e0c1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pvw-figure 6s ease-in-out infinite;
}
.scn-phantom-world-vanishes .table {
  position: absolute; bottom: 20%; left: 50%; width: 18%; height: 8%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2e1e 0%, #2a1e12 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 -4px 8px rgba(0,0,0,.6);
}
.scn-phantom-world-vanishes .candle {
  position: absolute; bottom: 26%; left: 50%; width: 2%; height: 10%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d9b382 0%, #b8925e 40%, #805526 100%);
  border-radius: 10% 10% 8% 8%;
  animation: pvw-candle 3s ease-in-out infinite;
}
.scn-phantom-world-vanishes .ring {
  position: absolute; top: 30%; left: 50%; width: 20%; height: 20%;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(180,200,255,0.15);
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(140,170,240,0.1);
}
.scn-phantom-world-vanishes .ring-1 {
  animation: pvw-ring 8s ease-out infinite;
  animation-delay: 0s;
}
.scn-phantom-world-vanishes .ring-2 {
  animation: pvw-ring 8s ease-out infinite;
  animation-delay: 2.7s;
}
.scn-phantom-world-vanishes .ring-3 {
  animation: pvw-ring 8s ease-out infinite;
  animation-delay: 5.3s;
}
@keyframes pvw-breathe {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pvw-figure {
  0%   { transform: translate(0, 0) rotate(-2deg) scale(1); }
  30%  { transform: translate(4px, -2px) rotate(1deg) scale(1.02); }
  60%  { transform: translate(-2px, -1px) rotate(-1deg) scale(1); }
  100% { transform: translate(0, 0) rotate(0deg) scale(1); }
}
@keyframes pvw-candle {
  0%   { transform: translateX(-50%) scaleY(1); opacity: 0.9; }
  25%  { transform: translateX(-50%) scaleY(1.03); opacity: 1; }
  75%  { transform: translateX(-50%) scaleY(0.97); opacity: 0.85; }
  100% { transform: translateX(-50%) scaleY(1); opacity: 0.9; }
}
@keyframes pvw-ring {
  0%   { width: 0%; height: 0%; opacity: 0.6; }
  50%  { width: 100%; height: 100%; opacity: 0.3; }
  100% { width: 200%; height: 200%; opacity: 0; }
}

/* author-purposes-finish – writer's desk, reflective study */

.scn-author-purposes-finish {
  background: linear-gradient(180deg, #1e1a28 0%, #2d2a3a 50%, #3a344a 100%),
              radial-gradient(ellipse at 30% 80%, #4a4058 0%, transparent 70%);
}
.scn-author-purposes-finish .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #2a2435 0%, #1f1c2a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.5);
}
.scn-author-purposes-finish .desk {
  position: absolute; bottom: 18%; left: 15%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #4a3e2e 0%, #362c1e 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 -6px 16px rgba(0,0,0,.6);
}
.scn-author-purposes-finish .book {
  position: absolute; bottom: 30%; left: 22%; width: 12%; height: 16%;
  background: linear-gradient(180deg, #5e4a38 0%, #3a2e22 100%);
  border-radius: 6% 6% 8% 8%;
  transform: skewX(-8deg);
  box-shadow: 4px 0 8px rgba(0,0,0,.4);
  animation: apf-book 10s ease-in-out infinite;
}
.scn-author-purposes-finish .paper {
  position: absolute; bottom: 32%; left: 42%; width: 16%; height: 12%;
  background: linear-gradient(135deg, #f5eedc 0%, #d8cfb5 100%);
  border-radius: 2% 4% 6% 4%;
  transform: rotate(2deg);
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: apf-paper 12s ease-in-out infinite;
}
.scn-author-purposes-finish .lamp {
  position: absolute; bottom: 46%; left: 60%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #8a7a50 0%, #5a4e30 100%);
  border-radius: 10% 10% 6% 6%;
  transform-origin: bottom center;
  box-shadow: 0 0 30px rgba(255,230,160,0.2);
  animation: apf-lamp 5s ease-in-out infinite;
}
.scn-author-purposes-finish .light-cone {
  position: absolute; bottom: 28%; left: 56%; width: 20%; height: 40%;
  background: linear-gradient(180deg, rgba(255,230,160,0.15) 0%, rgba(255,200,100,0.05) 100%);
  filter: blur(10px);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: apf-cone 3s ease-in-out infinite alternate;
}
.scn-author-purposes-finish .hand {
  position: absolute; bottom: 28%; left: 38%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #d4c8b0 0%, #b8a890 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: apf-hand 4s ease-in-out infinite;
  filter: drop-shadow(0 4px 6px rgba(0,0,0,.5));
}
@keyframes apf-book {
  0% { transform: skewX(-8deg) translateY(0); }
  50% { transform: skewX(-6deg) translateY(-2px); }
  100% { transform: skewX(-8deg) translateY(0); }
}
@keyframes apf-paper {
  0%   { transform: rotate(2deg) translate(0,0); }
  40%  { transform: rotate(3deg) translate(-2px,1px); }
  70%  { transform: rotate(1deg) translate(3px,-1px); }
  100% { transform: rotate(2deg) translate(0,0); }
}
@keyframes apf-lamp {
  0%   { transform: scaleY(1); box-shadow: 0 0 20px rgba(255,230,160,0.15); }
  50%  { transform: scaleY(1.02); box-shadow: 0 0 40px rgba(255,230,160,0.3); }
  100% { transform: scaleY(1); box-shadow: 0 0 20px rgba(255,230,160,0.15); }
}
@keyframes apf-cone {
  0% { opacity: 0.5; }
  50% { opacity: 1; }
  100% { opacity: 0.5; }
}
@keyframes apf-hand {
  0%   { transform: rotate(-5deg) translate(0,0); }
  30%  { transform: rotate(-3deg) translate(4px,-2px); }
  60%  { transform: rotate(-7deg) translate(-2px,-1px); }
  100% { transform: rotate(-5deg) translate(0,0); }
}

/* xanadu-pleasure-dome – sunlit majestic dome with river */

.scn-xanadu-pleasure-dome {
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4f0 40%, #f0d6b0 100%),
              radial-gradient(ellipse at 70% 30%, #ffe4b0 0%, transparent 60%);
}
.scn-xanadu-pleasure-dome .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7ec8e3 0%, #aad0e8 60%, transparent 100%);
}
.scn-xanadu-pleasure-dome .sun {
  position: absolute; top: 8%; right: 20%; width: 10%; height: 14%;
  background: radial-gradient(circle at 50% 50%, #fff7d0 0%, #f5d86a 40%, #d4a030 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 20px rgba(245,216,106,0.5), 0 0 150px 40px rgba(212,160,48,0.2);
  animation: xpd-sun 20s ease-in-out infinite alternate;
}
.scn-xanadu-pleasure-dome .dome {
  position: absolute; bottom: 30%; left: 50%; width: 30%; height: 35%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f5e6c0 0%, #d4b88a 50%, #a8845a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 -8px 30px rgba(255,200,100,0.3), inset 0 10px 30px rgba(200,150,80,0.4);
  animation: xpd-dome 8s ease-in-out infinite;
}
.scn-xanadu-pleasure-dome .river {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 8%;
  background: linear-gradient(180deg, #3a8ab5 0%, #5aa0c0 50%, #4a90b0 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  filter: blur(2px);
  animation: xpd-river 15s linear infinite;
}
.scn-xanadu-pleasure-dome .garden {
  position: absolute; bottom: 10%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #4a7a4a 0%, #2a5a2a 100%);
  border-radius: 60% 40% 0 0;
}
.scn-xanadu-pleasure-dome .garden-1 {
  left: 5%;
  animation: xpd-garden 12s ease-in-out infinite;
}
.scn-xanadu-pleasure-dome .garden-2 {
  right: 5%;
  animation: xpd-garden 12s ease-in-out infinite reverse;
}
.scn-xanadu-pleasure-dome .tower {
  position: absolute; bottom: 42%; width: 6%; height: 25%;
  background: linear-gradient(180deg, #c8a87a 0%, #a08050 100%);
  border-radius: 10% 10% 4% 4%;
}
.scn-xanadu-pleasure-dome .tower-l { left: 22%; animation: xpd-tower 7s ease-in-out infinite; }
.scn-xanadu-pleasure-dome .tower-r { right: 22%; animation: xpd-tower 7s ease-in-out infinite 3.5s; }
@keyframes xpd-sun {
  0%   { transform: scale(1) translate(0,0); box-shadow: 0 0 80px 20px rgba(245,216,106,0.5), 0 0 150px 40px rgba(212,160,48,0.2); }
  50%  { transform: scale(1.05) translate(-5px, -3px); box-shadow: 0 0 100px 30px rgba(245,216,106,0.7), 0 0 200px 60px rgba(212,160,48,0.3); }
  100% { transform: scale(1) translate(0,0); box-shadow: 0 0 80px 20px rgba(245,216,106,0.5), 0 0 150px 40px rgba(212,160,48,0.2); }
}
@keyframes xpd-dome {
  0%   { transform: translateX(-50%) scaleY(1); }
  50%  { transform: translateX(-50%) scaleY(1.02); box-shadow: 0 -8px 40px rgba(255,200,100,0.4); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes xpd-river {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 0%; }
}
@keyframes xpd-garden {
  0%   { transform: translateY(0) scaleY(1); }
  50%  { transform: translateY(-4px) scaleY(1.05); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes xpd-tower {
  0%   { transform: scaleY(1); }
  50%  { transform: scaleY(1.03); }
  100% { transform: scaleY(1); }
}

/* deep-romantic-chasm – dark moonlit chasm, woman silhouette */

.scn-deep-romantic-chasm {
  background: linear-gradient(180deg, #0e0e1a 0%, #141a2e 40%, #1a2038 100%),
              radial-gradient(ellipse at 30% 20%, #2a3850 0%, transparent 70%);
}
.scn-deep-romantic-chasm .moon {
  position: absolute; top: 6%; left: 70%; width: 12%; height: 12%;
  background: radial-gradient(circle at 50% 50%, #e8e0c0 0%, #c8baa0 60%, #a79880 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(200,180,140,0.3), 0 0 100px 30px rgba(200,180,140,0.1);
  animation: drc-moon 15s ease-in-out infinite alternate;
}
.scn-deep-romantic-chasm .cliff {
  position: absolute; bottom: 20%; left: 0; width: 50%; height: 50%;
  background: linear-gradient(135deg, #1a1e30 0%, #252c40 100%);
  clip-path: polygon(0% 100%, 0% 40%, 30% 30%, 60% 20%, 100% 60%, 100% 100%);
  animation: drc-cliff 9s ease-in-out infinite;
}
.scn-deep-romantic-chasm .chasm {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 40%;
  background: linear-gradient(180deg, #0a0a14 0%, #101020 50%, #080814 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.8);
  animation: drc-chasm 12s ease-in-out infinite;
}
.scn-deep-romantic-chasm .figure {
  position: absolute; bottom: 30%; left: 45%; width: 8%; height: 25%;
  background: radial-gradient(ellipse 60% 70% at 50% 50%, #0c0c16 0%, #06060e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: drc-figure 6s ease-in-out infinite;
}
.scn-deep-romantic-chasm .mist {
  position: absolute; bottom: 10%; width: 120%; height: 30%;
  background: linear-gradient(180deg, rgba(180,200,240,0.08) 0%, rgba(180,200,240,0.02) 100%);
  filter: blur(8px);
  border-radius: 50%;
}
.scn-deep-romantic-chasm .mist-1 {
  left: -10%;
  animation: drc-mist 25s linear infinite;
}
.scn-deep-romantic-chasm .mist-2 {
  left: -30%;
  animation: drc-mist 35s linear infinite reverse;
}
.scn-deep-romantic-chasm .cedar {
  position: absolute; bottom: 40%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2a10 100%);
  border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%;
}
.scn-deep-romantic-chasm .cedar-1 { left: 20%; animation: drc-cedar 8s ease-in-out infinite; }
.scn-deep-romantic-chasm .cedar-2 { right: 25%; animation: drc-cedar 8s ease-in-out infinite 4s; }
@keyframes drc-moon {
  0%   { transform: scale(1) translate(0,0); box-shadow: 0 0 40px 10px rgba(200,180,140,0.3), 0 0 100px 30px rgba(200,180,140,0.1); }
  50%  { transform: scale(1.03) translate(-3px,-2px); box-shadow: 0 0 60px 15px rgba(200,180,140,0.4), 0 0 120px 40px rgba(200,180,140,0.15); }
  100% { transform: scale(1) translate(0,0); box-shadow: 0 0 40px 10px rgba(200,180,140,0.3), 0 0 100px 30px rgba(200,180,140,0.1); }
}
@keyframes drc-cliff {
  0%   { transform: translateY(0) scaleY(1); }
  50%  { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes drc-chasm {
  0%   { transform: scaleY(1); opacity: 0.9; }
  50%  { transform: scaleY(0.98); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.9; }
}
@keyframes drc-figure {
  0%   { transform: translate(0,0) rotate(-3deg) scale(1); }
  30%  { transform: translate(4px,-2px) rotate(2deg) scale(1.04); }
  60%  { transform: translate(-2px,-1px) rotate(-4deg) scale(0.98); }
  100% { transform: translate(0,0) rotate(-3deg) scale(1); }
}
@keyframes drc-mist {
  0%   { transform: translateX(0); }
  50%  { transform: translateX(20px); }
  100% { transform: translateX(0); }
}
@keyframes drc-cedar {
  0%   { transform: scaleY(1) scaleX(1); }
  50%  { transform: scaleY(1.05) scaleX(0.95); }
  100% { transform: scaleY(1) scaleX(1); }
}

/* song-love-sword */

.scn-song-love-sword {
  background: linear-gradient(145deg, #2c1a1f 0%, #1a0f14 50%, #0f070a 100%), radial-gradient(ellipse at 50% 40%, #3a2025 0%, transparent 70%);
}
.scn-song-love-sword .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1f1115 0%, #0f070a 100%); animation: sls-wall 18s ease-in-out infinite alternate; }
.scn-song-love-sword .sword { position:absolute; bottom:30%; left:50%; width:8px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 50%, #5a4a3a 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 0 10px 2px rgba(200,180,160,0.3); animation: sls-sword 5s ease-in-out infinite; }
.scn-song-love-sword .blade-flash { position:absolute; bottom:30%; left:50%; width:2px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, transparent 0%, #ffe8c0 30%, #ffe8c0 70%, transparent 100%); box-shadow: 0 0 20px 6px rgba(255,232,192,0.6); opacity:0; animation: sls-flash 4s ease-in-out infinite alternate; }
.scn-song-love-sword .myrtle-wreath { position:absolute; bottom:65%; left:50%; width:60px; height:60px; transform:translateX(-50%) rotate(0deg); border-radius:50%; background: radial-gradient(circle, transparent 50%, #2c5a3a 50%, #1a3a2a 100%); box-shadow: 0 0 15px 3px rgba(40,80,50,0.4); animation: sls-wreath 8s ease-in-out infinite; }
.scn-song-love-sword .rust-patch { position:absolute; bottom:38%; left:48%; width:12px; height:8px; background: radial-gradient(circle, #6a3a2a 0%, #4a2a1a 70%); border-radius: 40% 60% 50% 50%; opacity:0.6; animation: sls-rust 12s ease-in-out infinite alternate; }
.scn-song-love-sword .silhouette-hand { position:absolute; bottom:20%; left:45%; width:14px; height:30px; background: #1a0f14; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sls-hand 6s ease-in-out infinite; }
@keyframes sls-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes sls-sword { 0%,100% { transform:translateX(-50%) rotate(0deg) } 50% { transform:translateX(-50%) rotate(1deg) scaleY(1.02) } }
@keyframes sls-flash { 0% { opacity:0; transform:translateX(-50%) scaleY(0.8) } 50% { opacity:0.9; transform:translateX(-50%) scaleY(1.1) } 100% { opacity:0; transform:translateX(-50%) scaleY(0.8) } }
@keyframes sls-wreath { 0%,100% { transform:translateX(-50%) rotate(0deg) } 50% { transform:translateX(-50%) rotate(8deg) scale(1.03) } }
@keyframes sls-rust { 0% { transform:scale(1) opacity:0.4 } 50% { transform:scale(1.2) opacity:0.7 } 100% { transform:scale(0.9) opacity:0.5 } }
@keyframes sls-hand { 0% { transform:translateY(0) rotate(-1deg) } 50% { transform:translateY(-2px) rotate(1deg) } 100% { transform:translateY(0) rotate(-1deg) } }

/* bird-bat-allegory */

.scn-bird-bat-allegory {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 80%, #3a3a4e 0%, transparent 60%);
}
.scn-bird-bat-allegory .cave-bg { position:absolute; inset:0; background: linear-gradient(90deg, #0a0a14 0%, #1a1a2a 50%, #0a0a14 100%); animation: bba-cave 20s linear infinite; }
.scn-bird-bat-allegory .bird-tit { position:absolute; bottom:30%; left:30%; width:22px; height:30px; background: radial-gradient(circle at 50% 30%, #5a8a5a 0%, #2a5a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bba-bird 1.2s ease-in-out infinite; }
.scn-bird-bat-allegory .bat-1 { position:absolute; bottom:40%; right:25%; width:16px; height:12px; background: #2a2a3e; border-radius: 50% 50% 0 0; clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); animation: bba-bat 3s ease-in-out infinite alternate; }
.scn-bird-bat-allegory .bat-2 { position:absolute; bottom:50%; right:35%; width:14px; height:10px; background: #1e1e2a; border-radius: 50% 50% 0 0; clip-path: polygon(0% 0%, 100% 0%, 75% 100%, 25% 100%); animation: bba-bat 3.5s ease-in-out infinite alternate-reverse; animation-delay: 1s; }
.scn-bird-bat-allegory .tiny-crown { position:absolute; bottom:55%; left:33%; width:10px; height:6px; background: linear-gradient(180deg, #e0c060 0%, #c0a040 100%); border-radius: 50% 50% 0 0; transform:rotate(5deg); animation: bba-crown 2s ease-in-out infinite alternate; }
.scn-bird-bat-allegory .note-shape { position:absolute; bottom:45%; left:38%; width:6px; height:10px; background: #d0c080; border-radius: 50% 50% 40% 40% / 30% 30% 70% 70%; transform:rotate(-10deg); animation: bba-note 4s ease-in-out infinite; }
@keyframes bba-cave { 0% { background-position:0 0 } 100% { background-position:100px 0 } }
@keyframes bba-bird { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.1) translateY(-2px) } }
@keyframes bba-bat { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-5px) rotate(-5deg) } 100% { transform:translateY(0) rotate(5deg) } }
@keyframes bba-crown { 0% { transform: rotate(5deg) scaleY(1) } 50% { transform: rotate(-5deg) scaleY(1.1) } 100% { transform: rotate(5deg) scaleY(1) } }
@keyframes bba-note { 0%,100% { transform:translate(0,0) rotate(-10deg) } 50% { transform:translate(3px,-4px) rotate(-5deg) } }

/* bird-bat-allegory-persecution */

.scn-bird-bat-allegory-persecution {
  background: linear-gradient(180deg, #1a1020 0%, #2a1a30 40%, #1a1020 100%), radial-gradient(ellipse at 30% 70%, #3a1a2a 0%, transparent 70%);
}
.scn-bird-bat-allegory-persecution .cave-bg { position:absolute; inset:0; background: linear-gradient(90deg, #0a0a14 0%, #1a1a2a 50%, #0a0a14 100%); animation: bbp-cave 15s linear infinite; }
.scn-bird-bat-allegory-persecution .bird-panic { position:absolute; bottom:40%; left:20%; width:20px; height:28px; background: radial-gradient(circle at 50% 30%, #7a6a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bbp-panic 0.8s ease-in-out infinite; }
.scn-bird-bat-allegory-persecution .bat-a { position:absolute; bottom:50%; left:40%; width:14px; height:10px; background: #2a1a30; clip-path: polygon(0% 0%, 100% 0%, 75% 100%, 25% 100%); animation: bbp-dart 2.2s ease-in-out infinite; }
.scn-bird-bat-allegory-persecution .bat-b { position:absolute; bottom:35%; right:20%; width:16px; height:12px; background: #1e1425; clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); animation: bbp-dart 2.8s ease-in-out infinite reverse; animation-delay: 0.5s; }
.scn-bird-bat-allegory-persecution .bat-c { position:absolute; top:30%; left:50%; width:12px; height:8px; background: #24182e; clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: bbp-dart 3.1s ease-in-out infinite; animation-delay: 1.3s; }
.scn-bird-bat-allegory-persecution .feather-1 { position:absolute; bottom:45%; left:30%; width:4px; height:8px; background: #7a6a3a; border-radius: 50% 50% 0 0; transform:rotate(30deg); animation: bbp-feather 2s ease-in-out infinite alternate; }
.scn-bird-bat-allegory-persecution .feather-2 { position:absolute; bottom:38%; left:35%; width:3px; height:6px; background: #5a4a2a; border-radius: 50% 50% 0 0; transform:rotate(-20deg); animation: bbp-feather 2.5s ease-in-out infinite alternate-reverse; animation-delay: 0.7s; }
@keyframes bbp-cave { 0% { background-position:0 0 } 100% { background-position:-80px 0 } }
@keyframes bbp-panic { 0%,100% { transform:scale(1) rotate(-2deg) } 25% { transform:scale(1.05) rotate(3deg) translateX(2px) } 75% { transform:scale(1.02) rotate(-4deg) translateX(-2px) } }
@keyframes bbp-dart { 0% { transform:translate(0,0) } 50% { transform:translate(15px,-10px) } 100% { transform:translate(-10px,5px) } }
@keyframes bbp-feather { 0% { transform: translateY(0) rotate(30deg) opacity:1 } 50% { transform: translateY(-8px) rotate(45deg) opacity:0.7 } 100% { transform: translateY(0) rotate(30deg) opacity:0.4 } }

/* bird-bat-allegory-truth */

.scn-bird-bat-allegory-truth {
  background: linear-gradient(180deg, #1a1a24 0%, #2a2a3e 40%, #1a1a24 100%), radial-gradient(ellipse at 50% 60%, #3a3a50 0%, transparent 60%);
}
.scn-bird-bat-allegory-truth .pulpit-base { position:absolute; bottom:10%; left:50%; width:80px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 -4px 10px rgba(0,0,0,0.4); }
.scn-bird-bat-allegory-truth .bird-preacher { position:absolute; bottom:25%; left:48%; width:20px; height:28px; background: radial-gradient(circle at 50% 30%, #5a7a5a 0%, #2a4a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bbt-preach 3s ease-in-out infinite alternate; }
.scn-bird-bat-allegory-truth .heart-icon { position:absolute; bottom:35%; left:45%; width:10px; height:10px; background: radial-gradient(circle, #c8553d 0%, #8a3a2a 100%); border-radius: 50% 50% 0 0; transform:rotate(45deg); box-shadow: 0 0 8px 2px rgba(200,85,61,0.5); animation: bbt-heart 2.5s ease-in-out infinite; }
.scn-bird-bat-allegory-truth .scroll-open { position:absolute; bottom:32%; left:52%; width:14px; height:6px; background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%); border-radius: 2px 2px 8px 8px; animation: bbt-scroll 6s ease-in-out infinite alternate; }
.scn-bird-bat-allegory-truth .halo-glow { position:absolute; bottom:48%; left:48%; width:30px; height:30px; border-radius:50%; background: radial-gradient(circle, rgba(200,200,255,0.4) 0%, transparent 70%); transform:translate(-50%,-50%); animation: bbt-halo 4s ease-in-out infinite alternate; }
.scn-bird-bat-allegory-truth .inner-light { position:absolute; bottom:20%; left:50%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 80%, rgba(255,240,200,0.1) 0%, transparent 70%); animation: bbt-light 7s ease-in-out infinite; }
@keyframes bbt-preach { 0% { transform:translateY(0) rotate(0deg) scaleY(1) } 50% { transform:translateY(-2px) rotate(3deg) scaleY(1.05) } 100% { transform:translateY(0) rotate(0deg) scaleY(1) } }
@keyframes bbt-heart { 0%,100% { transform:rotate(45deg) scale(1) } 50% { transform:rotate(45deg) scale(1.15) } }
@keyframes bbt-scroll { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.3) } 100% { transform:scaleX(0.9) } }
@keyframes bbt-halo { 0% { opacity:0.5; transform:translate(-50%,-50%) scale(1) } 50% { opacity:0.9; transform:translate(-50%,-50%) scale(1.2) } 100% { opacity:0.6; transform:translate(-50%,-50%) scale(1) } }
@keyframes bbt-light { 0%,100% { opacity:0.1 } 50% { opacity:0.3 } }

/* to-matilda-intro */

.scn-to-matilda-intro { background: linear-gradient(180deg, #3a2e2a 0%, #2a2220 60%, #1e1a18 100%), radial-gradient(ellipse at 50% 100%, #4a3a30 0%, transparent 70%); }
.scn-to-matilda-intro .bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3e3430 0%, #2a2220 100%); }
.scn-to-matilda-intro .window { position:absolute; top:8%; left:20%; right:20%; height:38%; background: linear-gradient(180deg, #1c2a30 0%, #2a3a44 60%, #3a4a55 100%); border-radius:8% / 6%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: ti-sky 8s ease-in-out infinite alternate; }
.scn-to-matilda-intro .curtain-l { position:absolute; top:0; left:0; width:22%; height:55%; background: linear-gradient(90deg, #4a3830 0%, #3a2a24 80%, transparent 100%); border-radius:0 40% 40% 0; animation: ti-curtain 9s ease-in-out infinite; }
.scn-to-matilda-intro .curtain-r { position:absolute; top:0; right:0; width:22%; height:55%; background: linear-gradient(270deg, #4a3830 0%, #3a2a24 80%, transparent 100%); border-radius:40% 0 0 40%; animation: ti-curtain 9s ease-in-out infinite reverse; animation-delay: -3s; }
.scn-to-matilda-intro .desk { position:absolute; bottom:8%; left:10%; right:10%; height:24%; background: linear-gradient(180deg, #5a4a3e 0%, #3a2e26 100%); border-radius:6% 6% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,.3); }
.scn-to-matilda-intro .candle { position:absolute; bottom:22%; left:32%; width:12px; height:30px; background: linear-gradient(180deg, #f0d090 0%, #d0a060 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 20px 8px #f0b050, 0 0 40px 16px rgba(240,176,80,.4); animation: ti-candle 3s ease-in-out infinite alternate; }
.scn-to-matilda-intro .letter { position:absolute; bottom:14%; left:48%; width:80px; height:50px; background: linear-gradient(135deg, #f5ecd0 0%, #e0d4b0 100%); border-radius:2%; box-shadow: 0 4px 8px rgba(0,0,0,.2); transform: translateX(-50%); animation: ti-letter 7s ease-in-out infinite; }
@keyframes ti-sky { 0% { opacity:.6; background-position:0 0; } 50% { opacity:1; background-position:0 -10px; } 100% { opacity:.7; background-position:0 0; } }
@keyframes ti-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.04); } 100% { transform: scaleX(1); } }
@keyframes ti-candle { 0% { box-shadow: 0 0 16px 6px rgba(240,176,80,.6), 0 0 32px 12px rgba(240,176,80,.3); transform: scaleY(1); opacity:.9; } 50% { box-shadow: 0 0 28px 10px rgba(255,200,100,.9), 0 0 50px 20px rgba(255,200,100,.5); transform: scaleY(1.02); opacity:1; } 100% { box-shadow: 0 0 18px 7px rgba(240,176,80,.6), 0 0 36px 14px rgba(240,176,80,.3); transform: scaleY(.99); opacity:.95; } }
@keyframes ti-letter { 0%,100% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } }

/* to-matilda-body */

.scn-to-matilda-body { background: linear-gradient(180deg, #3a3028 0%, #2a221e 50%, #1e1614 100%), radial-gradient(ellipse at 50% 100%, #4a3a2e 0%, transparent 60%); }
.scn-to-matilda-body .bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a322c 0%, #2a2420 100%); }
.scn-to-matilda-body .table { position:absolute; bottom:10%; left:12%; right:12%; height:22%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2e24 100%); border-radius:8% 8% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.3); }
.scn-to-matilda-body .vase { position:absolute; bottom:24%; left:42%; width:30px; height:50px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:30% 30% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-to-matilda-body .flower { position:absolute; bottom:46%; left:42%; width:60px; height:20px; background: linear-gradient(180deg, #c06040 0%, #a05030 50%, #804020 100%); border-radius:50%; filter: blur(2px); animation: tb-flower 12s ease-in-out infinite alternate; }
.scn-to-matilda-body .hand { position:absolute; bottom:28%; left:34%; width:22px; height:40px; background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%); border-radius:50% 50% 20% 20% / 70% 70% 30% 30%; transform-origin: bottom center; animation: tb-hand 5s ease-in-out infinite; }
.scn-to-matilda-body .book { position:absolute; bottom:16%; left:28%; width:70px; height:16px; background: linear-gradient(90deg, #a08060 0%, #c0a080 50%, #a08060 100%); border-radius:4%; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: tb-book 8s ease-in-out infinite; }
.scn-to-matilda-body .shadow-fig { position:absolute; bottom:10%; right:15%; width:24px; height:60px; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius:30% 30% 10% 10% / 50% 50% 30% 30%; opacity:.6; animation: tb-fig 10s ease-in-out infinite; }
@keyframes tb-flower { 0% { transform: rotate(-3deg); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-3deg); } }
@keyframes tb-hand { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(6px) rotate(3deg); } 50% { transform: translateX(8px) rotate(0deg); } 75% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes tb-book { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(1deg); } }
@keyframes tb-fig { 0% { opacity:.5; transform: translateY(0); } 50% { opacity:.7; transform: translateY(-2px); } 100% { opacity:.5; transform: translateY(0); } }

/* to-matilda-variants */

.scn-to-matilda-variants { background: linear-gradient(180deg, #2e2a28 0%, #1e1c1a 60%, #141210 100%), radial-gradient(ellipse at 30% 50%, #3a2e28 0%, transparent 60%); }
.scn-to-matilda-variants .bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a2622 0%, #1e1c18 100%); }
.scn-to-matilda-variants .shelf { position:absolute; top:15%; left:5%; right:5%; height:8px; background: linear-gradient(90deg, #5a4a3a 0%, #6a5848 50%, #5a4a3a 100%); border-radius:4px; box-shadow: 0 4px 6px rgba(0,0,0,.4); }
.scn-to-matilda-variants .books { position:absolute; top:6%; left:12%; width:60%; height:40px; background: repeating-linear-gradient(90deg, #705030 0px, #705030 8px, #806040 8px, #806040 16px, #906060 16px, #906060 24px, #604030 24px, #604030 32px); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: tv-books 20s linear infinite; }
.scn-to-matilda-variants .lamp { position:absolute; bottom:30%; left:28%; width:14px; height:36px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius:20% 20% 10% 10%; }
.scn-to-matilda-variants .lamp-glow { position:absolute; bottom:24%; left:24%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,200,100,.4) 0%, transparent 70%); border-radius:50%; animation: tv-glow 4s ease-in-out infinite alternate; }
.scn-to-matilda-variants .figure { position:absolute; bottom:10%; left:42%; width:26px; height:70px; background: linear-gradient(180deg, #1a1614 0%, #0a0806 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tv-fig 6s ease-in-out infinite; }
.scn-to-matilda-variants .desk { position:absolute; bottom:6%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%); border-radius:4% 4% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.3); }
@keyframes tv-books { 0% { background-position:0 0; } 100% { background-position:-32px 0; } }
@keyframes tv-glow { 0% { opacity:.5; transform: scale(1); } 50% { opacity:.9; transform: scale(1.06); } 100% { opacity:.6; transform: scale(.98); } }
@keyframes tv-fig { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* hymn-chamouni-intro */

.scn-hymn-chamouni-intro { background: linear-gradient(180deg, #2a2e3a 0%, #1e222e 50%, #141820 100%), radial-gradient(ellipse at 50% 100%, #2a3040 0%, transparent 60%); }
.scn-hymn-chamouni-intro .room-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a2e38 0%, #1e222a 100%); }
.scn-hymn-chamouni-intro .window-frame { position:absolute; top:5%; left:10%; right:10%; height:40%; border:6px solid #3a322a; border-radius:8% 8% 4% 4%; background: transparent; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-hymn-chamouni-intro .sky-out { position:absolute; top:5%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #0c1420 0%, #1a2a3a 50%, #2a3a4e 100%); border-radius:8% 8% 4% 4%; animation: hc-sky 15s ease-in-out infinite alternate; }
.scn-hymn-chamouni-intro .mountain { position:absolute; top:15%; left:30%; right:30%; height:30%; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); transform: scaleY(.9); animation: hc-mtn 20s ease-in-out infinite; }
.scn-hymn-chamouni-intro .gentians { position:absolute; bottom:28%; left:38%; width:20px; height:20px; background: radial-gradient(circle, #6070b0 0%, #4050a0 60%, #203080 100%); border-radius:50%; box-shadow: 0 0 10px 4px rgba(60,80,160,.5); animation: hc-gen 6s ease-in-out infinite alternate; }
.scn-hymn-chamouni-intro .telescope { position:absolute; bottom:22%; left:28%; width:10px; height:50px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:20% 20% 0 0; transform: rotate(15deg); transform-origin: bottom center; animation: hc-tel 8s ease-in-out infinite; }
.scn-hymn-chamouni-intro .chair { position:absolute; bottom:8%; left:42%; width:30px; height:40px; background: linear-gradient(180deg, #3a2e24 0%, #1e1814 100%); border-radius:10% 10% 20% 20% / 40% 40% 30% 30%; opacity:.8; animation: hc-chair 12s ease-in-out infinite; }
@keyframes hc-sky { 0% { opacity:.7; background-position:0 0; } 50% { opacity:1; background-position:0 -8px; } 100% { opacity:.8; background-position:0 0; } }
@keyframes hc-mtn { 0% { transform: scaleY(.9) translateY(0); } 50% { transform: scaleY(.92) translateY(-4px); } 100% { transform: scaleY(.9) translateY(0); } }
@keyframes hc-gen { 0% { transform: scale(1); opacity:.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(.95); opacity:.7; } }
@keyframes hc-tel { 0% { transform: rotate(15deg); } 50% { transform: rotate(18deg) translateX(2px); } 100% { transform: rotate(15deg); } }
@keyframes hc-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

.scn-letter-oscilancy-trepidation {
  background: linear-gradient(180deg, #faf8f0 0%, #e8e0d0 100%), radial-gradient(ellipse at 60% 40%, #fff8e0 0%, transparent 60%);
}
.scn-letter-oscilancy-trepidation .window {
  position:absolute; top:5%; right:10%; width:80px; height:100px;
  background: radial-gradient(circle at 50% 50%, #c0d8ff 0%, #90b0e0 100%);
  border-radius:8% 8% 4% 4%; box-shadow: inset 0 0 30px rgba(255,255,230,0.5);
  animation: lot-window 10s ease-in-out infinite alternate;
}
.scn-letter-oscilancy-trepidation .desk {
  position:absolute; bottom:20%; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5438 100%);
  border-radius:4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.1);
  animation: lot-desk 12s ease-in-out infinite;
}
.scn-letter-oscilancy-trepidation .paper {
  position:absolute; bottom:35%; left:38%; width:70px; height:50px;
  background: linear-gradient(160deg, #f5f0e0 0%, #ddd0b0 100%);
  border-radius:2px; transform:rotate(-2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  animation: lot-paper 4s ease-in-out infinite alternate;
}
.scn-letter-oscilancy-trepidation .inkwell {
  position:absolute; bottom:38%; left:45%; width:16px; height:18px;
  background: radial-gradient(circle at 30% 30%, #4a3c28 0%, #1a140e 100%);
  border-radius:50% 50% 40% 40% / 30% 30% 40% 40%;
  animation: lot-ink 8s ease-in-out infinite;
}
.scn-letter-oscilancy-trepidation .quill {
  position:absolute; bottom:45%; left:47%; width:30px; height:6px;
  background: linear-gradient(90deg, #c0a070 0%, #e8d0a0 50%, #f0e0c0 100%);
  border-radius:40%; transform-origin: left center;
  animation: lot-quill 2s ease-in-out infinite alternate;
}
.scn-letter-oscilancy-trepidation .candle {
  position:absolute; bottom:38%; left:28%; width:12px; height:40px;
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 100%);
  border-radius:2px;
  animation: lot-candle 6s ease-in-out infinite;
}
.scn-letter-oscilancy-trepidation .flame {
  position:absolute; bottom:62%; left:28.5%; width:8px; height:14px;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #ff8040 70%, #c03020 100%);
  border-radius:50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 0 16px 6px rgba(255,200,100,0.6);
  animation: lot-flame 0.8s ease-in-out infinite alternate;
}
.scn-letter-oscilancy-trepidation .dust-a,
.scn-letter-oscilancy-trepidation .dust-b {
  position:absolute; width:4px; height:4px;
  background: rgba(200,190,170,0.3); border-radius:50%;
  animation: lot-dust 15s linear infinite;
}
.scn-letter-oscilancy-trepidation .dust-a { top:40%; left:20%; animation-delay:-3s; }
.scn-letter-oscilancy-trepidation .dust-b { top:60%; left:70%; animation-delay:-9s; }

@keyframes lot-window { 0% { opacity:0.7; transform:scale(1); } 50% { opacity:0.9; transform:scale(1.02); } 100% { opacity:0.7; transform:scale(0.98); } }
@keyframes lot-desk { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(0); } }
@keyframes lot-paper { 0% { transform:rotate(-2deg) translate(0,0); } 50% { transform:rotate(1deg) translate(1px,-1px); } 100% { transform:rotate(-3deg) translate(0,0); } }
@keyframes lot-ink { 0% { transform:scale(1); } 50% { transform:scale(0.95); } 100% { transform:scale(1); } }
@keyframes lot-quill { 0% { transform:rotate(-20deg) translate(0,0); } 50% { transform:rotate(10deg) translate(2px,-2px); } 100% { transform:rotate(-15deg) translate(0,0); } }
@keyframes lot-candle { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(1px); } }
@keyframes lot-flame { 0% { transform:scaleY(1) rotate(-2deg); opacity:0.9; } 50% { transform:scaleY(1.15) rotate(4deg); opacity:1; } 100% { transform:scaleY(0.95) rotate(-1deg); opacity:0.8; } }
@keyframes lot-dust { 0% { transform:translateY(0) translateX(0); opacity:0.3; } 50% { transform:translateY(-30px) translateX(20px); opacity:0.6; } 100% { transform:translateY(-60px) translateX(40px); opacity:0; } }

.scn-talleyrand-greets-grenville {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%), radial-gradient(ellipse at 50% 60%, #f0e8d8 0%, transparent 70%);
}
.scn-talleyrand-greets-grenville .wall {
  position:absolute; top:0; left:0; right:0; bottom:35%;
  background: linear-gradient(180deg, #d8ccb8 0%, #c0b098 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.05);
}
.scn-talleyrand-greets-grenville .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #a09078 0%, #807058 100%);
  border-radius:10% 10% 0 0 / 5% 5% 0 0;
}
.scn-talleyrand-greets-grenville .figure-left {
  position:absolute; bottom:25%; left:20%; width:30px; height:90px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tgg-figure-l 6s ease-in-out infinite alternate;
}
.scn-talleyrand-greets-grenville .figure-right {
  position:absolute; bottom:25%; right:20%; width:30px; height:90px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tgg-figure-r 6s ease-in-out infinite alternate;
}
.scn-talleyrand-greets-grenville .desk {
  position:absolute; bottom:28%; left:35%; right:35%; height:15%;
  background: linear-gradient(180deg, #6b5b48 0%, #4b3b28 100%);
  border-radius:4% 4% 0 0;
}
.scn-talleyrand-greets-grenville .document {
  position:absolute; bottom:32%; left:43%; width:40px; height:25px;
  background: linear-gradient(160deg, #f0e8d0 0%, #d8c8a8 100%);
  border-radius:2px; transform:rotate(-3deg);
  box-shadow: 0 1px 4px rgba(0,0,0,0.1);
}
.scn-talleyrand-greets-grenville .chandelier {
  position:absolute; top:5%; left:50%; width:60px; height:30px;
  background: radial-gradient(circle at 50% 20%, #ffd080 0%, #b08040 100%);
  border-radius:20% 20% 40% 40% / 30% 30% 50% 50%;
  box-shadow: 0 0 20px 8px rgba(255,200,100,0.3);
  transform:translateX(-50%);
  animation: tgg-chandelier 8s ease-in-out infinite;
}
@keyframes tgg-figure-l { 0% { transform:rotate(0deg) translate(0,0); } 50% { transform:rotate(-12deg) translate(-5px,2px); } 100% { transform:rotate(-2deg) translate(0,0); } }
@keyframes tgg-figure-r { 0% { transform:rotate(0deg) translate(0,0); } 50% { transform:rotate(10deg) translate(5px,2px); } 100% { transform:rotate(2deg) translate(0,0); } }
@keyframes tgg-chandelier { 0% { transform:translateX(-50%) rotate(-2deg); } 50% { transform:translateX(-50%) rotate(3deg); } 100% { transform:translateX(-50%) rotate(-1deg); } }

.scn-no-jacobin-foul {
  background: linear-gradient(180deg, #d0c8b8 0%, #b8a898 100%), radial-gradient(ellipse at 30% 40%, #e0d8c8 0%, transparent 70%);
}
.scn-no-jacobin-foul .bg-panel {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.08);
}
.scn-no-jacobin-foul .shadow {
  position:absolute; bottom:30%; left:30%; right:30%; height:20%;
  background: rgba(30,20,10,0.15);
  border-radius:50% 50% 0 0 / 80% 80% 0 0;
  animation: njf-shadow 5s ease-in-out infinite alternate;
}
.scn-no-jacobin-foul .figure {
  position:absolute; bottom:20%; left:50%; width:40px; height:110px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius:50% 50% 40% 40% / 70% 70% 40% 40%;
  transform:translateX(-50%) rotate(10deg);
  transform-origin: bottom center;
  animation: njf-figure 7s ease-in-out infinite alternate;
}
.scn-no-jacobin-foul .hand {
  position:absolute; bottom:55%; left:55%; width:20px; height:30px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius:60% 60% 40% 40% / 50% 50% 30% 30%;
  transform:rotate(-30deg);
  animation: njf-hand 3s ease-in-out infinite alternate;
}
.scn-no-jacobin-foul .hat {
  position:absolute; bottom:35%; left:45%; width:30px; height:20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius:60% 60% 10% 10% / 40% 40% 20% 20%;
  transform:rotate(5deg);
  animation: njf-hat 9s ease-in-out infinite;
}
.scn-no-jacobin-foul .stool {
  position:absolute; bottom:15%; left:42%; width:40px; height:10px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius:2px;
  box-shadow: 0 15px 0 0 #5a4a3a, 0 15px 0 2px #4a3a2a;
  animation: njf-stool 12s ease-in-out infinite;
}
.scn-no-jacobin-foul .badge {
  position:absolute; bottom:50%; left:52%; width:8px; height:8px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 100%);
  border-radius:50%;
  box-shadow: 0 0 6px 2px rgba(200,85,61,0.4);
  animation: njf-badge 4s ease-in-out infinite alternate;
}
@keyframes njf-shadow { 0% { transform:scaleX(1) scaleY(1); opacity:0.5; } 50% { transform:scaleX(1.1) scaleY(0.9); opacity:0.8; } 100% { transform:scaleX(0.95) scaleY(1.05); opacity:0.5; } }
@keyframes njf-figure { 0% { transform:translateX(-50%) rotate(10deg) translateY(0); } 50% { transform:translateX(-50%) rotate(5deg) translateY(-3px); } 100% { transform:translateX(-50%) rotate(12deg) translateY(2px); } }
@keyframes njf-hand { 0% { transform:rotate(-30deg) translate(0,0); } 50% { transform:rotate(-15deg) translate(1px,-3px); } 100% { transform:rotate(-25deg) translate(0,0); } }
@keyframes njf-hat { 0% { transform:rotate(5deg) translate(0,0); } 50% { transform:rotate(12deg) translate(2px,0); } 100% { transform:rotate(2deg) translate(0,0); } }
@keyframes njf-stool { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(1px); } }
@keyframes njf-badge { 0% { box-shadow: 0 0 6px 2px rgba(200,85,61,0.4); opacity:0.7; } 50% { box-shadow: 0 0 10px 4px rgba(200,85,61,0.6); opacity:1; } 100% { box-shadow: 0 0 6px 2px rgba(200,85,61,0.4); opacity:0.8; } }

.scn-apostate-name-church {
  background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%), radial-gradient(ellipse at 70% 30%, #e0d0b8 0%, transparent 60%);
}
.scn-apostate-name-church .apse {
  position:absolute; top:0; left:20%; right:20%; bottom:60%;
  background: linear-gradient(180deg, #d8c8b8 0%, #b8a898 100%);
  border-radius:40% 40% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.1);
}
.scn-apostate-name-church .pew {
  position:absolute; bottom:25%; left:10%; right:10%; height:15%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius:2% 2% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.1);
}
.scn-apostate-name-church .figure {
  position:absolute; bottom:20%; left:50%; width:40px; height:100px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform:translateX(-50%) rotate(20deg);
  transform-origin: bottom center;
  animation: anc-figure 4s ease-in-out infinite alternate;
}
.scn-apostate-name-church .mitre {
  position:absolute; bottom:65%; left:52%; width:20px; height:25px;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 100%);
  border-radius:40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transform:rotate(-15deg);
  animation: anc-mitre 5s ease-in-out infinite alternate;
}
.scn-apostate-name-church .cross {
  position:absolute; top:8%; left:65%; width:4px; height:60px;
  background: #8a6a4a;
  border-radius:2px;
  box-shadow: 0 0 10px rgba(138,106,74,0.3);
  animation: anc-cross 10s ease-in-out infinite;
}
.scn-apostate-name-church .cross::after {
  content:''; position:absolute; top:10px; left:-12px; width:28px; height:4px;
  background: #8a6a4a; border-radius:2px;
}
.scn-apostate-name-church .candle {
  position:absolute; bottom:25%; left:70%; width:8px; height:30px;
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 100%);
  border-radius:2px;
}
.scn-apostate-name-church .flame {
  position:absolute; bottom:52%; left:70.5%; width:6px; height:12px;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #ff8040 60%, #a03020 100%);
  border-radius:50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 0 12px 4px rgba(255,200,100,0.5);
  animation: anc-flame 0.6s ease-in-out infinite alternate;
}
@keyframes anc-figure { 0% { transform:translateX(-50%) rotate(20deg) translateY(0); } 50% { transform:translateX(-50%) rotate(15deg) translateY(-4px); } 100% { transform:translateX(-50%) rotate(25deg) translateY(2px); } }
@keyframes anc-mitre { 0% { transform:rotate(-15deg) translate(0,0); } 50% { transform:rotate(-5deg) translate(2px,-1px); } 100% { transform:rotate(-20deg) translate(0,0); } }
@keyframes anc-cross { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(1px); } }
@keyframes anc-flame { 0% { transform:scaleY(1) rotate(-3deg); opacity:0.9; } 50% { transform:scaleY(1.2) rotate(3deg); opacity:1; } 100% { transform:scaleY(0.9) rotate(-2deg); opacity:0.75; } }

/* scene: mother-holy-name */

.scn-mother-holy-name {
  background: 
    linear-gradient(145deg, #f5e6c8 0%, #e0c9a0 50%, #b59060 100%),
    radial-gradient(circle at 50% 30%, #fff8e0 0%, transparent 60%);
}
.scn-mother-holy-name .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #d4bc8c 0%, #b6905a 100%);
  opacity: 0.7;
}
.scn-mother-holy-name .window {
  position: absolute; top: 8%; left: 35%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 40%, #fffbe0 0%, #ffe090 40%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 80px #ffe090, 0 0 120px rgba(255,224,144,0.4);
  animation: mhn-glow 6s ease-in-out infinite alternate;
}
.scn-mother-holy-name .altar {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #8a6a40 0%, #5a4020 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  transform: perspective(400px) rotateX(2deg);
}
.scn-mother-holy-name .figure {
  position: absolute; bottom: 28%; left: 46%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mhn-kneel 4s ease-in-out infinite;
}
.scn-mother-holy-name .lightbeam {
  position: absolute; top: 20%; left: 38%; width: 24%; height: 60%;
  background: linear-gradient(180deg, rgba(255,248,224,0.5) 0%, rgba(255,224,144,0.1) 100%);
  clip-path: polygon(30% 0%, 70% 0%, 90% 100%, 10% 100%);
  opacity: 0.8;
  animation: mhn-beam 8s ease-in-out infinite alternate;
}
.scn-mother-holy-name .halo {
  position: absolute; top: 6%; left: 43%; width: 14%; height: 14%;
  background: radial-gradient(circle, #fff8e0 0%, rgba(255,248,224,0.3) 50%, transparent 80%);
  border-radius: 50%;
  animation: mhn-pulse 3s ease-in-out infinite alternate;
}
.scn-mother-holy-name .shadow {
  position: absolute; bottom: 18%; left: 32%; width: 36%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
}
@keyframes mhn-glow {
  0% { box-shadow: inset 0 0 60px #ffe090, 0 0 100px rgba(255,224,144,0.3); }
  50% { box-shadow: inset 0 0 100px #ffd070, 0 0 160px rgba(255,208,112,0.5); }
  100% { box-shadow: inset 0 0 80px #ffe090, 0 0 120px rgba(255,224,144,0.4); }
}
@keyframes mhn-kneel {
  0%,100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-5px) rotate(1deg); }
  70% { transform: translateY(-2px) rotate(-1deg); }
}
@keyframes mhn-beam {
  0% { opacity: 0.6; transform: scaleY(0.95); }
  50% { opacity: 0.9; transform: scaleY(1.05); }
  100% { opacity: 0.7; transform: scaleY(1); }
}
@keyframes mhn-pulse {
  0% { transform: scale(0.9); opacity: 0.6; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); opacity: 0.8; }
}

/* scene: mother-of-infant-soul */

.scn-mother-of-infant-soul {
  background:
    linear-gradient(135deg, #fdebd0 0%, #f5d6b8 40%, #e0b890 100%),
    radial-gradient(circle at 50% 80%, #ffe0c0 0%, transparent 60%);
}
.scn-mother-of-infant-soul .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f8e0c8 0%, #d8b090 100%);
  opacity: 0.6;
}
.scn-mother-of-infant-soul .cradle {
  position: absolute; bottom: 14%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #b08050 0%, #805030 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: mis-rock 4s ease-in-out infinite;
}
.scn-mother-of-infant-soul .mother {
  position: absolute; bottom: 18%; left: 38%; width: 24%; height: 32%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mis-sway 6s ease-in-out infinite;
}
.scn-mother-of-infant-soul .infant {
  position: absolute; bottom: 20%; left: 44%; width: 8%; height: 6%;
  background: radial-gradient(circle, #e8c8a8 0%, #c09070 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  animation: mis-breathe 2s ease-in-out infinite alternate;
}
.scn-mother-of-infant-soul .angel-wing {
  position: absolute; top: 5%; left: 50%; width: 30%; height: 40%;
  background: linear-gradient(135deg, rgba(255,240,210,0.6) 0%, rgba(255,220,180,0.1) 100%);
  clip-path: polygon(0% 100%, 30% 30%, 60% 0%, 80% 40%, 100% 100%);
  filter: blur(8px);
  animation: mis-glide 12s ease-in-out infinite alternate;
}
.scn-mother-of-infant-soul .glow {
  position: absolute; top: 2%; left: 40%; width: 20%; height: 20%;
  background: radial-gradient(circle, #fff8e0 0%, rgba(255,248,224,0.3) 50%, transparent 80%);
  border-radius: 50%;
  animation: mis-pulse 3s ease-in-out infinite alternate;
}
@keyframes mis-rock {
  0%,100% { transform: rotate(0deg); }
  25% { transform: rotate(2deg); }
  75% { transform: rotate(-2deg); }
}
@keyframes mis-sway {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-1deg); }
}
@keyframes mis-breathe {
  0% { transform: scale(1); }
  100% { transform: scale(1.05); }
}
@keyframes mis-glide {
  0% { transform: translateX(0) rotate(0deg); opacity: 0.3; }
  50% { transform: translateX(10px) rotate(2deg); opacity: 0.6; }
  100% { transform: translateX(-5px) rotate(-1deg); opacity: 0.4; }
}
@keyframes mis-pulse {
  0% { transform: scale(0.9); opacity: 0.7; }
  100% { transform: scale(1.2); opacity: 1; }
}

/* scene: ode-variant-notes */

.scn-ode-variant-notes {
  background:
    linear-gradient(180deg, #dac8a8 0%, #c0a878 50%, #a08858 100%),
    radial-gradient(circle at 70% 40%, #f0e0c0 0%, transparent 60%);
}
.scn-ode-variant-notes .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 60%;
  background: linear-gradient(180deg, #6a5030 0%, #4a3718 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-ode-variant-notes .paper-1 {
  position: absolute; bottom: 30%; left: 20%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #fff8e0 0%, #f0e0c0 100%);
  border-radius: 4px;
  transform: rotate(-4deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: ovn-float 8s ease-in-out infinite;
}
.scn-ode-variant-notes .paper-2 {
  position: absolute; bottom: 35%; left: 45%; width: 28%; height: 18%;
  background: linear-gradient(180deg, #f5eccc 0%, #e8d8b0 100%);
  border-radius: 4px;
  transform: rotate(6deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: ovn-float 10s ease-in-out infinite reverse;
}
.scn-ode-variant-notes .inkwell {
  position: absolute; bottom: 45%; left: 18%; width: 6%; height: 6%;
  background: radial-gradient(circle, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.scn-ode-variant-notes .quill {
  position: absolute; bottom: 48%; left: 20%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #c0a070 0%, #a08050 100%);
  transform: rotate(30deg);
  transform-origin: bottom center;
  border-radius: 0 0 50% 50%;
  animation: ovn-quill 4s ease-in-out infinite alternate;
}
.scn-ode-variant-notes .book {
  position: absolute; bottom: 20%; left: 60%; width: 15%; height: 24%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%);
  border-radius: 6% 6% 10% 10%;
  box-shadow: 0 6px 16px rgba(0,0,0,0.4);
  transform: perspective(300px) rotateY(10deg);
}
.scn-ode-variant-notes .shadow-ink {
  position: absolute; bottom: 42%; left: 16%; width: 10%; height: 4%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ovn-spread 6s ease-in-out infinite alternate;
}
@keyframes ovn-float {
  0% { transform: rotate(-4deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-8px); }
  100% { transform: rotate(-4deg) translateY(0); }
}
@keyframes ovn-float2 {
  0% { transform: rotate(6deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-6px); }
  100% { transform: rotate(6deg) translateY(0); }
}
@keyframes ovn-quill {
  0% { transform: rotate(30deg) scaleY(1); }
  50% { transform: rotate(25deg) scaleY(1.02); }
  100% { transform: rotate(30deg) scaleY(1); }
}
@keyframes ovn-spread {
  0% { transform: scaleX(1); opacity: 0.3; }
  100% { transform: scaleX(1.5); opacity: 0.6; }
}

/* scene: ode-variant-lines */

.scn-ode-variant-lines {
  background:
    linear-gradient(180deg, #f0e0c8 0%, #d8c8a8 50%, #c0a880 100%),
    radial-gradient(circle at 60% 50%, #fff8e0 0%, transparent 60%);
}
.scn-ode-variant-lines .page {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 70%;
  background: linear-gradient(180deg, #fff8ec 0%, #f5e8d0 100%);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.2);
}
.scn-ode-variant-lines .line-1 {
  position: absolute; bottom: 60%; left: 20%; width: 60%; height: 1%;
  background: #8a7050;
  border-radius: 2px;
  opacity: 0.6;
  animation: ovl-type 4s ease-in-out infinite;
}
.scn-ode-variant-lines .line-2 {
  position: absolute; bottom: 50%; left: 18%; width: 64%; height: 1%;
  background: #8a7050;
  border-radius: 2px;
  opacity: 0.5;
  animation: ovl-type 5s ease-in-out infinite 0.5s;
}
.scn-ode-variant-lines .line-3 {
  position: absolute; bottom: 40%; left: 22%; width: 56%; height: 1%;
  background: #8a7050;
  border-radius: 2px;
  opacity: 0.4;
  animation: ovl-type 6s ease-in-out infinite 1s;
}
.scn-ode-variant-lines .hand {
  position: absolute; bottom: 30%; left: 35%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: ovl-write 3s ease-in-out infinite alternate;
}
.scn-ode-variant-lines .quill {
  position: absolute; bottom: 35%; left: 40%; width: 1.5%; height: 18%;
  background: linear-gradient(180deg, #c0a070 0%, #a08050 100%);
  transform: rotate(45deg);
  transform-origin: bottom center;
  border-radius: 0 0 50% 50%;
  animation: ovl-quill 3s ease-in-out infinite alternate;
}
.scn-ode-variant-lines .ink-spot {
  position: absolute; bottom: 45%; left: 45%; width: 3%; height: 3%;
  background: radial-gradient(circle, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: ovl-spot 8s ease-in-out infinite;
}
.scn-ode-variant-lines .lamp {
  position: absolute; top: 5%; right: 15%; width: 12%; height: 15%;
  background: radial-gradient(circle at 50% 30%, #fff8e0 0%, #f0d090 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px #ffd090, 0 0 120px rgba(255,208,144,0.3);
  animation: ovl-lamp 4s ease-in-out infinite alternate;
}
@keyframes ovl-type {
  0% { width: 60%; opacity: 0.6; }
  25% { width: 65%; opacity: 0.8; }
  50% { width: 58%; opacity: 0.5; }
  75% { width: 62%; opacity: 0.7; }
  100% { width: 60%; opacity: 0.6; }
}
@keyframes ovl-write {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-4px); }
  100% { transform: rotate(-12deg) translateY(0); }
}
@keyframes ovl-quill {
  0% { transform: rotate(45deg); }
  50% { transform: rotate(42deg); }
  100% { transform: rotate(45deg); }
}
@keyframes ovl-spot {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.3); opacity: 0.5; }
  100% { transform: scale(1); opacity: 0.8; }
}
@keyframes ovl-lamp {
  0% { box-shadow: 0 0 60px #ffd090, 0 0 100px rgba(255,208,144,0.2); }
  50% { box-shadow: 0 0 100px #ffe0a0, 0 0 140px rgba(255,224,160,0.4); }
  100% { box-shadow: 0 0 80px #ffd090, 0 0 120px rgba(255,208,144,0.3); }
}

/* Scene: apologia-poets-ken */

.scn-apologia-poets-ken {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a1a0e 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-apologia-poets-ken .room-bg {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, transparent 0%, #0a0a0a 100%);
}
.scn-apologia-poets-ken .window {
  position: absolute; top: 8%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #1a2a4a 0%, #2a3a5a 100%);
  border: 4px solid #5a4a3a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(100,140,200,0.3);
  animation: appk-window 15s ease-in-out infinite alternate;
}
.scn-apologia-poets-ken .desk {
  position: absolute; bottom: 8%; left: 25%; width: 50%; height: 18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-apologia-poets-ken .pipe {
  position: absolute; bottom: 24%; left: 38%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: appk-pipe 2s ease-in-out infinite alternate;
}
.scn-apologia-poets-ken .smoke-1 {
  position: absolute; bottom: 32%; left: 39%; width: 4%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: appk-smoke-1 12s linear infinite;
}
.scn-apologia-poets-ken .smoke-2 {
  position: absolute; bottom: 34%; left: 40%; width: 3%; height: 18%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,0.3) 0%, transparent 100%);
  filter: blur(5px);
  animation: appk-smoke-2 14s linear infinite;
  animation-delay: 2s;
}
.scn-apologia-poets-ken .phantom-1 {
  position: absolute; top: 15%; left: 55%; width: 20%; height: 40%;
  background: linear-gradient(180deg, rgba(200,220,240,0.15) 0%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(6px);
  animation: appk-phantom 8s ease-in-out infinite alternate;
}
.scn-apologia-poets-ken .phantom-2 {
  position: absolute; top: 20%; left: 20%; width: 15%; height: 35%;
  background: linear-gradient(180deg, rgba(240,220,200,0.1) 0%, transparent 100%);
  border-radius: 40% 60% 50% 50% / 50% 40% 60% 50%;
  filter: blur(8px);
  animation: appk-phantom 10s ease-in-out infinite alternate-reverse;
}
@keyframes appk-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(100,140,200,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 40px rgba(100,140,200,0.5); }
  100% { opacity: 0.8; box-shadow: inset 0 0 25px rgba(100,140,200,0.3); }
}
@keyframes appk-pipe {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes appk-smoke-1 {
  0% { transform: translateY(0) scaleX(1); opacity: 0.6; }
  50% { transform: translateY(-40px) scaleX(1.5); opacity: 0.3; }
  100% { transform: translateY(-80px) scaleX(2); opacity: 0; }
}
@keyframes appk-smoke-2 {
  0% { transform: translateY(0) scaleX(1); opacity: 0.5; }
  50% { transform: translateY(-35px) scaleX(1.8); opacity: 0.2; }
  100% { transform: translateY(-70px) scaleX(2.5); opacity: 0; }
}
@keyframes appk-phantom {
  0% { transform: translateY(0) scale(0.9); opacity: 0.2; }
  50% { transform: translateY(-10px) scale(1.1); opacity: 0.5; }
  100% { transform: translateY(5px) scale(0.95); opacity: 0.3; }
}

/* Scene: poem-note-wreck-memory */

.scn-poem-note-wreck-memory {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #c4b094 50%, #b0a090 100%),
    radial-gradient(ellipse at 60% 30%, #fff8e8 0%, transparent 70%);
}
.scn-poem-note-wreck-memory .study-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d4c8b8 0%, #b8a898 100%);
  border-bottom: 2px solid #8a7a6a;
}
.scn-poem-note-wreck-memory .desk {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 25%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 6px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-poem-note-wreck-memory .manuscript {
  position: absolute; bottom: 20%; left: 30%; width: 25%; height: 15%;
  background: linear-gradient(135deg, #f5f0e0 0%, #e0d8c8 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: pnwm-paper 6s ease-in-out infinite;
}
.scn-poem-note-wreck-memory .inkwell {
  position: absolute; bottom: 22%; left: 22%; width: 6%; height: 8%;
  background: radial-gradient(circle at 30% 30%, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: pnwm-ink 4s ease-in-out infinite alternate;
}
.scn-poem-note-wreck-memory .quill {
  position: absolute; bottom: 28%; left: 20%; width: 2%; height: 14%;
  background: linear-gradient(180deg, #f0e8d8 0%, #c8b8a0 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: pnwm-quill 3s ease-in-out infinite alternate;
}
.scn-poem-note-wreck-memory .shipwreck {
  position: absolute; bottom: 15%; left: 60%; width: 12%; height: 12%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  clip-path: polygon(0 100%, 20% 0, 40% 20%, 60% 0, 80% 20%, 100% 0, 80% 100%);
  transform: rotate(-15deg);
  animation: pnwm-ship 8s ease-in-out infinite alternate;
}
.scn-poem-note-wreck-memory .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.2) 100%);
  animation: pnwm-shadow 12s ease-in-out infinite alternate;
}
@keyframes pnwm-paper {
  0% { transform: translate(0, 0) rotate(0deg); }
  50% { transform: translate(2px, -1px) rotate(1deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes pnwm-ink {
  0% { box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
  50% { box-shadow: 0 4px 12px rgba(0,0,0,0.7); }
  100% { box-shadow: 0 2px 8px rgba(0,0,0,0.5); }
}
@keyframes pnwm-quill {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes pnwm-ship {
  0% { transform: rotate(-15deg) translateX(0); }
  50% { transform: rotate(-5deg) translateX(3px); }
  100% { transform: rotate(-18deg) translateX(-2px); }
}
@keyframes pnwm-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.2; }
}

/* Scene: forget-me-not-flower */

.scn-forget-me-not-flower {
  background: 
    linear-gradient(180deg, #87CEEB 0%, #90EE90 50%, #228B22 100%),
    radial-gradient(ellipse at 80% 20%, #fff5cc 0%, transparent 60%);
}
.scn-forget-me-not-flower .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0e0ff 0%, #87CEEB 100%);
  animation: fmnf-sky 20s ease-in-out infinite alternate;
}
.scn-forget-me-not-flower .meadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #90EE90 0%, #228B22 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-forget-me-not-flower .stream {
  position: absolute; bottom: 20%; left: 10%; width: 20%; height: 5%;
  background: linear-gradient(90deg, #4a9eff 0%, #7ac8ff 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: fmnf-stream 8s linear infinite alternate;
}
.scn-forget-me-not-flower .flower-1 {
  position: absolute; bottom: 30%; left: 25%; width: 4%; height: 8%;
  background: radial-gradient(circle at 50% 60%, #6a8cff 0%, #3a5cff 70%, #1a2c9a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: fmnf-flower 3s ease-in-out infinite;
}
.scn-forget-me-not-flower .flower-2 {
  position: absolute; bottom: 28%; left: 45%; width: 5%; height: 10%;
  background: radial-gradient(circle at 50% 60%, #7a9cff 0%, #4a6cff 70%, #2a3caa 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: fmnf-flower 4s ease-in-out infinite -1s;
}
.scn-forget-me-not-flower .flower-3 {
  position: absolute; bottom: 32%; left: 60%; width: 3%; height: 7%;
  background: radial-gradient(circle at 50% 60%, #8aacff 0%, #5a7cff 70%, #3a4cba 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: fmnf-flower 3.5s ease-in-out infinite -2s;
}
.scn-forget-me-not-flower .breeze {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 10%;
  background: linear-gradient(90deg, transparent 0%, rgba(200,230,255,0.3) 50%, transparent 100%);
  filter: blur(8px);
  animation: fmnf-breeze 10s linear infinite;
}
@keyframes fmnf-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes fmnf-stream {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(5px) scaleY(1.2); }
  100% { transform: translateX(-5px) scaleY(1); }
}
@keyframes fmnf-flower {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes fmnf-breeze {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

/* Scene: emmeline-embroidered-flowers */

.scn-emmeline-embroidered-flowers {
  background: 
    linear-gradient(180deg, #ffd1dc 0%, #b0e0e6 40%, #f0e68c 100%),
    radial-gradient(ellipse at 60% 20%, #fff5ee 0%, transparent 60%);
}
.scn-emmeline-embroidered-flowers .dawn-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffb6c1 0%, #b0e0e6 100%);
  animation: eefl-dawn 15s ease-in-out infinite alternate;
}
.scn-emmeline-embroidered-flowers .bower {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  clip-path: polygon(0 80%, 10% 0, 90% 0, 100% 80%, 80% 100%, 20% 100%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-emmeline-embroidered-flowers .vines {
  position: absolute; bottom: 50%; left: 22%; width: 56%; height: 20%;
  background: linear-gradient(90deg, #4a7a3a 0%, #6a9a5a 50%, #4a7a3a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: eefl-vines 8s ease-in-out infinite alternate;
}
.scn-emmeline-embroidered-flowers .flowers-hanging {
  position: absolute; bottom: 45%; left: 25%; width: 50%; height: 10%;
  background: radial-gradient(circle at 50% 50%, #ffb7c5 0%, #ff6b9d 50%, transparent 100%);
  filter: blur(3px);
  animation: eefl-hang 6s ease-in-out infinite alternate;
}
.scn-emmeline-embroidered-flowers .shadow-1 {
  position: absolute; bottom: 0; left: 0; width: 40%; height: 40%;
  background: linear-gradient(135deg, rgba(0,0,0,0.1) 0%, transparent 100%);
  animation: eefl-shadow 10s ease-in-out infinite alternate;
}
.scn-emmeline-embroidered-flowers .shadow-2 {
  position: absolute; bottom: 0; right: 0; width: 30%; height: 35%;
  background: linear-gradient(225deg, rgba(0,0,0,0.15) 0%, transparent 100%);
  animation: eefl-shadow 12s ease-in-out infinite alternate-reverse;
}
.scn-emmeline-embroidered-flowers .morning-light {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.3) 0%, transparent 70%);
  animation: eefl-light 20s ease-in-out infinite alternate;
}
.scn-emmeline-embroidered-flowers .butterfly {
  position: absolute; top: 20%; left: 40%; width: 6%; height: 6%;
  background: radial-gradient(circle at 30% 30%, #ff8c00 0%, #ffd700 70%, transparent 100%);
  clip-path: polygon(0 50%, 30% 0, 50% 30%, 70% 0, 100% 50%, 70% 100%, 50% 70%, 30% 100%);
  animation: eefl-butterfly 5s ease-in-out infinite;
}
@keyframes eefl-dawn {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes eefl-vines {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.05); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes eefl-hang {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes eefl-shadow {
  0% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.02); }
  100% { opacity: 0.3; transform: scale(0.98); }
}
@keyframes eefl-light {
  0% { opacity: 0.2; transform: scale(0.95); }
  50% { opacity: 0.5; transform: scale(1.05); }
  100% { opacity: 0.3; transform: scale(1); }
}
@keyframes eefl-butterfly {
  0% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(10px, -5px) rotate(10deg); }
  50% { transform: translate(20px, 0) rotate(-5deg); }
  75% { transform: translate(10px, 5px) rotate(5deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}

.scn-matthisson-original { background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 50%, #8b6f47 100%), radial-gradient(ellipse at 50% 0%, #fff7e6 0%, transparent 60%); }
.scn-matthisson-original .desk { position: absolute; bottom: 0; left: 5%; right: 5%; height: 20%; background: linear-gradient(180deg, #a08060 0%, #604020 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.3); animation: mt-desk 6s ease-in-out infinite alternate; }
.scn-matthisson-original .book { position: absolute; bottom: 15%; left: 35%; width: 16%; height: 8%; background: linear-gradient(180deg, #8b5e3c 0%, #5c3a1e 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: mt-book 4s ease-in-out infinite; }
.scn-matthisson-original .candle { position: absolute; bottom: 22%; left: 48%; width: 3%; height: 12%; background: linear-gradient(180deg, #ffe8c0 0%, #c8a060 50%, #806030 100%); border-radius: 2px; animation: mt-candle 1.5s ease-in-out infinite alternate; }
.scn-matthisson-original .candle-glow { position: absolute; bottom: 28%; left: 46.5%; width: 7%; height: 7%; background: radial-gradient(circle, #ffdd80 0%, #ffb040 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px #ffdd80; animation: mt-glow 3s ease-in-out infinite alternate; }
.scn-matthisson-original .window { position: absolute; top: 8%; right: 10%; width: 20%; height: 30%; background: linear-gradient(180deg, #fff8f0 0%, #d4d4e0 100%); border: 4px solid #6b4a2a; border-radius: 2px; box-shadow: inset 0 0 20px #ffe8b0; animation: mt-window 8s ease-in-out infinite alternate; }
.scn-matthisson-original .rug { position: absolute; bottom: 2%; left: 15%; right: 15%; height: 10%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 50% / 100% 100% 0 0; opacity: 0.8; animation: mt-rug 12s ease-in-out infinite; }
@keyframes mt-desk { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes mt-book { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-5px) rotate(-2deg); } }
@keyframes mt-candle { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9; } 50% { transform: scaleY(1.08) scaleX(0.98); opacity: 1; } 100% { transform: scaleY(0.95) scaleX(1.02); opacity: 0.85; } }
@keyframes mt-glow { 0% { transform: scale(0.95); box-shadow: 0 0 20px 5px #ffdd80; } 50% { transform: scale(1.1); box-shadow: 0 0 40px 15px #ffdd80; } 100% { transform: scale(1); box-shadow: 0 0 25px 8px #ffdd80; } }
@keyframes mt-window { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mt-rug { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.02) scaleX(0.98); } 100% { transform: scaleY(1) scaleX(1); } }

.scn-homeric-hexameter-billows { background: linear-gradient(180deg, #6b7b8d 0%, #4a5b6e 50%, #2d3a4a 100%), radial-gradient(ellipse at 50% 80%, #3a4b5e 0%, transparent 70%); }
.scn-homeric-hexameter-billows .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #5a6b7e 0%, #3a4b5e 100%); animation: he-sky 10s ease-in-out infinite alternate; }
.scn-homeric-hexameter-billows .ocean { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; animation: he-ocean 8s ease-in-out infinite alternate; }
.scn-homeric-hexameter-billows .ship { position: absolute; bottom: 38%; left: 40%; width: 12%; height: 14%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; transform-origin: center bottom; animation: he-ship 6s ease-in-out infinite; }
.scn-homeric-hexameter-billows .sail { position: absolute; bottom: 42%; left: 42%; width: 6%; height: 18%; background: linear-gradient(180deg, #c8b8a0 0%, #8a7a6a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; transform-origin: bottom center; animation: he-sail 5s ease-in-out infinite alternate; }
.scn-homeric-hexameter-billows .wave-1 { position: absolute; bottom: 30%; left: 0; width: 140%; height: 15%; background: linear-gradient(180deg, transparent 0%, #2a4a5e 40%, #1a3a4e 100%); border-radius: 40%; animation: he-wave1 12s linear infinite; }
.scn-homeric-hexameter-billows .wave-2 { position: absolute; bottom: 35%; left: -20%; width: 150%; height: 12%; background: linear-gradient(180deg, transparent 0%, #3a5a6e 40%, #2a4a5e 100%); border-radius: 40%; animation: he-wave2 15s linear infinite; }
.scn-homeric-hexameter-billows .cloud { position: absolute; top: 12%; right: 8%; width: 20%; height: 8%; background: linear-gradient(180deg, rgba(200,210,220,0.6) 0%, rgba(160,170,180,0.2) 100%); border-radius: 50%; filter: blur(5px); animation: he-cloud 40s linear infinite; }
@keyframes he-sky { 0% { opacity: 0.75; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes he-ocean { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-5px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes he-ship { 0%,100% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(10px) rotate(0deg); } 50% { transform: translateX(20px) rotate(2deg); } 75% { transform: translateX(10px) rotate(0deg); } }
@keyframes he-sail { 0% { transform: scaleX(1) rotate(-3deg); } 50% { transform: scaleX(1.08) rotate(0deg); } 100% { transform: scaleX(1) rotate(3deg); } }
@keyframes he-wave1 { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-30%) translateY(4px); } 100% { transform: translateX(-60%) translateY(0); } }
@keyframes he-wave2 { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-30%) translateY(-3px); } 100% { transform: translateX(-60%) translateY(0); } }
@keyframes he-cloud { 0% { transform: translateX(0); } 50% { transform: translateX(-30px); } 100% { transform: translateX(-60px); } }

.scn-pentameter-column { background: linear-gradient(135deg, #e8dcc0 0%, #d4c5a9 50%, #b8a78e 100%), radial-gradient(ellipse at 30% 40%, #fff8ee 0%, transparent 60%); }
.scn-pentameter-column .column { position: absolute; bottom: 10%; left: 30%; width: 12%; height: 70%; background: linear-gradient(90deg, #b8a88a 0%, #d4c4a6 30%, #c8b898 70%, #a8a080 100%); border-radius: 4px; box-shadow: 2px 0 10px rgba(0,0,0,0.2); animation: pe-column 8s ease-in-out infinite alternate; }
.scn-pentameter-column .capital { position: absolute; bottom: 78%; left: 26%; width: 20%; height: 6%; background: linear-gradient(180deg, #d4c4a6 0%, #b8a88a 100%); border-radius: 6px 6px 2px 2px; box-shadow: 0 -2px 6px rgba(0,0,0,0.15); animation: pe-capital 6s ease-in-out infinite alternate; }
.scn-pentameter-column .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 12%; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; animation: pe-floor 10s ease-in-out infinite; }
.scn-pentameter-column .light-beam { position: absolute; top: 0; left: 20%; width: 25%; height: 50%; background: linear-gradient(180deg, rgba(255,250,230,0.6) 0%, transparent 100%); clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%); animation: pe-beam 12s ease-in-out infinite alternate; }
.scn-pentameter-column .shadow { position: absolute; bottom: 10%; left: 42%; width: 8%; height: 60%; background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.3) 100%); border-radius: 2px; animation: pe-shadow 7s ease-in-out infinite alternate; }
.scn-pentameter-column .scroll { position: absolute; bottom: 24%; left: 55%; width: 14%; height: 5%; background: linear-gradient(180deg, #d4b890 0%, #b09870 100%); border-radius: 20% 20% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: pe-scroll 5s ease-in-out infinite; }
@keyframes pe-column { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(2px) scaleY(1.01); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes pe-capital { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.05) scaleY(0.98); } 100% { transform: scaleX(1) scaleY(1); } }
@keyframes pe-floor { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.02); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.9; } }
@keyframes pe-beam { 0% { opacity: 0.3; transform: rotate(0deg) translateX(0); } 50% { opacity: 0.8; transform: rotate(2deg) translateX(5px); } 100% { opacity: 0.5; transform: rotate(0deg) translateX(0); } }
@keyframes pe-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-3px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes pe-scroll { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }

.scn-cataract-youthful-life { background: linear-gradient(180deg, #f7c0a0 0%, #6b8fa0 30%, #2a4a5a 70%, #1a2a3a 100%), radial-gradient(ellipse at 30% 20%, #ffd9b0 0%, transparent 60%); }
.scn-cataract-youthful-life .cliff { position: absolute; bottom: 0; left: 0; width: 35%; height: 70%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 0 60% 0 0 / 0 40% 0 0; box-shadow: inset -10px 0 20px rgba(0,0,0,0.5); animation: ca-cliff 12s ease-in-out infinite alternate; }
.scn-cataract-youthful-life .waterfall { position: absolute; bottom: 0; left: 32%; width: 18%; height: 60%; background: linear-gradient(180deg, rgba(230,250,255,0.7) 0%, rgba(200,230,240,0.5) 50%, rgba(180,210,220,0.3) 100%); border-radius: 0 0 20% 20% / 0 0 40% 40%; filter: blur(2px); animation: ca-fall 3s ease-in-out infinite alternate; }
.scn-cataract-youthful-life .pool { position: absolute; bottom: 0; left: 28%; right: 28%; height: 15%; background: radial-gradient(ellipse at 50% 30%, #4a6a7a 0%, #2a4a5a 100%); border-radius: 50%; box-shadow: 0 -8px 20px rgba(0,0,0,0.4); animation: ca-pool 8s ease-in-out infinite; }
.scn-cataract-youthful-life .mist { position: absolute; bottom: 15%; left: 20%; width: 60%; height: 20%; background: linear-gradient(180deg, rgba(255,255,255,0.1) 0%, rgba(200,220,230,0.2) 100%); border-radius: 50%; filter: blur(15px); animation: ca-mist 6s ease-in-out infinite alternate; }
.scn-cataract-youthful-life .ray-1 { position: absolute; top: 0; left: 20%; width: 10%; height: 60%; background: linear-gradient(180deg, rgba(255,215,140,0.4) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); animation: ca-ray1 9s ease-in-out infinite alternate; }
.scn-cataract-youthful-life .ray-2 { position: absolute; top: 5%; left: 40%; width: 8%; height: 50%; background: linear-gradient(180deg, rgba(255,215,140,0.3) 0%, transparent 100%); clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%); animation: ca-ray2 11s ease-in-out infinite alternate; }
.scn-cataract-youthful-life .figure { position: absolute; bottom: 25%; left: 15%; width: 10%; height: 20%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca-figure 4s ease-in-out infinite; }
@keyframes ca-cliff { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes ca-fall { 0% { transform: translateY(0) scaleY(1); opacity: 0.7; } 50% { transform: translateY(-6px) scaleY(1.06); opacity: 1; } 100% { transform: translateY(0) scaleY(1); opacity: 0.8; } }
@keyframes ca-pool { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.04) scaleX(1.02); } 100% { transform: scaleY(1) scaleX(1); } }
@keyframes ca-mist { 0% { opacity: 0.3; transform: translateX(0) scaleY(1); } 50% { opacity: 0.7; transform: translateX(10px) scaleY(1.1); } 100% { opacity: 0.4; transform: translateX(0) scaleY(1); } }
@keyframes ca-ray1 { 0% { opacity: 0.2; transform: rotate(-2deg); } 50% { opacity: 0.6; transform: rotate(3deg); } 100% { opacity: 0.3; transform: rotate(0deg); } }
@keyframes ca-ray2 { 0% { opacity: 0.1; transform: rotate(2deg); } 50% { opacity: 0.5; transform: rotate(-3deg); } 100% { opacity: 0.2; transform: rotate(0deg); } }
@keyframes ca-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(3deg); } 50% { transform: translateX(16px) rotate(0deg); } 75% { transform: translateX(8px) rotate(-3deg); } }

/* ===== anne-ballad-wind-rain (dark/mournful) ===== */

.scn-anne-ballad-wind-rain {
  background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 30%, #2a1a1a 70%, #1a0f0f 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a2a 0%, transparent 60%);
}
.scn-anne-ballad-wind-rain .bg-storm { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 60%, transparent 100%); animation: abwr-storm-sky 15s ease-in-out infinite alternate; }
.scn-anne-ballad-wind-rain .rain-front { position:absolute; inset:0; background: repeating-linear-gradient(45deg, transparent 0px, transparent 4px, rgba(180,200,255,.06) 4px, rgba(180,200,255,.06) 5px); animation: abwr-rain 0.8s linear infinite; }
.scn-anne-ballad-wind-rain .wind-swept-branch { position:absolute; top:12%; left:60%; width:160px; height:6px; background: linear-gradient(90deg, #1a0f0f 0%, #2a1a0f 60%, transparent 100%); border-radius:30% 0 0 30%; transform-origin: left center; animation: abwr-branch 4s ease-in-out infinite; }
.scn-anne-ballad-wind-rain .wind-swept-branch::after { content:''; position:absolute; right:10%; top:-18px; width:30px; height:24px; border-radius:50%; box-shadow: inset -8px 0 6px rgba(30,20,10,.4); transform:rotate(-20deg); }
.scn-anne-ballad-wind-rain .grave-mound { position:absolute; bottom:18%; left:20%; width:80px; height:30px; background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, #1a1a0f 100%); border-radius:50%; box-shadow: inset 0 -4px 10px rgba(0,0,0,.5); animation: abwr-grave 20s ease-in-out infinite; }
.scn-anne-ballad-wind-rain .cloaked-figure { position:absolute; bottom:22%; left:40%; width:28px; height:60px; background: radial-gradient(ellipse at 50% 30%, #1a1a2a 0%, #0a0a1a 70%, transparent 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: abwr-figure 5s ease-in-out infinite; }
.scn-anne-ballad-wind-rain .lantern-glow { position:absolute; bottom:30%; left:38%; width:12px; height:16px; background: radial-gradient(circle, #ffe080 0%, #c08040 50%, transparent 80%); border-radius:40%; box-shadow: 0 0 30px 8px rgba(255,224,128,.3), 0 0 60px 20px rgba(200,128,64,.15); animation: abwr-lantern 3s ease-in-out infinite alternate; }
.scn-anne-ballad-wind-rain .wild-grass { position:absolute; bottom:16%; left:10%; width:120px; height:30px; background: repeating-linear-gradient(100deg, #2a3a1a 0px, #2a3a1a 2px, transparent 2px, transparent 10px); border-radius:0 0 20% 20%; transform-origin: bottom; animation: abwr-grass 6s ease-in-out infinite; }
.scn-anne-ballad-wind-rain .distant-shipwreck { position:absolute; bottom:28%; right:12%; width:40px; height:20px; background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%); clip-path: polygon(20% 100%, 80% 100%, 70% 30%, 50% 0%, 30% 30%); animation: abwr-wreck 25s ease-in-out infinite; opacity:.5; }
@keyframes abwr-storm-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes abwr-rain { 0% { transform: translateY(0) } 100% { transform: translateY(20px) } }
@keyframes abwr-branch { 0% { transform: rotate(-8deg) } 30% { transform: rotate(4deg) } 60% { transform: rotate(-12deg) } 100% { transform: rotate(-6deg) } }
@keyframes abwr-grave { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes abwr-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-2deg) } 75% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes abwr-lantern { 0% { box-shadow: 0 0 20px 4px rgba(255,224,128,.25), 0 0 40px 12px rgba(200,128,64,.1); opacity:.7 } 50% { box-shadow: 0 0 35px 10px rgba(255,224,128,.4), 0 0 70px 20px rgba(200,128,64,.2); opacity:1 } 100% { box-shadow: 0 0 25px 6px rgba(255,224,128,.3), 0 0 50px 16px rgba(200,128,64,.15); opacity:.8 } }
@keyframes abwr-grass { 0% { transform: skewX(-4deg) } 50% { transform: skewX(6deg) } 100% { transform: skewX(-2deg) } }
@keyframes abwr-wreck { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

/* ===== concert-room-variants (bright/interior) ===== */

.scn-concert-room-variants {
  background: linear-gradient(180deg, #f5ecd8 0%, #e8dcc8 40%, #d8c8b0 100%),
              radial-gradient(ellipse at 50% 30%, #fff8e8 0%, transparent 60%);
}
.scn-concert-room-variants .wall-panel { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #d8c8b0 0%, #e8dcc8 40%, #f0e4d0 70%, #d8c8b0 100%); border-bottom:4px solid #b8a88a; }
.scn-concert-room-variants .tall-window { position:absolute; top:8%; right:12%; width:80px; height:160px; background: linear-gradient(180deg, #e0f0ff 0%, #c8e0f8 100%); border:6px solid #b8a88a; border-radius:12% 12% 4% 4%; box-shadow: inset 0 0 20px rgba(200,224,248,.5), 0 4px 12px rgba(0,0,0,.2); animation: crv-window 18s ease-in-out infinite alternate; }
.scn-concert-room-variants .window-light { position:absolute; top:10%; right:14%; width:60px; height:140px; background: linear-gradient(180deg, rgba(224,240,255,.3) 0%, transparent 100%); filter: blur(12px); animation: crv-light 12s ease-in-out infinite alternate; }
.scn-concert-room-variants .pianoforte { position:absolute; bottom:24%; left:25%; width:160px; height:60px; background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 30%, #1a1a1a 100%); border-radius:8% 8% 12% 12%; box-shadow: 0 8px 16px rgba(0,0,0,.4), inset 0 4px 8px rgba(255,255,255,.1); transform:perspective(400px) rotateX(5deg); }
.scn-concert-room-variants .pianoforte::before { content:''; position:absolute; top:-12px; left:10%; width:80%; height:10px; background: linear-gradient(90deg, #2a2a2a 0%, #3a3a3a 100%); border-radius:4px; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-concert-room-variants .music-stand { position:absolute; bottom:30%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #c8a878 0%, #a88858 100%); border-radius:2% 2% 8% 8%; transform: rotateY(-10deg); animation: crv-stand 25s ease-in-out infinite; }
.scn-concert-room-variants .marble-bust { position:absolute; bottom:26%; right:26%; width:40px; height:80px; background: radial-gradient(ellipse at 50% 30%, #f0ece8 0%, #d8d0c8 60%, #b8b0a8 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 6px 12px rgba(0,0,0,.2); }
.scn-concert-room-variants .floor-planks { position:absolute; bottom:0; left:0; right:0; height:25%; background: repeating-linear-gradient(90deg, #c8b898 0px, #c8b898 2px, #b8a888 2px, #b8a888 24px); }
.scn-concert-room-variants .sheet-music { position:absolute; bottom:32%; left:28%; width:24px; height:16px; background: #f5f0e0; border-radius:1px; box-shadow: 1px 1px 4px rgba(0,0,0,.15), -1px 1px 4px rgba(0,0,0,.1); transform: rotate(4deg); animation: crv-sheet 30s ease-in-out infinite alternate; }
@keyframes crv-window { 0% { opacity:.8; box-shadow: inset 0 0 20px rgba(200,224,248,.4), 0 4px 12px rgba(0,0,0,.2) } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(200,224,248,.7), 0 4px 12px rgba(0,0,0,.2) } 100% { opacity:.85; box-shadow: inset 0 0 24px rgba(200,224,248,.5), 0 4px 12px rgba(0,0,0,.2) } }
@keyframes crv-light { 0% { opacity:.4; transform: scaleY(1) } 50% { opacity:.7; transform: scaleY(1.05) } 100% { opacity:.5; transform: scaleY(1) } }
@keyframes crv-stand { 0% { transform: rotateY(-8deg) } 33% { transform: rotateY(-12deg) } 66% { transform: rotateY(-6deg) } 100% { transform: rotateY(-10deg) } }
@keyframes crv-sheet { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(6deg) translateY(-2px) } 100% { transform: rotate(4deg) translateY(0) } }

/* ===== ottery-exeter-reminiscence (bright/interior) ===== */

.scn-ottery-exeter-reminiscence {
  background: linear-gradient(180deg, #f8f0e0 0%, #ece0c8 40%, #dcccb0 100%),
              radial-gradient(ellipse at 80% 40%, #fff8e8 0%, transparent 70%);
}
.scn-ottery-exeter-reminiscence .study-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #dcccb0 0%, #ece0c8 50%, #dcccb0 100%); }
.scn-ottery-exeter-reminiscence .bookshelf { position:absolute; top:8%; left:8%; width:40%; height:50%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:2% 2% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.3); }
.scn-ottery-exeter-reminiscence .bookshelf::after { content:''; position:absolute; top:10%; left:10%; width:80%; height:80%; background: repeating-linear-gradient(180deg, transparent 0px, transparent 14px, #7a6a4a 14px, #7a6a4a 16px), repeating-linear-gradient(90deg, #5a4a2a 0px, #5a4a2a 8px, #6a5a3a 8px, #6a5a3a 12px, #4a3a1a 12px, #4a3a1a 18px); opacity:.6; border-radius:2px; }
.scn-ottery-exeter-reminiscence .desk { position:absolute; bottom:26%; left:20%; width:180px; height:40px; background: linear-gradient(180deg, #c8b898 0%, #a88868 100%); border-radius:4% 4% 6% 6%; box-shadow: 0 6px 12px rgba(0,0,0,.25); transform:rotateX(4deg); }
.scn-ottery-exeter-reminiscence .armchair { position:absolute; bottom:24%; right:18%; width:70px; height:60px; background: radial-gradient(ellipse at 50% 40%, #6a4a3a 0%, #4a2a1a 80%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-ottery-exeter-reminiscence .window-spire { position:absolute; top:6%; right:10%; width:70px; height:140px; background: linear-gradient(180deg, #c8e0f0 0%, #a8c8e0 100%); border:5px solid #8a7a5a; border-radius:10% 10% 4% 4%; }
.scn-ottery-exeter-reminiscence .window-spire::after { content:''; position:absolute; bottom:-20px; left:50%; width:20px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); clip-path: polygon(0% 100%, 100% 100%, 70% 0%, 30% 0%); }
.scn-ottery-exeter-reminiscence .inkwell { position:absolute; bottom:28%; left:24%; width:14px; height:18px; background: radial-gradient(circle at 40% 20%, #2a2a2a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-ottery-exeter-reminiscence .candle-flame { position:absolute; bottom:32%; left:22%; width:6px; height:14px; background: radial-gradient(circle at 50% 0%, #ffe080 0%, #f0a030 40%, transparent 80%); border-radius:50%; box-shadow: 0 0 24px 6px rgba(240,160,48,.4), 0 0 48px 14px rgba(240,160,48,.15); animation: oer-candle 4s ease-in-out infinite alternate; }
.scn-ottery-exeter-reminiscence .warm-rug { position:absolute; bottom:8%; left:15%; width:70%; height:20%; background: radial-gradient(ellipse at 50% 100%, #8a6a4a 0%, #6a4a2a 100%); border-radius:40% 40% 0 0 / 80% 80% 0 0; opacity:.5; }
@keyframes oer-candle { 0% { transform: scaleY(.9) rotate(-2deg); opacity:.8 } 30% { transform: scaleY(1.1) rotate(2deg); opacity:1 } 60% { transform: scaleY(.95) rotate(-1deg); opacity:.9 } 100% { transform: scaleY(1) rotate(0); opacity:.85 } }

/* ===== dartmoor-torbay-walk (sunlit/reflective) ===== */

.scn-dartmoor-torbay-walk {
  background: linear-gradient(180deg, #87c8e8 0%, #b0d8f0 30%, #e0f0f8 60%, #f8f4e0 100%),
              radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 60%);
}
.scn-dartmoor-torbay-walk .sky-wash { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #87c8e8 0%, #b0d8f0 50%, transparent 100%); animation: dtw-sky 20s ease-in-out infinite alternate; }
.scn-dartmoor-torbay-walk .distant-sea { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #6aa0c0 0%, #4a80a0 100%); border-radius:30% 50% 0 0 / 60% 80% 0 0; animation: dtw-sea 25s ease-in-out infinite; }
.scn-dartmoor-torbay-walk .cliff-edge { position:absolute; bottom:30%; left:10%; width:35%; height:40%; background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 40%, #4a3a2a 100%); border-radius:30% 0 0 0 / 40% 0 0 0; clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 0% 100%); }
.scn-dartmoor-torbay-walk .heath-path { position:absolute; bottom:28%; left:30%; width:50%; height:20%; background: linear-gradient(90deg, #8a8a6a 0%, #b8a888 40%, #c8b898 100%); border-radius:30% 30% 0 0 / 80% 80% 0 0; transform: perspective(200px) rotateX(20deg); animation: dtw-path 30s ease-in-out infinite; }
.scn-dartmoor-torbay-walk .heath-path::after { content:''; position:absolute; bottom:20%; left:10%; width:80%; height:4px; background: repeating-linear-gradient(90deg, #6a6a4a 0px, #6a6a4a 4px, transparent 4px, transparent 20px); opacity:.4; }
.scn-dartmoor-torbay-walk .walking-figure { position:absolute; bottom:26%; left:45%; width:22px; height:70px; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 40%, #1a2a1a 100%); border-radius:45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: dtw-walker 6s ease-in-out infinite; }
.scn-dartmoor-torbay-walk .staff { position:absolute; bottom:22%; left:44%; width:4px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:30%; transform: rotate(15deg); transform-origin: bottom center; animation: dtw-staff 6s ease-in-out infinite; }
.scn-dartmoor-torbay-walk .seabird-a { position:absolute; top:12%; left:20%; width:30px; height:8px; background: #2a3a4a; border-radius:60% 20% 20% 60%; box-shadow: 2px -2px 0 #1a2a3a; transform: rotate(-10deg); animation: dtw-bird-a 22s linear infinite; }
.scn-dartmoor-torbay-walk .seabird-b { position:absolute; top:18%; right:20%; width:24px; height:6px; background: #3a4a5a; border-radius:60% 20% 20% 60%; box-shadow: 1.5px -1.5px 0 #2a3a4a; transform: rotate(5deg); animation: dtw-bird-b 28s linear infinite reverse; }
.scn-dartmoor-torbay-walk .wildflower { position:absolute; bottom:30%; left:35%; width:6px; height:10px; background: radial-gradient(circle at 50% 0%, #e8c0a0 0%, #c8a080 100%); border-radius:50%; box-shadow: 0 10px 0 #c8a080, 0 20px 0 #b89070; animation: dtw-flower 8s ease-in-out infinite alternate; }
@keyframes dtw-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes dtw-sea { 0% { transform: translateY(0) scaleY(1) } 33% { transform: translateY(-2px) scaleY(1.01) } 66% { transform: translateY(1px) scaleY(.99) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes dtw-path { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes dtw-walker { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(6px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(12px) translateY(0) rotate(0) } 75% { transform: translateX(18px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(24px) translateY(0) rotate(0) } }
@keyframes dtw-staff { 0% { transform: rotate(12deg) } 25% { transform: rotate(18deg) } 50% { transform: rotate(14deg) } 75% { transform: rotate(20deg) } 100% { transform: rotate(15deg) } }
@keyframes dtw-bird-a { 0% { transform: translateX(0) rotate(-10deg) } 100% { transform: translateX(120vw) rotate(-15deg) } }
@keyframes dtw-bird-b { 0% { transform: translateX(0) rotate(5deg) } 100% { transform: translateX(-120vw) rotate(8deg) } }
@keyframes dtw-flower { 0% { transform: scaleY(1) rotate(-5deg) } 50% { transform: scaleY(1.1) rotate(5deg) } 100% { transform: scaleY(1) rotate(-3deg) } }

/* inscription-windy-brow-note — bright interior, historical */

.scn-inscription-windy-brow-note {
  background: linear-gradient(180deg, #f5e6c8 0%, #e8d5a3 40%, #d4b97e 100%),
              radial-gradient(ellipse at 70% 30%, rgba(255,230,180,.3) 0%, transparent 50%);
}
.scn-inscription-windy-brow-note .wall { position: absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #f0dfb8 0%, #e6cfa0 50%, #dcc58a 100%); }
.scn-inscription-windy-brow-note .desk { position: absolute; bottom:10%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #b8966a 0%, #8a6a4a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.3); }
.scn-inscription-windy-brow-note .paper { position: absolute; bottom:28%; left:35%; width:30%; height:20%; background: linear-gradient(180deg, #faf3e6 0%, #efe1c8 100%); border-radius: 2%; box-shadow: 0 4px 8px rgba(0,0,0,.2); transform: rotate(-2deg); animation: iwb-paper 12s ease-in-out infinite alternate; }
.scn-inscription-windy-brow-note .inkwell { position: absolute; bottom:30%; left:50%; width:10px; height:14px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30%; transform: translateX(-50%); animation: iwb-ink 8s ease-in-out infinite; }
.scn-inscription-windy-brow-note .quill { position: absolute; bottom:32%; left:48%; width:3px; height:40px; background: linear-gradient(180deg, #d4b97e 0%, #b8966a 50%, #8a6a4a 100%); border-radius: 20% 20% 60% 60%; transform-origin: bottom center; transform: rotate(25deg); animation: iwb-quill 6s ease-in-out infinite; }
.scn-inscription-windy-brow-note .window { position: absolute; top:12%; left:12%; width:25%; height:40%; background: linear-gradient(180deg, #cde0f0 0%, #a8c4dc 100%); border: 6px solid #6a4a2a; border-radius: 4%; box-shadow: inset 0 0 30px rgba(255,255,255,.2); }
.scn-inscription-windy-brow-note .light-ray { position: absolute; top:8%; left:15%; width:20%; height:60%; background: linear-gradient(180deg, rgba(255,230,180,.25) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 60% 100%, 40% 100%); animation: iwb-sunbeam 12s ease-in-out infinite alternate; }
.scn-inscription-windy-brow-note .dust { position: absolute; top:20%; left:30%; width:6px; height:6px; background: rgba(200,180,140,.4); border-radius:50%; filter: blur(2px); animation: iwb-dust 20s linear infinite; animation-delay: -5s; }
@keyframes iwb-paper { 0% { transform: rotate(-2deg); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(-2deg); } }
@keyframes iwb-ink { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes iwb-quill { 0% { transform: rotate(25deg) } 25% { transform: rotate(20deg) } 50% { transform: rotate(30deg) } 75% { transform: rotate(22deg) } 100% { transform: rotate(25deg) } }
@keyframes iwb-sunbeam { 0% { opacity:0.3; transform: skewX(0deg) } 50% { opacity:0.7; transform: skewX(2deg) } 100% { opacity:0.4; transform: skewX(-1deg) } }
@keyframes iwb-dust { 0% { transform: translate(0,0); opacity:0; } 20% { opacity:0.8; } 80% { opacity:0.6; } 100% { transform: translate(40px,-20px); opacity:0; } }

/* stranger-minstrel-skiddaw — wistful, overcast */

.scn-stranger-minstrel-skiddaw {
  background: linear-gradient(180deg, #6b7b8d 0%, #4e5e6b 40%, #2c3a44 100%),
              radial-gradient(ellipse at 50% 100%, #4a5b6b 0%, transparent 60%);
}
.scn-stranger-minstrel-skiddaw .sky { position: absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #7a8a9c 0%, #4e5e6b 100%); }
.scn-stranger-minstrel-skiddaw .mountains { position: absolute; bottom:30%; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a4a52 0%, #2a3842 100%); border-radius: 50% 50% 0 0 / 70% 70% 0 0; }
.scn-stranger-minstrel-skiddaw .mist { position: absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(90deg, rgba(200,210,220,0.3) 0%, rgba(200,210,220,0.6) 50%, rgba(200,210,220,0.3) 100%); filter: blur(12px); animation: sms-mist 30s linear infinite; }
.scn-stranger-minstrel-skiddaw .figure { position: absolute; bottom:33%; left:40%; width:16px; height:40px; background: linear-gradient(180deg, #2a2a30 0%, #0a0a10 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: sms-figure 4s ease-in-out infinite; }
.scn-stranger-minstrel-skiddaw .staff { position: absolute; bottom:33%; left:42%; width:2px; height:45px; background: #4a3a2a; transform: rotate(8deg); border-radius: 20%; }
.scn-stranger-minstrel-skiddaw .cape { position: absolute; bottom:34%; left:38%; width:24px; height:30px; background: linear-gradient(180deg, #3a4a52 0%, #2a3842 100%); border-radius: 40% 0% 60% 40% / 30% 10% 60% 40%; transform-origin: top left; animation: sms-cape 6s ease-in-out infinite; }
.scn-stranger-minstrel-skiddaw .grass { position: absolute; bottom:26%; left:0; right:0; height:12%; background: linear-gradient(180deg, #3a5a3a 0%, #1a3a2a 100%); animation: sms-grass 5s ease-in-out infinite; }
@keyframes sms-mist { 0% { transform: translateX(-10%); opacity:0.4; } 50% { transform: translateX(10%); opacity:0.7; } 100% { transform: translateX(-10%); opacity:0.4; } }
@keyframes sms-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes sms-cape { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg) scaleX(1.1); } 100% { transform: rotate(0deg); } }
@keyframes sms-grass { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.7; } }

/* call-for-mrs-robinson — yearning, overcast with patches of light */

.scn-call-for-mrs-robinson {
  background: linear-gradient(180deg, #8e9eab 0%, #6c7d8a 30%, #4b5a66 100%),
              radial-gradient(ellipse at 30% 40%, rgba(255,255,200,0.2) 0%, transparent 50%);
}
.scn-call-for-mrs-robinson .sky-overcast { position: absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #9aabb8 0%, #7a8a9a 100%); }
.scn-call-for-mrs-robinson .hills { position: absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6b7b6b 0%, #4a5a4a 100%); border-radius: 40% 60% 0 0 / 60% 70% 0 0; }
.scn-call-for-mrs-robinson .sunbeam { position: absolute; top:10%; left:20%; width:15%; height:70%; background: linear-gradient(180deg, rgba(255,255,200,0.15) 0%, rgba(255,255,200,0.05) 100%); clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); animation: cfr-sunbeam 20s ease-in-out infinite alternate; }
.scn-call-for-mrs-robinson .sheep { position: absolute; bottom:38%; left:30%; width:14px; height:10px; background: radial-gradient(circle at 60% 40%, #d0c8b0 0%, #b0a890 100%); border-radius: 60% 40% 40% 50% / 60% 60% 40% 40%; animation: cfr-sheep 9s ease-in-out infinite; }
.scn-call-for-mrs-robinson .figure { position: absolute; bottom:30%; left:55%; width:14px; height:36px; background: linear-gradient(180deg, #2a3030 0%, #0a1010 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: cfr-figure 5s ease-in-out infinite; }
.scn-call-for-mrs-robinson .shadow { position: absolute; bottom:26%; left:54%; width:20px; height:4px; background: rgba(0,0,0,.25); border-radius: 50%; filter: blur(3px); animation: cfr-shadow 5s ease-in-out infinite; }
.scn-call-for-mrs-robinson .grass-land { position: absolute; bottom:18%; left:0; right:0; height:12%; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a3a 100%); animation: cfr-grass 7s ease-in-out infinite; }
@keyframes cfr-sunbeam { 0% { opacity:0.2; transform: translateX(0); } 50% { opacity:0.6; transform: translateX(15px); } 100% { opacity:0.3; transform: translateX(-10px); } }
@keyframes cfr-sheep { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(5px) translateY(-1px); } 50% { transform: translateX(10px) translateY(0); } 75% { transform: translateX(5px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes cfr-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 60% { transform: translateY(0) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cfr-shadow { 0% { transform: scaleX(1); opacity:1; } 30% { transform: scaleX(1.2); opacity:0.7; } 60% { transform: scaleX(0.9); opacity:1; } 100% { transform: scaleX(1); opacity:1; } }
@keyframes cfr-grass { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }

/* skiddaw-reply-scorns — stern, overcast, dramatic mountain */

.scn-skiddaw-reply-scorns {
  background: linear-gradient(180deg, #1a2025 0%, #2c3540 30%, #14181c 100%),
              radial-gradient(ellipse at 50% 30%, #2c3a44 0%, transparent 60%);
}
.scn-skiddaw-reply-scorns .dark-sky { position: absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a3540 0%, #1a2025 100%); }
.scn-skiddaw-reply-scorns .peak { position: absolute; bottom:25%; left:30%; right:30%; height:40%; background: linear-gradient(180deg, #3a4045 0%, #1a1e22 100%); clip-path: polygon(20% 100%, 50% 0%, 80% 100%); animation: srs-peak 5s ease-in-out infinite; }
.scn-skiddaw-reply-scorns .jagged-rocks { position: absolute; bottom:20%; left:0; right:0; height:20%; background: linear-gradient(180deg, #2c3035 0%, #14181c 100%); clip-path: polygon(0% 50%, 10% 0%, 20% 40%, 30% 10%, 40% 30%, 50% 0%, 60% 20%, 70% 5%, 80% 35%, 90% 10%, 100% 50%); }
.scn-skiddaw-reply-scorns .storm-cloud { position: absolute; top:8%; left:0; right:0; height:25%; background: linear-gradient(90deg, #1a2025 0%, #354050 50%, #1a2025 100%); border-radius: 40%; filter: blur(15px); animation: srs-cloud 30s linear infinite; }
.scn-skiddaw-reply-scorns .lightning { position: absolute; top:15%; left:45%; width:3px; height:50px; background: #e0e8ff; clip-path: polygon(50% 0%, 40% 30%, 50% 30%, 30% 70%, 50% 70%, 40% 100%, 60% 70%, 50% 70%, 70% 30%, 60% 30%); animation: srs-lightning 8s ease-in-out infinite; animation-delay: -2s; }
.scn-skiddaw-reply-scorns .echo-lines { position: absolute; bottom:30%; left:35%; width:30%; height:30%; border: 2px solid rgba(200,210,220,.15); border-radius: 50%; animation: srs-echo 12s ease-in-out infinite; }
.scn-skiddaw-reply-scorns .shadow-figure { position: absolute; bottom:18%; left:50%; width:12px; height:30px; transform: translateX(-50%); background: linear-gradient(180deg, #0a0a0e 0%, #000 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: srs-shadow-figure 6s ease-in-out infinite; }
@keyframes srs-peak { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes srs-cloud { 0% { transform: translateX(-10%); } 50% { transform: translateX(10%); } 100% { transform: translateX(-10%); } }
@keyframes srs-lightning { 0% { opacity:0; } 10% { opacity:1; } 20% { opacity:0; } 40% { opacity:0.5; } 50% { opacity:0; } 100% { opacity:0; } }
@keyframes srs-echo { 0% { transform: scale(0.8); opacity:0.4; } 25% { transform: scale(1); opacity:0.2; } 50% { transform: scale(1.2); opacity:0; } 75% { transform: scale(0.9); opacity:0.3; } 100% { transform: scale(0.8); opacity:0.4; } }
@keyframes srs-shadow-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 30% { transform: translateX(-50%) translateY(-2px) rotate(-2deg); } 60% { transform: translateX(-50%) translateY(0) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }

/* Scene: skeltoniad-editorial — calm, dim-interior */

.scn-skeltoniad-editorial {
  background:
    linear-gradient(180deg, #3b2f2f 0%, #2a2020 40%, #1f1818 100%),
    radial-gradient(ellipse at 50% 0%, #6a5040 0%, transparent 60%);
}

.scn-skeltoniad-editorial .desk {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #5a3f2e 0%, #3a281e 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-skeltoniad-editorial .lamp {
  position: absolute; bottom: 25%; left: 48%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #c0a070 0%, #7a5a3a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: sk1-lamp 6s ease-in-out infinite;
}
.scn-skeltoniad-editorial .lamp-glow {
  position: absolute; bottom: 30%; left: 48%; width: 40px; height: 60px;
  background: radial-gradient(circle, #f0d080 0%, #c09050 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: sk1-glow 4s ease-in-out infinite alternate;
}
.scn-skeltoniad-editorial .papers {
  position: absolute; bottom: 14%; left: 30%; width: 22%; height: 6%;
  background: linear-gradient(135deg, #e8dcc8 0%, #c8b898 100%);
  border-radius: 4%;
  transform: rotate(-2deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: sk1-papers 12s ease-in-out infinite;
}
.scn-skeltoniad-editorial .quill {
  position: absolute; bottom: 18%; left: 55%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #e0d0b0 0%, #a08060 60%, #604830 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: sk1-quill 8s ease-in-out infinite;
}
.scn-skeltoniad-editorial .inkwell {
  position: absolute; bottom: 12%; left: 52%; width: 14px; height: 18px;
  background: radial-gradient(ellipse at 50% 30%, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
}
.scn-skeltoniad-editorial .chair-back {
  position: absolute; bottom: 20%; left: 22%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  opacity: 0.7;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4);
}
.scn-skeltoniad-editorial .window {
  position: absolute; top: 15%; right: 10%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border: 6px solid #3a2a1a;
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3), 0 0 10px rgba(0,0,0,0.5);
}

@keyframes sk1-lamp {
  0%, 100% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
}
@keyframes sk1-glow {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes sk1-papers {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(-3deg) translateY(1px); }
}
@keyframes sk1-quill {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-4px); }
  100% { transform: rotate(12deg) translateY(2px); }
}

/* Scene: skeltoniad-variant-headnotes — calm, dim-interior */

.scn-skeltoniad-variant-headnotes {
  background:
    linear-gradient(180deg, #3e2e2a 0%, #271e1a 50%, #1a1410 100%),
    radial-gradient(ellipse at 30% 50%, #604a3a 0%, transparent 60%);
}

.scn-skeltoniad-variant-headnotes .figure-reader {
  position: absolute; bottom: 8%; left: 35%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: sk2-figure 9s ease-in-out infinite;
}
.scn-skeltoniad-variant-headnotes .lectern {
  position: absolute; bottom: 10%; left: 44%; width: 14%; height: 22%;
  background: linear-gradient(180deg, #6a4a32 0%, #3a2a1a 100%);
  border-radius: 10% 10% 4% 4%;
  transform: skewX(-4deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-skeltoniad-variant-headnotes .book-open {
  position: absolute; bottom: 20%; left: 47%; width: 10%; height: 8%;
  background: linear-gradient(135deg, #d4c4a8 0%, #b8a888 100%);
  border-radius: 4%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: sk2-book 14s ease-in-out infinite;
}
.scn-skeltoniad-variant-headnotes .candle {
  position: absolute; bottom: 28%; left: 60%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #e8d0a8 0%, #b09870 80%, #7a6040 100%);
  border-radius: 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: sk2-candle 5s ease-in-out infinite;
}
.scn-skeltoniad-variant-headnotes .candle-glow {
  position: absolute; bottom: 30%; left: 58%; width: 30px; height: 50px;
  background: radial-gradient(circle, #f0d080 0%, #d0a060 30%, transparent 70%);
  filter: blur(10px);
  animation: sk2-glow 3s ease-in-out infinite alternate;
}
.scn-skeltoniad-variant-headnotes .bookshelf {
  position: absolute; bottom: 8%; right: 5%; width: 18%; height: 70%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1a10 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.5);
}
.scn-skeltoniad-variant-headnotes .curtain-left {
  position: absolute; top: 0; left: 0; width: 12%; height: 100%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 30% 30% 0 / 0 20% 20% 0;
  opacity: 0.6;
  animation: sk2-curtain 20s ease-in-out infinite;
}
.scn-skeltoniad-variant-headnotes .curtain-right {
  position: absolute; top: 0; right: 0; width: 12%; height: 100%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 0 0 30% / 20% 0 0 20%;
  opacity: 0.6;
  animation: sk2-curtain 20s ease-in-out infinite reverse;
}

@keyframes sk2-figure {
  0%, 100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes sk2-book {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-1px); }
  100% { transform: rotate(-6deg) translateY(1px); }
}
@keyframes sk2-candle {
  0%, 100% { transform: rotate(-2deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(1.03); }
}
@keyframes sk2-glow {
  0% { opacity: 0.7; transform: scale(0.9); }
  100% { opacity: 1; transform: scale(1.1); }
}
@keyframes sk2-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.95); }
  100% { transform: scaleX(1); }
}

/* Scene: skeltoniad-poem-opening — tense, overcast */

.scn-skeltoniad-poem-opening {
  background:
    linear-gradient(180deg, #2a2e3e 0%, #1a1c2a 40%, #0a0e14 100%),
    radial-gradient(ellipse at 50% 0%, #4a4e5e 0%, transparent 60%);
}

.scn-skeltoniad-poem-opening .storm-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a3e4e 0%, #1a1c2a 100%);
  animation: sk3-sky 15s ease-in-out infinite alternate;
}
.scn-skeltoniad-poem-opening .hill {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a2a1e 0%, #0a140e 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-skeltoniad-poem-opening .devil-figure {
  position: absolute; bottom: 30%; left: 50%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #0a0a12 0%, #000004 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: sk3-devil 8s ease-in-out infinite;
}
.scn-skeltoniad-poem-opening .lightning-flash {
  position: absolute; top: 8%; left: 30%; width: 2px; height: 60px;
  background: #c0d0e0;
  filter: blur(1px);
  box-shadow: 0 0 20px 8px rgba(192,208,224,0.6);
  animation: sk3-lightning 4s ease-in-out infinite;
}
.scn-skeltoniad-poem-opening .cloud-storm-a {
  position: absolute; top: 12%; left: 10%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #2a2e3e 0%, #1a1c2e 100%);
  border-radius: 50%;
  filter: blur(8px);
  opacity: 0.7;
  animation: sk3-cloud-a 25s linear infinite;
}
.scn-skeltoniad-poem-opening .cloud-storm-b {
  position: absolute; top: 18%; right: 5%; width: 100px; height: 25px;
  background: linear-gradient(180deg, #2a2e3e 0%, #1a1c2e 100%);
  border-radius: 50%;
  filter: blur(6px);
  opacity: 0.6;
  animation: sk3-cloud-b 30s linear infinite reverse;
}
.scn-skeltoniad-poem-opening .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #0a0e0a 0%, #000000 100%);
}

@keyframes sk3-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.5; }
}
@keyframes sk3-devil {
  0%, 100% { transform: translateX(-50%) rotate(-2deg) scale(1); }
  50% { transform: translateX(-50%) rotate(2deg) scale(1.02); }
}
@keyframes sk3-lightning {
  0% { opacity: 0; }
  5% { opacity: 1; }
  10% { opacity: 0; }
  20% { opacity: 0.3; }
  25% { opacity: 0; }
  100% { opacity: 0; }
}
@keyframes sk3-cloud-a {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(130vw); }
}
@keyframes sk3-cloud-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-120vw); }
}

/* Scene: skeltoniad-poem-body — dark, overcast */

.scn-skeltoniad-poem-body {
  background:
    linear-gradient(180deg, #181a1e 0%, #0e1014 50%, #06080a 100%),
    radial-gradient(ellipse at 50% 0%, #2a2e3a 0%, transparent 70%);
}

.scn-skeltoniad-poem-body .night-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1c22 0%, #0e1016 100%);
  animation: sk4-sky 20s ease-in-out infinite alternate;
}
.scn-skeltoniad-poem-body .grave-mound {
  position: absolute; bottom: 20%; left: 20%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #2a2e22 0%, #1a1e14 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
}
.scn-skeltoniad-poem-body .tombstone {
  position: absolute; bottom: 25%; left: 48%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a3e3a 0%, #2a2e2a 100%);
  border-radius: 10% 10% 4% 4%;
  transform: rotate(-3deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: sk4-tomb 12s ease-in-out infinite;
}
.scn-skeltoniad-poem-body .bolster {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 8px;
  background: #3a2e22;
  border-radius: 30%;
  transform: rotate(-15deg);
  opacity: 0.6;
}
.scn-skeltoniad-poem-body .tree-silhouette {
  position: absolute; bottom: 10%; right: 10%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #0a0a0a 0%, #000 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  animation: sk4-tree 18s ease-in-out infinite;
}
.scn-skeltoniad-poem-body .moon-pale {
  position: absolute; top: 8%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c0c4c8 0%, #a0a4a8 50%, transparent 70%);
  border-radius: 50%;
  opacity: 0.2;
  filter: blur(4px);
  animation: sk4-moon 30s ease-in-out infinite alternate;
}
.scn-skeltoniad-poem-body .fog {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, rgba(20,20,25,0.6) 0%, rgba(10,10,15,0.2) 100%);
  filter: blur(10px);
  animation: sk4-fog 25s ease-in-out infinite;
}
.scn-skeltoniad-poem-body .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #080a0a 0%, #000 100%);
}

@keyframes sk4-sky {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes sk4-tomb {
  0%, 100% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
}
@keyframes sk4-tree {
  0%, 100% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(2deg) scaleX(1.02); }
}
@keyframes sk4-moon {
  0% { opacity: 0.15; transform: scale(0.9); }
  100% { opacity: 0.25; transform: scale(1.1); }
}
@keyframes sk4-fog {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-4px) scaleX(1.05); }
  100% { transform: translateY(2px) scaleX(0.95); }
}

.scn-love-variant-ever-meekly {
  background: linear-gradient(180deg, #f5f0e8 0%, #e8ddd0 40%, #d0c0b0 100%),
              radial-gradient(ellipse at 50% 20%, #fff8ee 0%, transparent 60%);
}
.scn-love-variant-ever-meekly .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #fdfaf5 0%, #f0e9dc 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.05);
}
.scn-love-variant-ever-meekly .bg-floor {
  position: absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #c8b8a8 0%, #a09080 100%);
  border-radius: 4% 4% 0 0;
}
.scn-love-variant-ever-meekly .figure-profile {
  position: absolute; bottom:18%; left:45%; width:20px; height:60px;
  background: linear-gradient(180deg, #7a6a5a 0%, #3a2e24 100%);
  border-radius: 50% 40% 40% 50% / 60% 40% 40% 60%;
  transform-origin: bottom center;
  animation: lv1-breathe 4s ease-in-out infinite;
}
.scn-love-variant-ever-meekly .chest-glow {
  position: absolute; bottom:30%; left:46%; width:14px; height:16px;
  background: radial-gradient(circle, #ffd7a0 0%, #e8a060 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #e8a060, 0 0 40px 12px rgba(232,160,96,0.4);
  animation: lv1-pulse 3s ease-in-out infinite alternate;
}
.scn-love-variant-ever-meekly .stethoscope {
  position: absolute; bottom:28%; left:48%; width:8px; height:18px;
  background: linear-gradient(180deg, #806050 0%, #403530 100%);
  border-radius: 40% 40% 10% 10%;
  transform: rotate(10deg);
  animation: lv1-tremble 5s ease-in-out infinite;
}
.scn-love-variant-ever-meekly .clock-gear {
  position: absolute; top:16%; right:12%; width:30px; height:30px;
  background: radial-gradient(circle, #d4c4b0 0%, #a09080 50%, #706050 100%);
  border-radius: 50%;
  box-shadow: 0 0 0 3px #b0a090, 0 0 0 6px #908070;
  animation: lv1-spin 12s linear infinite;
}
.scn-love-variant-ever-meekly .shadow-cast {
  position: absolute; bottom:10%; left:38%; width:100px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: lv1-shift 6s ease-in-out infinite;
}
@keyframes lv1-breathe {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.04) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes lv1-pulse {
  0% { opacity: 0.7; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.15); }
}
@keyframes lv1-tremble {
  0%,100% { transform: rotate(8deg); }
  50% { transform: rotate(12deg); }
}
@keyframes lv1-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes lv1-shift {
  0%,100% { transform: translateX(0); }
  50% { transform: translateX(8px); }
}

.scn-love-variant-end-intro {
  background: linear-gradient(180deg, #f7f1e9 0%, #e6dbcd 50%, #cfbeab 100%),
              radial-gradient(ellipse at 60% 30%, #fffcf5 0%, transparent 60%);
}
.scn-love-variant-end-intro .bg-interior {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #f5eee4 0%, #dcd0c0 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.08);
}
.scn-love-variant-end-intro .harp-frame {
  position: absolute; bottom:20%; left:50%; width:60px; height:80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8b098 0%, #8a7058 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  animation: lv2-sway 8s ease-in-out infinite;
}
.scn-love-variant-end-intro .string {
  position: absolute; bottom:22%; left:50%; width:2px; height:64px;
  background: linear-gradient(180deg, #b0a090 0%, #806850 100%);
  transform-origin: top center;
}
.scn-love-variant-end-intro .string-1 { transform: translateX(-18px) rotate(-5deg); animation: lv2-stringA 1.8s ease-in-out infinite alternate; }
.scn-love-variant-end-intro .string-2 { transform: translateX(0px) rotate(0deg); animation: lv2-stringB 2.2s ease-in-out infinite alternate; }
.scn-love-variant-end-intro .string-3 { transform: translateX(18px) rotate(5deg); animation: lv2-stringA 2.6s ease-in-out infinite alternate-reverse; }
.scn-love-variant-end-intro .string-vibe {
  position: absolute; bottom:30%; left:50%; width:40px; height:10px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(220,200,160,0.6) 0%, transparent 80%);
  filter: blur(3px);
  animation: lv2-resonance 1.5s ease-in-out infinite alternate;
}
.scn-love-variant-end-intro .music-note-1 {
  position: absolute; top:18%; left:30%; width:12px; height:12px;
  background: radial-gradient(circle, #d0b080 0%, #a08060 100%);
  border-radius: 50% 50% 0 50%;
  transform: rotate(15deg);
  animation: lv2-floatA 4s ease-in-out infinite;
}
.scn-love-variant-end-intro .music-note-2 {
  position: absolute; top:28%; right:25%; width:10px; height:10px;
  background: radial-gradient(circle, #c0a080 0%, #907058 100%);
  border-radius: 50%;
  animation: lv2-floatB 5s ease-in-out infinite reverse;
}
@keyframes lv2-sway {
  0%,100% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
}
@keyframes lv2-stringA {
  0% { transform: translateX(-18px) rotate(-5deg) translateY(0); }
  100% { transform: translateX(-18px) rotate(-5deg) translateY(-3px); }
}
@keyframes lv2-stringB {
  0% { transform: translateX(0px) rotate(0deg) translateY(0); }
  100% { transform: translateX(0px) rotate(0deg) translateY(-4px); }
}
@keyframes lv2-resonance {
  0% { opacity: 0.3; transform: translateX(-50%) scaleY(1); }
  100% { opacity: 0.8; transform: translateX(-50%) scaleY(2); }
}
@keyframes lv2-floatA {
  0% { transform: translate(0,0) rotate(15deg); opacity:0.6; }
  50% { transform: translate(10px,-15px) rotate(25deg); opacity:1; }
  100% { transform: translate(20px,0) rotate(15deg); opacity:0.6; }
}
@keyframes lv2-floatB {
  0% { transform: translate(0,0); opacity:0.5; }
  50% { transform: translate(-8px,-20px); opacity:1; }
  100% { transform: translate(-16px,0); opacity:0.5; }
}

.scn-nursery-of-pomp-nature {
  background: linear-gradient(180deg, #f7f0e6 0%, #e6d8c8 40%, #c8b8a0 100%),
              radial-gradient(ellipse at 30% 20%, #fffcf5 0%, transparent 60%);
}
.scn-nursery-of-pomp-nature .bg-nursery-wall {
  position: absolute; inset: 0 0 30% 0;
  background: repeating-linear-gradient(90deg, #f0e8dc 0px, #f0e8dc 20px, #e8dcc8 20px, #e8dcc8 40px);
  animation: np-wall-wipe 20s linear infinite;
}
.scn-nursery-of-pomp-nature .nursery-rug {
  position: absolute; bottom:0; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #d0c0a8 0%, #b0a088 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.1);
}
.scn-nursery-of-pomp-nature .crest-shield {
  position: absolute; top:12%; left:50%; width:50px; height:60px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #c8b080 0%, #a08860 50%, #7a6848 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  box-shadow: 0 0 0 3px #b09878, 0 0 0 6px #908060;
  animation: np-glow 6s ease-in-out infinite alternate;
}
.scn-nursery-of-pomp-nature .cradle {
  position: absolute; bottom:18%; left:50%; width:70px; height:40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a888 0%, #a07858 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.15);
  animation: np-rock 5s ease-in-out infinite;
}
.scn-nursery-of-pomp-nature .mobile {
  position: absolute; top:8%; left:30%; width:8px; height:40px;
  background: linear-gradient(180deg, #b0a090 0%, #706050 100%);
  border-radius: 2px;
  transform-origin: top center;
  animation: np-swing 9s ease-in-out infinite;
}
.scn-nursery-of-pomp-nature .window-light {
  position: absolute; top:14%; right:12%; width:50px; height:60px;
  background: radial-gradient(ellipse at 50% 30%, #fffbe8 0%, #f0e0c0 60%, transparent 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(240,224,192,0.5);
  animation: np-sunray 7s ease-in-out infinite alternate;
}
.scn-nursery-of-pomp-nature .toy-block {
  position: absolute; bottom:14%; left:20%; width:20px; height:20px;
  background: linear-gradient(135deg, #e8c888 0%, #c8a060 100%);
  border-radius: 10%;
  box-shadow: 2px 2px 0 #806040;
  animation: np-bounce 3s ease-in-out infinite;
}
@keyframes np-wall-wipe {
  0% { background-position: 0 0; }
  100% { background-position: 40px 0; }
}
@keyframes np-glow {
  0% { box-shadow: 0 0 0 3px #b09878, 0 0 0 6px #908060; filter: brightness(1); }
  100% { box-shadow: 0 0 0 3px #d0b898, 0 0 0 6px #a08868, 0 0 20px #d0b898; filter: brightness(1.1); }
}
@keyframes np-rock {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-2deg); }
  75% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes np-swing {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(5deg); }
  75% { transform: translateX(-8px) rotate(-5deg); }
}
@keyframes np-sunray {
  0% { opacity: 0.6; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.1); }
}
@keyframes np-bounce {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}

.scn-genius-muse-comparison {
  background: linear-gradient(180deg, #f2ede4 0%, #dfd4c4 50%, #c4b4a0 100%),
              radial-gradient(ellipse at 50% 10%, #fffcf5 0%, transparent 60%);
}
.scn-genius-muse-comparison .library-shelf {
  position: absolute; top:10%; left:5%; right:5%; height:20%;
  background: linear-gradient(180deg, #b0a088 0%, #8a7860 100%);
  border-radius: 4px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
}
.scn-genius-muse-comparison .poet-silhouette {
  position: absolute; bottom:18%; left:40%; width:22px; height:64px;
  background: linear-gradient(180deg, #4a3e34 0%, #2a221c 100%);
  border-radius: 40% 50% 40% 50% / 55% 45% 45% 55%;
  transform-origin: bottom center;
  animation: gmc-pose 6s ease-in-out infinite;
}
.scn-genius-muse-comparison .laurel-wreath {
  position: absolute; top:16%; left:42%; width:36px; height:20px;
  background: radial-gradient(circle at 30% 50%, #b09060 0%, transparent 50%);
  border-radius: 50% 50% 0 0;
  border: 3px solid #a08050;
  clip-path: ellipse(50% 100% at 50% 0%);
  animation: gmc-wreath 5s ease-in-out infinite alternate;
}
.scn-genius-muse-comparison .scroll-open {
  position: absolute; bottom:10%; right:20%; width:60px; height:30px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d8ccb0 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  animation: gmc-unroll 10s ease-in-out infinite;
}
.scn-genius-muse-comparison .book {
  position: absolute; bottom:20%; width:16px; height:26px;
  background: linear-gradient(180deg, #b08060 0%, #805048 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 10% 10%;
  box-shadow: 2px 2px 0 #604038;
}
.scn-genius-muse-comparison .book-left { left:8%; transform: rotate(-5deg); animation: gmc-readL 4s ease-in-out infinite; }
.scn-genius-muse-comparison .book-right { left:22%; transform: rotate(3deg); animation: gmc-readR 4.5s ease-in-out infinite; }
.scn-genius-muse-comparison .inspiration-glow {
  position: absolute; top:20%; left:50%; width:20px; height:20px;
  background: radial-gradient(circle, #ffe8b0 0%, #f0c880 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px #f0c880, 0 0 48px 16px rgba(240,200,128,0.3);
  animation: gmc-illume 3s ease-in-out infinite alternate;
}
@keyframes gmc-pose {
  0%,100% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(4px) rotate(2deg); }
}
@keyframes gmc-wreath {
  0% { transform: scaleY(1); }
  100% { transform: scaleY(1.1); }
}
@keyframes gmc-unroll {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); }
}
@keyframes gmc-readL {
  0%,100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
}
@keyframes gmc-readR {
  0%,100% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
}
@keyframes gmc-illume {
  0% { opacity: 0.7; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.3); }
}

/* charity-in-thought */

.scn-charity-in-thought {
  background: linear-gradient(180deg, #2c1e16 0%, #4a3020 40%, #3a2518 100%),
              radial-gradient(ellipse at 30% 60%, #6a4a30 0%, transparent 70%);
}
.scn-charity-in-thought .bg-wall {
  position:absolute; inset:0; background: radial-gradient(ellipse at 60% 50%, transparent 40%, rgba(10,6,3,.5) 100%);
}
.scn-charity-in-thought .win-frame {
  position:absolute; top:15%; left:60%; width:120px; height:160px; background: #3a2a1a; border-radius: 6px;
  box-shadow: inset 0 0 0 6px #2a1a0e;
}
.scn-charity-in-thought .win-light {
  position:absolute; top:18%; left:63%; width:100px; height:140px; background: linear-gradient(180deg, #d4c8b0 0%, #b8a890 100%);
  border-radius: 2px; opacity: .35; box-shadow: 0 0 40px 20px rgba(212,200,176,.15);
  animation: cit-window 8s ease-in-out infinite alternate;
}
.scn-charity-in-thought .candle {
  position:absolute; bottom:30%; left:35%; width:8px; height:30px; background: linear-gradient(180deg, #e8d0a0 0%, #b89050 100%);
  border-radius: 2px 2px 1px 1px; transform: rotate(-2deg);
}
.scn-charity-in-thought .candle-glow {
  position:absolute; bottom:38%; left:34%; width:30px; height:30px; background: radial-gradient(circle, #ffdd80 0%, #e8a040 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 60px 30px #e8a040, 0 0 120px 60px rgba(232,160,64,.3);
  animation: cit-candle 3s ease-in-out infinite alternate;
}
.scn-charity-in-thought .figure {
  position:absolute; bottom:18%; left:25%; width:50px; height:100px; background: linear-gradient(180deg, #1a120e 0%, #0d0a07 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center;
  animation: cit-figure 5s ease-in-out infinite alternate;
}
.scn-charity-in-thought .book {
  position:absolute; bottom:16%; left:32%; width:40px; height:30px; background: linear-gradient(135deg, #6a5030 0%, #4a3820 100%);
  border-radius: 4px; box-shadow: 2px 2px 6px rgba(0,0,0,.6);
  transform: rotate(8deg); animation: cit-book 12s ease-in-out infinite;
}
.scn-charity-in-thought .curtain {
  position:absolute; top:10%; left:55%; width:30px; height:180px; background: linear-gradient(180deg, #4a3020 0%, #2c1e16 100%);
  border-radius: 0 4px 4px 0; opacity: .7;
  animation: cit-curtain 10s ease-in-out infinite alternate;
}
@keyframes cit-window {
  0% { opacity: .3; box-shadow: 0 0 30px 15px rgba(212,200,176,.1); }
  50% { opacity: .4; box-shadow: 0 0 50px 25px rgba(212,200,176,.2); }
  100% { opacity: .35; box-shadow: 0 0 40px 20px rgba(212,200,176,.15); }
}
@keyframes cit-candle {
  0% { transform: scale(1) rotate(-2deg); opacity: .85; }
  50% { transform: scale(1.05) rotate(-1deg); opacity: 1; }
  100% { transform: scale(.98) rotate(-3deg); opacity: .9; }
}
@keyframes cit-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cit-book {
  0% { transform: rotate(8deg) translateY(0); }
  50% { transform: rotate(7deg) translateY(-1px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes cit-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(-2px); }
  100% { transform: translateX(0); }
}

/* humility-mother-charity */

.scn-humility-mother-charity {
  background: linear-gradient(180deg, #3a2a1e 0%, #2c1e16 50%, #1e1410 100%),
              radial-gradient(ellipse at 50% 40%, #4a3828 0%, transparent 70%);
}
.scn-humility-mother-charity .bg-room {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, transparent 50%, rgba(10,6,3,.4) 100%);
}
.scn-humility-mother-charity .lamp-glow {
  position:absolute; top:30%; left:50%; width:120px; height:120px; transform: translate(-50%,-50%);
  background: radial-gradient(circle, #ffdd80 0%, #e8a040 20%, transparent 60%);
  border-radius: 50%; box-shadow: 0 0 100px 50px #e8a040, 0 0 200px 100px rgba(232,160,64,.3);
  animation: hmc-lamp 4s ease-in-out infinite alternate;
}
.scn-humility-mother-charity .lamp-body {
  position:absolute; top:22%; left:47%; width:20px; height:40px; background: linear-gradient(180deg, #c8a060, #8a6a40);
  border-radius: 4px 4px 2px 2px; transform: rotate(2deg);
}
.scn-humility-mother-charity .mother {
  position:absolute; bottom:22%; left:35%; width:60px; height:130px; background: linear-gradient(180deg, #2a1e16 0%, #1a100c 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%; transform-origin: bottom center;
  animation: hmc-mother 6s ease-in-out infinite alternate;
}
.scn-humility-mother-charity .child {
  position:absolute; bottom:18%; left:48%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a1e 0%, #2c1e16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: hmc-child 4s ease-in-out infinite alternate;
}
.scn-humility-mother-charity .floor {
  position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #2c1e16 0%, #1e1410 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-humility-mother-charity .cradle {
  position:absolute; bottom:16%; left:55%; width:40px; height:20px; background: linear-gradient(180deg, #4a3828, #2c1e16);
  border-radius: 0 0 20% 20%; transform-origin: bottom center;
  animation: hmc-cradle 3s ease-in-out infinite alternate;
}
@keyframes hmc-lamp {
  0% { transform: translate(-50%,-50%) scale(1); opacity: .9; }
  50% { transform: translate(-50%,-50%) scale(1.03); opacity: 1; }
  100% { transform: translate(-50%,-50%) scale(.98); opacity: .85; }
}
@keyframes hmc-mother {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hmc-child {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes hmc-cradle {
  0% { transform: rotate(-3deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(2px); }
  100% { transform: rotate(-3deg) translateX(0); }
}

/* coeli-enarrant */

.scn-coeli-enarrant {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 30%, #0d0d2a 100%),
              radial-gradient(ellipse at 50% 20%, #1a1a3e 0%, transparent 70%);
}
.scn-coeli-enarrant .sky-deep {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 0%, transparent 60%, rgba(0,0,10,.6) 100%);
}
.scn-coeli-enarrant .star-a {
  position:absolute; top:12%; left:20%; width:6px; height:6px; background: #d4d4f0; border-radius: 50%;
  box-shadow: 0 0 8px 2px #a0a0e0; animation: ce-star-a 3s ease-in-out infinite alternate;
}
.scn-coeli-enarrant .star-b {
  position:absolute; top:25%; left:70%; width:8px; height:8px; background: #e8e8ff; border-radius: 50%;
  box-shadow: 0 0 12px 3px #b0b0f0; animation: ce-star-b 4s ease-in-out infinite alternate;
  animation-delay: -1s;
}
.scn-coeli-enarrant .star-c {
  position:absolute; top:40%; left:45%; width:4px; height:4px; background: #c0c0f0; border-radius: 50%;
  box-shadow: 0 0 6px 1px #8080c0; animation: ce-star-c 5s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-coeli-enarrant .star-d {
  position:absolute; top:55%; left:15%; width:5px; height:5px; background: #d0d0f8; border-radius: 50%;
  box-shadow: 0 0 10px 2px #9090d8; animation: ce-star-d 3.5s ease-in-out infinite alternate;
  animation-delay: -0.5s;
}
.scn-coeli-enarrant .figure-back {
  position:absolute; bottom:20%; left:40%; width:70px; height:140px; background: linear-gradient(180deg, #0a0a14 0%, #050510 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%; transform-origin: bottom center;
  animation: ce-figure 8s ease-in-out infinite alternate;
}
.scn-coeli-enarrant .ground-dark {
  position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #0d0d1a 0%, #050510 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
}
@keyframes ce-star-a {
  0% { transform: scale(1); opacity: .6; }
  50% { transform: scale(1.3); opacity: 1; }
  100% { transform: scale(.9); opacity: .5; }
}
@keyframes ce-star-b {
  0% { transform: scale(1.2); opacity: .8; }
  50% { transform: scale(1); opacity: .5; }
  100% { transform: scale(1.4); opacity: .9; }
}
@keyframes ce-star-c {
  0% { transform: scale(.8); opacity: .4; }
  50% { transform: scale(1.5); opacity: .7; }
  100% { transform: scale(1); opacity: .5; }
}
@keyframes ce-star-d {
  0% { transform: scale(1); opacity: .5; }
  50% { transform: scale(1.6); opacity: .9; }
  100% { transform: scale(.7); opacity: .3; }
}
@keyframes ce-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* editorial-coeli */

.scn-editorial-coeli {
  background: linear-gradient(180deg, #2c2018 0%, #4a3424 30%, #3a281c 100%),
              radial-gradient(ellipse at 60% 70%, #5a4030 0%, transparent 60%);
}
.scn-editorial-coeli .wall-dark {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 70%, transparent 40%, rgba(10,6,3,.5) 100%);
}
.scn-editorial-coeli .desk {
  position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a3424 0%, #2c1e16 100%);
  border-radius: 8% 8% 0 0 / 4% 4% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-editorial-coeli .lamp-glow-ec {
  position:absolute; bottom:35%; left:40%; width:100px; height:100px;
  background: radial-gradient(circle, #ffdd80 0%, #d4a040 30%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 80px 40px #d4a040, 0 0 160px 80px rgba(212,160,64,.25);
  animation: ec-lamp 3.5s ease-in-out infinite alternate;
}
.scn-editorial-coeli .writer-sil {
  position:absolute; bottom:30%; left:25%; width:55px; height:120px; background: linear-gradient(180deg, #1a1410 0%, #0d0a07 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%; transform-origin: bottom center;
  animation: ec-writer 6s ease-in-out infinite alternate;
}
.scn-editorial-coeli .paper-sheet {
  position:absolute; bottom:28%; left:35%; width:70px; height:50px; background: linear-gradient(180deg, #f0e4d0 0%, #d4c4a8 100%);
  border-radius: 2px; transform: rotate(-3deg); box-shadow: 2px 2px 8px rgba(0,0,0,.4);
  animation: ec-paper 10s ease-in-out infinite alternate;
}
.scn-editorial-coeli .inkwell {
  position:absolute; bottom:28%; left:50%; width:16px; height:18px; background: linear-gradient(180deg, #2a2018 0%, #1a100c 100%);
  border-radius: 30% 30% 20% 20%; transform: rotate(2deg);
}
.scn-editorial-coeli .quill {
  position:absolute; bottom:35%; left:48%; width:4px; height:40px; background: linear-gradient(180deg, #e0d0b0 0%, #b8a880 100%);
  border-radius: 0 0 2px 2px; transform: rotate(15deg); transform-origin: bottom center;
  animation: ec-quill 2s ease-in-out infinite alternate;
}
@keyframes ec-lamp {
  0% { transform: scale(1); opacity: .85; }
  50% { transform: scale(1.04); opacity: 1; }
  100% { transform: scale(.97); opacity: .9; }
}
@keyframes ec-writer {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ec-paper {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-1px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes ec-quill {
  0% { transform: rotate(15deg) translateX(0); }
  50% { transform: rotate(12deg) translateX(2px); }
  100% { transform: rotate(15deg) translateX(0); }
}

.scn-sunset-intro {
  background: linear-gradient(180deg, #3a2a1e 0%, #2c1c12 100%), radial-gradient(ellipse at 50% 80%, #4a3020 0%, transparent 60%);
}
.scn-sunset-intro .room-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  animation: sui-wall 12s ease-in-out infinite alternate;
}
.scn-sunset-intro .window-frame {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 160px; height: 180px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 0 6px #7a6a5a, 0 8px 20px rgba(0,0,0,0.5);
  animation: sui-frame 18s ease-in-out infinite;
}
.scn-sunset-intro .window-sky {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 144px; height: 164px; margin-top: 8px;
  background: linear-gradient(180deg, #ffaa66 0%, #dda055 30%, #886644 60%, #3a2a1a 100%);
  border-radius: 4px;
  animation: sui-sky 10s ease-in-out infinite alternate;
}
.scn-sunset-intro .sun-globe {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 40px;
  background: radial-gradient(circle, #ffcc77 0%, #ffaa44 60%, #cc7722 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffaa44, 0 0 60px 20px rgba(255,170,68,0.4);
  animation: sui-sun 10s ease-in-out infinite alternate;
}
.scn-sunset-intro .mountain-silhouette {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 160px; height: 60px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  clip-path: polygon(0% 100%, 20% 40%, 40% 60%, 60% 30%, 80% 50%, 100% 100%);
  animation: sui-mountain 8s ease-in-out infinite;
}
.scn-sunset-intro .sill {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 180px; height: 14px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-sunset-intro .lamp-glow {
  position: absolute; bottom: 22%; left: 35%;
  width: 8px; height: 8px;
  background: radial-gradient(circle, #ffeebb 0%, #ddaa66 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #ddaa66, 0 0 40px 12px rgba(221,170,102,0.3);
  animation: sui-lamp 3s ease-in-out infinite alternate;
}
@keyframes sui-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes sui-frame { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(0.5deg) translateY(-2px) } }
@keyframes sui-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6; filter: saturate(1.2) } }
@keyframes sui-sun { 0% { transform: translateX(-50%) translateY(0) scale(1); box-shadow: 0 0 20px 10px #ffaa44,0 0 40px 15px rgba(255,170,68,0.3) } 50% { transform: translateX(-50%) translateY(-6px) scale(1.05); box-shadow: 0 0 30px 15px #ffaa44,0 0 60px 25px rgba(255,170,68,0.5) } 100% { transform: translateX(-50%) translateY(0) scale(1); box-shadow: 0 0 20px 10px #ffaa44,0 0 40px 15px rgba(255,170,68,0.3) } }
@keyframes sui-mountain { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes sui-lamp { 0% { opacity: 0.6; box-shadow: 0 0 10px 3px #ddaa66 } 50% { opacity: 1; box-shadow: 0 0 25px 10px #ddaa66,0 0 50px 18px rgba(221,170,102,0.5) } 100% { opacity: 0.7; box-shadow: 0 0 12px 4px #ddaa66 } }

.scn-what-is-life-intro {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%), radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, transparent 70%);
}
.scn-what-is-life-intro .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  animation: wil-wall 15s ease-in-out infinite alternate;
}
.scn-what-is-life-intro .desk {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 180px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
.scn-what-is-life-intro .book-open {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 60px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8b898 100%);
  clip-path: polygon(0% 0%, 90% 0%, 100% 100%, 10% 100%);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: wil-book 6s ease-in-out infinite;
}
.scn-what-is-life-intro .candle {
  position: absolute; bottom: 33%; left: 40%;
  width: 10px; height: 30px;
  background: linear-gradient(180deg, #f0e0c0 0%, #a09070 100%);
  border-radius: 2px;
}
.scn-what-is-life-intro .flame {
  position: absolute; bottom: 50%; left: 40.5%;
  width: 6px; height: 12px;
  background: radial-gradient(circle at 50% 100%, #ffeebb 0%, #ffaa44 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #ffaa44, 0 0 24px 8px rgba(255,170,68,0.3);
  animation: wil-flame 1.5s ease-in-out infinite alternate;
}
.scn-what-is-life-intro .thinker-silhouette {
  position: absolute; bottom: 20%; left: 30%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wil-think 8s ease-in-out infinite;
}
.scn-what-is-life-intro .shadow-pool {
  position: absolute; bottom: 18%; left: 28%; width: 80px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: wil-shadow 4s ease-in-out infinite alternate;
}
@keyframes wil-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes wil-book { 0%,100% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) } }
@keyframes wil-flame { 0% { transform: scaleY(1) scaleX(1) translateX(0); opacity: 0.9 } 50% { transform: scaleY(1.2) scaleX(0.8) translateX(1px); opacity: 1 } 100% { transform: scaleY(0.9) scaleX(1.1) translateX(-1px); opacity: 0.85 } }
@keyframes wil-think { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-3deg) } 50% { transform: translateX(0) rotate(3deg) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes wil-shadow { 0% { transform: scaleX(1); opacity: 0.5 } 100% { transform: scaleX(1.2); opacity: 0.8 } }

.scn-blossoming-date-tree-intro {
  background: linear-gradient(180deg, #2c281c 0%, #1c1810 100%), radial-gradient(ellipse at 60% 40%, #3c3424 0%, transparent 70%);
}
.scn-blossoming-date-tree-intro .wall-panel {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #3c3424 0%, #1c1810 100%);
  animation: bdi-wall 20s ease-in-out infinite alternate;
}
.scn-blossoming-date-tree-intro .floor-plank {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-blossoming-date-tree-intro .pot {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
.scn-blossoming-date-tree-intro .tree-trunk {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 8px; height: 50px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a10 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: bdi-trunk 14s ease-in-out infinite;
}
.scn-blossoming-date-tree-intro .tree-fronds {
  position: absolute; bottom: 55%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 40px;
  background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%);
  clip-path: polygon(10% 100%, 50% 0%, 90% 100%);
  border-radius: 20% 20% 50% 50% / 40% 40% 30% 30%;
  animation: bdi-fronds 6s ease-in-out infinite alternate;
}
.scn-blossoming-date-tree-intro .book-stack {
  position: absolute; bottom: 15%; left: 35%;
  width: 30px; height: 20px;
  background: linear-gradient(180deg, #c8a878 0%, #9a7a4a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: bdi-books 10s ease-in-out infinite;
}
.scn-blossoming-date-tree-intro .lantern {
  position: absolute; bottom: 18%; left: 28%;
  width: 14px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 0 16px 4px #ddaa66, 0 0 32px 8px rgba(221,170,102,0.4);
  animation: bdi-lantern 3s ease-in-out infinite alternate;
}
@keyframes bdi-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes bdi-trunk { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(0.5deg) } }
@keyframes bdi-fronds { 0% { transform: translateX(-50%) rotate(-2deg) scaleY(1) } 50% { transform: translateX(-50%) rotate(2deg) scaleY(1.05) } 100% { transform: translateX(-50%) rotate(-1deg) scaleY(0.95) } }
@keyframes bdi-books { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-1px) } }
@keyframes bdi-lantern { 0% { box-shadow: 0 0 10px 2px #ddaa66; opacity: 0.7 } 50% { box-shadow: 0 0 20px 8px #ddaa66,0 0 40px 15px rgba(221,170,102,0.5); opacity: 1 } 100% { box-shadow: 0 0 12px 4px #ddaa66; opacity: 0.8 } }

.scn-blossoming-date-tree-body {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%), radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 60%);
}
.scn-blossoming-date-tree-body .wall-warm {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
  animation: bdb-wall 18s ease-in-out infinite alternate;
}
.scn-blossoming-date-tree-body .tree-trunk-bloom {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 10px; height: 60px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a10 100%);
  border-radius: 3px;
  transform-origin: bottom center;
  animation: bdb-trunk 12s ease-in-out infinite;
}
.scn-blossoming-date-tree-body .crown-bloom {
  position: absolute; bottom: 55%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 50px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 30% 30%;
  animation: bdb-crown 7s ease-in-out infinite alternate;
}
.scn-blossoming-date-tree-body .blossom-blob {
  position: absolute; bottom: 58%; left: 47%;
  width: 14px; height: 14px;
  background: radial-gradient(circle, #e8b878 0%, #cc8844 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px #cc8844, 0 0 20px 6px rgba(204,136,68,0.4);
  animation: bdb-blossom 4s ease-in-out infinite;
}
.scn-blossoming-date-tree-body .figure-reach {
  position: absolute; bottom: 20%; left: 30%;
  width: 28px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bdb-figure 6s ease-in-out infinite;
}
.scn-blossoming-date-tree-body .warm-glow-spot {
  position: absolute; bottom: 25%; left: 35%;
  width: 12px; height: 12px;
  background: radial-gradient(circle, #ffcc88 0%, #eeaa55 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #eeaa55, 0 0 40px 12px rgba(238,170,85,0.4);
  animation: bdb-glow 3s ease-in-out infinite alternate;
}
.scn-blossoming-date-tree-body .floor-shadow {
  position: absolute; bottom: 18%; left: 28%; width: 50px; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: bdb-shadow 5s ease-in-out infinite alternate;
}
@keyframes bdb-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes bdb-trunk { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(0.4deg) } }
@keyframes bdb-crown { 0% { transform: translateX(-50%) rotate(-2deg) scaleY(1) } 50% { transform: translateX(-50%) rotate(2deg) scaleY(1.03) } 100% { transform: translateX(-50%) rotate(-1deg) scaleY(0.97) } }
@keyframes bdb-blossom { 0%,100% { transform: translate(0,0) scale(1); opacity: 0.6 } 50% { transform: translate(2px,-2px) scale(1.2); opacity: 1 } }
@keyframes bdb-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(-4deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes bdb-glow { 0% { box-shadow: 0 0 10px 2px #eeaa55; opacity: 0.7 } 50% { box-shadow: 0 0 25px 10px #eeaa55,0 0 50px 20px rgba(238,170,85,0.5); opacity: 1 } 100% { box-shadow: 0 0 14px 4px #eeaa55; opacity: 0.8 } }
@keyframes bdb-shadow { 0% { transform: scaleX(0.9); opacity: 0.4 } 100% { transform: scaleX(1.1); opacity: 0.7 } }

/* scene: separation-intro (dim interior, calm) */

.scn-separation-intro {
  background:
    linear-gradient(180deg, #1f1a16 0%, #2e251d 40%, #3a2d22 100%),
    radial-gradient(ellipse at 50% 30%, #3a4a3a 0%, transparent 60%);
  filter: contrast(1.1) brightness(0.9);
}
.scn-separation-intro .room-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, #3a2d22 0%, #1f1a16 70%); animation: s1-room 12s ease-in-out infinite alternate;
}
.scn-separation-intro .window-frame {
  position: absolute; top: 15%; left: 60%; width: 30%; height: 50%; border: 6px solid #3a2a1a; border-radius: 4px; background: linear-gradient(135deg, #2c221a 0%, #1f1810 100%); box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: s1-frame 6s ease-in-out infinite;
}
.scn-separation-intro .jungle-silhouette {
  position: absolute; top: 20%; left: 62%; width: 26%; height: 45%; background: linear-gradient(180deg, #1a1a0a 0%, #0d0d05 100%); clip-path: polygon(0% 100%, 5% 70%, 10% 85%, 20% 50%, 30% 75%, 40% 40%, 50% 65%, 60% 30%, 70% 55%, 80% 20%, 90% 45%, 95% 10%, 100% 0%, 100% 100%); animation: s1-jungle 20s ease-in-out infinite alternate;
}
.scn-separation-intro .figure-sword {
  position: absolute; bottom: 12%; left: 30%; width: 12%; height: 45%; background: linear-gradient(180deg, #1a1512 0%, #0d0a08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: s1-figure 4s ease-in-out infinite;
}
.scn-separation-intro .figure-sword::after {
  content: ''; position: absolute; top: 20%; right: -40%; width: 80%; height: 5%; background: #4a3a2a; border-radius: 2px; transform: rotate(-30deg); box-shadow: 0 0 6px rgba(200,170,120,0.3); animation: s1-sword 4s ease-in-out infinite;
}
.scn-separation-intro .treasure-chest {
  position: absolute; bottom: 8%; left: 55%; width: 15%; height: 12%; background: linear-gradient(135deg, #5a3a1a 0%, #3a2210 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: s1-chest 8s ease-in-out infinite alternate;
}
.scn-separation-intro .gold-glow {
  position: absolute; bottom: 12%; left: 56%; width: 12%; height: 8%; background: radial-gradient(circle, #b09040 0%, #806030 40%, transparent 70%); box-shadow: 0 0 30px 10px rgba(176,144,64,0.6), 0 0 60px 20px rgba(176,144,64,0.3); animation: s1-glow 3s ease-in-out infinite alternate;
}
.scn-separation-intro .dust-mote {
  position: absolute; top: 30%; left: 20%; width: 4px; height: 4px; background: rgba(200,180,140,0.6); border-radius: 50%; filter: blur(1px); animation: s1-dust 15s linear infinite;
}
@keyframes s1-room { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes s1-frame { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } }
@keyframes s1-jungle { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes s1-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes s1-sword { 0%, 100% { transform: rotate(-30deg); } 50% { transform: rotate(-20deg); } }
@keyframes s1-chest { 0% { transform: translateY(0); } 100% { transform: translateY(-2px); } }
@keyframes s1-glow { 0% { opacity: 0.7; box-shadow: 0 0 20px 5px rgba(176,144,64,0.4), 0 0 40px 10px rgba(176,144,64,0.2); } 50% { opacity: 1; box-shadow: 0 0 40px 10px rgba(176,144,64,0.8), 0 0 80px 20px rgba(176,144,64,0.4); } 100% { opacity: 0.8; box-shadow: 0 0 25px 6px rgba(176,144,64,0.5), 0 0 50px 12px rgba(176,144,64,0.25); } }
@keyframes s1-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: 0.7; } 90% { opacity: 0.7; } 100% { transform: translate(60px, -80px) scale(1.5); opacity: 0; } }

/* scene: separation-variants (dim interior, calm) */

.scn-separation-variants {
  background:
    linear-gradient(180deg, #1e1c18 0%, #2b2620 50%, #3a322a 100%),
    radial-gradient(ellipse at 30% 70%, #2b2620 0%, transparent 70%);
  filter: brightness(0.9) sepia(0.15);
}
.scn-separation-variants .study-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 80% 40%, #3a322a 0%, #1e1c18 80%); animation: s2-bg 15s ease-in-out infinite alternate;
}
.scn-separation-variants .desk {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.5); animation: s2-desk 8s ease-in-out infinite alternate;
}
.scn-separation-variants .open-book {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 25%; background: linear-gradient(135deg, #c4b48a 0%, #a09070 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); transform: perspective(400px) rotateX(10deg); animation: s2-book 10s ease-in-out infinite;
}
.scn-separation-variants .candle {
  position: absolute; bottom: 35%; left: 70%; width: 4%; height: 20%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3220 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 8px rgba(200,150,80,0.3); animation: s2-candle 4s ease-in-out infinite alternate;
}
.scn-separation-variants .flame-glow {
  position: absolute; bottom: 52%; left: 70%; width: 6%; height: 6%; background: radial-gradient(circle, #f0c060 0%, #d0a050 40%, transparent 70%); box-shadow: 0 0 30px 10px rgba(240,192,96,0.6), 0 0 60px 20px rgba(240,192,96,0.3); animation: s2-flame 2s ease-in-out infinite alternate;
}
.scn-separation-variants .reader-silhouette {
  position: absolute; bottom: 18%; left: 15%; width: 14%; height: 40%; background: linear-gradient(180deg, #1a1510 0%, #0d0b08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: s2-reader 6s ease-in-out infinite;
}
.scn-separation-variants .reader-silhouette::before {
  content: ''; position: absolute; top: 20%; left: -30%; width: 30%; height: 30%; background: #1a1510; border-radius: 50% 10% 50% 10%; transform: rotate(-40deg); animation: s2-arm 6s ease-in-out infinite;
}
.scn-separation-variants .quill {
  position: absolute; bottom: 15%; left: 40%; width: 2%; height: 18%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 10% 10% 50% 50%; transform: rotate(-15deg); transform-origin: bottom; animation: s2-quill 4s ease-in-out infinite;
}
@keyframes s2-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes s2-desk { 0% { transform: translateY(0); } 100% { transform: translateY(-2px); } }
@keyframes s2-book { 0%, 100% { transform: perspective(400px) rotateX(10deg) translateY(0); } 50% { transform: perspective(400px) rotateX(12deg) translateY(-1px); } }
@keyframes s2-candle { 0% { transform: scaleY(1); } 100% { transform: scaleY(1.02); } }
@keyframes s2-flame { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.9; transform: scale(0.95); } }
@keyframes s2-reader { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes s2-arm { 0%, 100% { transform: rotate(-40deg); } 50% { transform: rotate(-35deg); } }
@keyframes s2-quill { 0%, 100% { transform: rotate(-15deg); } 50% { transform: rotate(-10deg); } }

/* scene: rash-conjurer-intro (dim interior, calm - magical) */

.scn-rash-conjurer-intro {
  background:
    linear-gradient(180deg, #1a1820 0%, #262230 50%, #322a3a 100%),
    radial-gradient(ellipse at 50% 60%, #322a3a 0%, transparent 80%);
  filter: brightness(0.9) saturate(0.7);
}
.scn-rash-conjurer-intro .conjure-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 40%, #2a2640 0%, #1a1820 100%); animation: rc1-bg 14s ease-in-out infinite alternate;
}
.scn-rash-conjurer-intro .circle-floor {
  position: absolute; bottom: 0; left: 50%; width: 50%; height: 50%; margin-left: -25%; border-radius: 50%; border: 3px solid #5a4a3a; background: transparent; box-shadow: inset 0 0 40px rgba(0,0,0,0.7); animation: rc1-circle 20s linear infinite;
}
.scn-rash-conjurer-intro .conjurer-silhouette {
  position: absolute; bottom: 20%; left: 35%; width: 15%; height: 50%; background: linear-gradient(180deg, #1a151a 0%, #0d0a0f 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rc1-conjurer 5s ease-in-out infinite;
}
.scn-rash-conjurer-intro .conjurer-silhouette::after {
  content: ''; position: absolute; top: 10%; left: -20%; width: 40%; height: 10%; background: #1a151a; border-radius: 50%; transform: rotate(40deg); animation: rc1-arm 5s ease-in-out infinite;
}
.scn-rash-conjurer-intro .imp-bird {
  position: absolute; bottom: 40%; left: 55%; width: 12%; height: 8%; background: linear-gradient(135deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40%; clip-path: polygon(0% 50%, 20% 0%, 40% 30%, 60% 0%, 80% 30%, 100% 50%, 80% 100%, 60% 70%, 40% 100%, 20% 70%); animation: rc1-imp 3s ease-in-out infinite alternate;
}
.scn-rash-conjurer-intro .smoke-wisp {
  position: absolute; bottom: 30%; left: 50%; width: 6%; height: 20%; background: rgba(200,180,200,0.1); border-radius: 50%; filter: blur(8px); animation: rc1-smoke 7s ease-in-out infinite;
}
.scn-rash-conjurer-intro .brazier-glow {
  position: absolute; bottom: 10%; left: 20%; width: 10%; height: 10%; background: radial-gradient(circle, #4a3a2a 0%, #2a1a10 50%, transparent 80%); box-shadow: 0 0 30px 10px rgba(100,70,40,0.5); animation: rc1-brazier 4s ease-in-out infinite alternate;
}
@keyframes rc1-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes rc1-circle { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes rc1-conjurer { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(3deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rc1-arm { 0%, 100% { transform: rotate(40deg); } 50% { transform: rotate(50deg); } }
@keyframes rc1-imp { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes rc1-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.3; } 50% { transform: translateY(-20px) scale(2); opacity: 0.1; } 100% { transform: translateY(-40px) scale(3); opacity: 0; } }
@keyframes rc1-brazier { 0% { opacity: 0.7; } 100% { opacity: 1; } }

/* scene: rash-conjurer-body (tense, firelit) */

.scn-rash-conjurer-body {
  background:
    linear-gradient(180deg, #1a0a0a 0%, #2a1008 40%, #4a2010 80%, #3a180a 100%),
    radial-gradient(ellipse at 50% 30%, #4a2010 0%, transparent 70%);
  filter: contrast(1.2) brightness(1.1);
}
.scn-rash-conjurer-body .firelit-room {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, #3a180a 0%, #1a0a0a 80%); animation: rc2-room 6s ease-in-out infinite alternate;
}
.scn-rash-conjurer-body .fire-flames {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 40%; background: linear-gradient(0deg, #c8553d 0%, #a0461a 30%, #5e1a1d 60%, transparent 100%); clip-path: polygon(0% 100%, 5% 60%, 10% 80%, 20% 40%, 30% 70%, 40% 30%, 50% 50%, 60% 20%, 70% 40%, 80% 10%, 90% 30%, 95% 0%, 100% 100%); animation: rc2-fire 2s ease-in-out infinite alternate;
}
.scn-rash-conjurer-body .burning-books {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 15%; background: linear-gradient(135deg, #5a2a1a 0%, #3a180a 100%); border-radius: 4px; box-shadow: 0 0 20px rgba(200,80,30,0.6); animation: rc2-books 4s ease-in-out infinite;
}
.scn-rash-conjurer-body .conjurer-kneeling {
  position: absolute; bottom: 10%; left: 50%; width: 14%; height: 40%; background: linear-gradient(180deg, #1a0a0a 0%, #0d0505 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: rc2-kneel 3s ease-in-out infinite alternate;
}
.scn-rash-conjurer-body .conjurer-kneeling::before {
  content: ''; position: absolute; top: 30%; left: -30%; width: 40%; height: 20%; background: #1a0a0a; border-radius: 50% 50% 20% 20%; transform: rotate(-60deg); animation: rc2-arm 3s ease-in-out infinite alternate;
}
.scn-rash-conjurer-body .smoke-plume {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 20%; background: rgba(100,60,40,0.15); border-radius: 50%; filter: blur(15px); animation: rc2-smoke 8s ease-in-out infinite;
}
.scn-rash-conjurer-body .stake-cross {
  position: absolute; top: 5%; left: 45%; width: 10%; height: 60%; background: linear-gradient(180deg, #3a2010 0%, #2a1508 100%); clip-path: polygon(40% 0%, 60% 0%, 60% 40%, 100% 40%, 100% 60%, 60% 60%, 60% 100%, 40% 100%, 40% 60%, 0% 60%, 0% 40%, 40% 40%); animation: rc2-cross 10s ease-in-out infinite alternate;
}
.scn-rash-conjurer-body .ember-fall {
  position: absolute; top: 0; left: 20%; width: 4px; height: 4px; background: rgba(200,100,30,0.8); border-radius: 50%; filter: blur(1px); animation: rc2-ember 3s linear infinite;
}
@keyframes rc2-room { 0% { opacity: 0.8; } 100% { opacity: 1; } }
@keyframes rc2-fire { 0% { transform: scaleY(1); opacity: 0.9; } 100% { transform: scaleY(1.2); opacity: 1; } }
@keyframes rc2-books { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes rc2-kneel { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes rc2-arm { 0% { transform: rotate(-60deg); } 100% { transform: rotate(-45deg); } }
@keyframes rc2-smoke { 0% { transform: scale(1) translateY(0); opacity: 0.2; } 50% { transform: scale(1.5) translateY(-20px); opacity: 0.1; } 100% { transform: scale(2) translateY(-40px); opacity: 0; } }
@keyframes rc2-cross { 0% { transform: scaleY(1); } 100% { transform: scaleY(1.02); } }
@keyframes rc2-ember { 0% { transform: translateY(0) translateX(0); opacity: 1; } 100% { transform: translateY(100vh) translateX(20px); opacity: 0; } }

.scn-childs-evening-prayer-intro {
  background: 
    linear-gradient(180deg, #1a1208 0%, #2a1a0a 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-childs-evening-prayer-intro .cep-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1208 100%);
  animation: cep-fade 12s ease-in-out infinite alternate;
}
.scn-childs-evening-prayer-intro .cep-window {
  position: absolute; top: 10%; left: 65%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, #504030 0%, #3a2a1a 70%);
  border-radius: 8px; box-shadow: inset 0 0 20px #8a6a4a;
  animation: cep-window-pulse 6s ease-in-out infinite alternate;
}
.scn-childs-evening-prayer-intro .cep-bed {
  position: absolute; bottom: 10%; left: 20%; width: 160px; height: 80px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 12px; box-shadow: 0 8px 16px #1a1208;
  transform: perspective(300px) rotateX(5deg);
  animation: cep-bed-breathe 9s ease-in-out infinite;
}
.scn-childs-evening-prayer-intro .cep-child {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cep-child-sway 5s ease-in-out infinite;
}
.scn-childs-evening-prayer-intro .cep-book {
  position: absolute; bottom: 18%; left: 30%; width: 24px; height: 16px;
  background: #6a4a2a; border-radius: 2px; box-shadow: 0 2px 4px #1a1208;
  transform: rotate(-10deg);
  animation: cep-book-move 8s ease-in-out infinite;
}
.scn-childs-evening-prayer-intro .cep-candle {
  position: absolute; bottom: 20%; left: 55%; width: 8px; height: 30px;
  background: linear-gradient(0deg, #8a6a3a 0%, #c0a070 60%);
  border-radius: 4px; box-shadow: 0 0 12px #f0d0a0;
  animation: cep-candle-flicker 1.5s ease-in-out infinite alternate;
}
.scn-childs-evening-prayer-intro .cep-glow {
  position: absolute; bottom: 18%; left: 53%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(240,208,160,0.4) 0%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: cep-glow-pulse 4s ease-in-out infinite alternate;
}
@keyframes cep-fade { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes cep-window-pulse { 0% { box-shadow: inset 0 0 10px #8a6a4a; } 50% { box-shadow: inset 0 0 30px #c0a070; } 100% { box-shadow: inset 0 0 15px #8a6a4a; } }
@keyframes cep-bed-breathe { 0% { transform: perspective(300px) rotateX(5deg) scale(1); } 50% { transform: perspective(300px) rotateX(3deg) scale(1.01); } 100% { transform: perspective(300px) rotateX(5deg) scale(1); } }
@keyframes cep-child-sway { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes cep-book-move { 0% { transform: rotate(-10deg) translate(0,0); } 33% { transform: rotate(-8deg) translate(2px,-1px); } 66% { transform: rotate(-12deg) translate(-1px,1px); } 100% { transform: rotate(-10deg) translate(0,0); } }
@keyframes cep-candle-flicker { 0% { transform: scaleY(1); opacity:0.9; box-shadow: 0 0 8px #f0d0a0; } 50% { transform: scaleY(1.05); opacity:1; box-shadow: 0 0 20px #f0d0a0; } 100% { transform: scaleY(0.95); opacity:0.85; box-shadow: 0 0 12px #f0d0a0; } }
@keyframes cep-glow-pulse { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.2); } 100% { opacity:0.4; transform: scale(1); } }

.scn-metrical-feet-intro {
  background: 
    linear-gradient(180deg, #1a1810 0%, #2a2218 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-metrical-feet-intro .mfi-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1810 0%, #2a2218 100%);
  animation: mfi-depth 15s ease-in-out infinite alternate;
}
.scn-metrical-feet-intro .mfi-path {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 80%);
  border-radius: 50%;
  animation: mfi-path-glow 8s ease-in-out infinite alternate;
}
.scn-metrical-feet-intro .mfi-trochee {
  position: absolute; bottom: 25%; left: 15%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mfi-trochee-move 2s ease-in-out infinite;
}
.scn-metrical-feet-intro .mfi-spondee {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #a08060 0%, #705030 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: mfi-spondee-move 4s ease-in-out infinite;
}
.scn-metrical-feet-intro .mfi-dactyl {
  position: absolute; bottom: 25%; left: 62%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #c0a070 0%, #8a6a3a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: mfi-dactyl-move 1.5s ease-in-out infinite;
}
.scn-metrical-feet-intro .mfi-anapaest {
  position: absolute; bottom: 25%; left: 75%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #d0b080 0%, #a08050 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: mfi-anapaest-move 1.8s ease-in-out infinite;
}
.scn-metrical-feet-intro .mfi-accent-light {
  position: absolute; bottom: 30%; left: 50%; width: 10px; height: 10px;
  background: radial-gradient(circle, #f0d0a0 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: mfi-light-pulse 3s ease-in-out infinite alternate;
}
@keyframes mfi-depth { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes mfi-path-glow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes mfi-trochee-move { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-8px) rotate(5deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-4px) rotate(-3deg); } }
@keyframes mfi-spondee-move { 0%,100% { transform: translateY(0) scale(1); } 33% { transform: translateY(-6px) scale(1.05); } 66% { transform: translateY(2px) scale(0.95); } }
@keyframes mfi-dactyl-move { 0%,100% { transform: translateY(0) translateX(0); } 20% { transform: translateY(-10px) translateX(5px) rotate(3deg); } 40% { transform: translateY(0) translateX(0); } 60% { transform: translateY(-10px) translateX(-3px) rotate(-2deg); } 80% { transform: translateY(0) translateX(0); } }
@keyframes mfi-anapaest-move { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-12px) rotate(4deg); } 60% { transform: translateY(-6px) rotate(-2deg); } }
@keyframes mfi-light-pulse { 0% { transform: scale(1); opacity:0.6; } 50% { transform: scale(1.5); opacity:1; } 100% { transform: scale(1); opacity:0.7; } }

.scn-farewell-to-love-intro {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e14 40%, #3a2818 100%),
    radial-gradient(ellipse at 50% 30%, #3a2818 0%, transparent 70%);
}
.scn-farewell-to-love-intro .ftl-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1410 0%, #2a1e14 100%);
  animation: ftl-bg-dim 14s ease-in-out infinite alternate;
}
.scn-farewell-to-love-intro .ftl-figure-love {
  position: absolute; top: 15%; left: 30%; width: 40px; height: 80px;
  background: radial-gradient(ellipse at 50% 40%, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ftl-love-fade 10s ease-in-out infinite;
}
.scn-farewell-to-love-intro .ftl-figure-speaker {
  position: absolute; bottom: 10%; left: 50%; width: 30px; height: 70px;
  background: radial-gradient(ellipse at 50% 30%, #4a3220 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ftl-speaker-move 8s ease-in-out infinite;
}
.scn-farewell-to-love-intro .ftl-wings {
  position: absolute; top: 18%; left: 25%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, #c0a080 0%, transparent 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  filter: blur(5px); opacity: 0.6;
  animation: ftl-wings-flap 4s ease-in-out infinite alternate;
}
.scn-farewell-to-love-intro .ftl-rose {
  position: absolute; bottom: 30%; left: 40%; width: 12px; height: 12px;
  background: radial-gradient(circle, #b87878 0%, #702243 100%);
  border-radius: 50%;
  animation: ftl-rose-wilt 12s ease-in-out infinite;
}
.scn-farewell-to-love-intro .ftl-particles {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 10% 20%, #f0d0a0 0%, transparent 30%);
  filter: blur(8px); opacity: 0.3;
  animation: ftl-particles-drift 20s linear infinite;
}
@keyframes ftl-bg-dim { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ftl-love-fade { 0% { opacity:0.9; transform: translateY(0) scale(1); } 30% { opacity:0.7; transform: translateY(-10px) scale(1.05); } 60% { opacity:0.5; transform: translateY(-20px) scale(0.95); } 100% { opacity:0.3; transform: translateY(-30px) scale(0.9); } }
@keyframes ftl-speaker-move { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ftl-wings-flap { 0% { transform: rotateY(0deg) scale(1); } 50% { transform: rotateY(20deg) scale(1.1); } 100% { transform: rotateY(0deg) scale(1); } }
@keyframes ftl-rose-wilt { 0% { transform: scale(1) rotate(0deg); opacity:1; } 50% { transform: scale(0.9) rotate(5deg); opacity:0.8; } 100% { transform: scale(0.8) rotate(10deg); opacity:0.6; } }
@keyframes ftl-particles-drift { 0% { transform: translate(0,0); opacity:0.2; } 50% { transform: translate(20px,-10px); opacity:0.5; } 100% { transform: translate(0,0); opacity:0.2; } }

.scn-farewell-to-love-variants {
  background: 
    linear-gradient(180deg, #1a1612 0%, #2a2018 40%, #3a2a1c 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a1c 0%, transparent 70%);
}
.scn-farewell-to-love-variants .ftv-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2018 0%, #1a1612 100%);
  animation: ftv-bg-shift 16s ease-in-out infinite alternate;
}
.scn-farewell-to-love-variants .ftv-shelf {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 12px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 4px; box-shadow: 0 4px 8px #0a0806;
}
.scn-farewell-to-love-variants .ftv-book1 {
  position: absolute; bottom: 35%; left: 20%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px; box-shadow: 0 2px 4px #0a0806;
  transform: rotate(-5deg);
  animation: ftv-book1-sway 10s ease-in-out infinite;
}
.scn-farewell-to-love-variants .ftv-book2 {
  position: absolute; bottom: 35%; left: 40%; width: 35px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px; box-shadow: 0 2px 4px #0a0806;
  transform: rotate(8deg);
  animation: ftv-book2-sway 12s ease-in-out infinite;
}
.scn-farewell-to-love-variants .ftv-candle {
  position: absolute; bottom: 32%; left: 60%; width: 6px; height: 35px;
  background: linear-gradient(0deg, #8a6a3a 0%, #c0a070 70%);
  border-radius: 3px;
  animation: ftv-candle-flicker 2s ease-in-out infinite alternate;
}
.scn-farewell-to-love-variants .ftv-scroll {
  position: absolute; bottom: 30%; left: 15%; width: 50px; height: 18px;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 4px; box-shadow: 0 2px 4px #0a0806;
  transform: rotate(-15deg);
  animation: ftv-scroll-move 20s ease-in-out infinite;
}
.scn-farewell-to-love-variants .ftv-quill {
  position: absolute; bottom: 32%; left: 70%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a3220 100%);
  border-radius: 2px; transform: rotate(20deg);
  animation: ftv-quill-dip 8s ease-in-out infinite;
}
.scn-farewell-to-love-variants .ftv-ink {
  position: absolute; bottom: 28%; left: 72%; width: 10px; height: 10px;
  background: radial-gradient(circle, #1a1208 0%, transparent 100%);
  border-radius: 50%;
  animation: ftv-ink-ripple 6s ease-in-out infinite;
}
@keyframes ftv-bg-shift { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ftv-book1-sway { 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 ftv-book2-sway { 0% { transform: rotate(8deg) translateY(0); } 25% { transform: rotate(6deg) translateY(-3px); } 50% { transform: rotate(10deg) translateY(0); } 75% { transform: rotate(7deg) translateY(-1px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes ftv-candle-flicker { 0% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.08); opacity:1; } 100% { transform: scaleY(0.92); opacity:0.85; } }
@keyframes ftv-scroll-move { 0% { transform: rotate(-15deg) translate(0,0); } 25% { transform: rotate(-12deg) translate(3px,-2px); } 50% { transform: rotate(-18deg) translate(-2px,1px); } 75% { transform: rotate(-13deg) translate(2px,-1px); } 100% { transform: rotate(-15deg) translate(0,0); } }
@keyframes ftv-quill-dip { 0% { transform: rotate(20deg) translate(0,0); } 30% { transform: rotate(15deg) translate(2px,5px); } 60% { transform: rotate(25deg) translate(-1px,-3px); } 100% { transform: rotate(20deg) translate(0,0); } }
@keyframes ftv-ink-ripple { 0% { transform: scale(1); opacity:0.5; } 50% { transform: scale(1.5); opacity:0.2; } 100% { transform: scale(1); opacity:0.5; } }

.scn-night-scene-sandoval-mockery {
  background:
    linear-gradient(180deg, #0b0e1a 0%, #1a1f33 30%, #2a2f4a 60%, #1f2338 100%),
    radial-gradient(ellipse at 50% 100%, #2a304a 0%, transparent 70%);
}
.scn-night-scene-sandoval-mockery .stars-back {
  position: absolute; inset: 0; 
  background: radial-gradient(2px 2px at 20% 30%, rgba(200,210,255,.6) 0%, transparent 100%),
              radial-gradient(1px 1px at 40% 50%, rgba(200,210,255,.5) 0%, transparent 100%),
              radial-gradient(2px 2px at 60% 20%, rgba(200,210,255,.4) 0%, transparent 100%),
              radial-gradient(1px 1px at 80% 60%, rgba(200,210,255,.3) 0%, transparent 100%);
  background-size: 200px 200px; /* deliberate tiling, but will be covered by foreground */
  animation: nsm-stars-b 60s linear infinite;
}
.scn-night-scene-sandoval-mockery .stars-fore {
  position: absolute; inset: 0;
  background: radial-gradient(3px 3px at 10% 40%, rgba(230,240,255,.9) 0%, transparent 100%),
              radial-gradient(2px 2px at 50% 70%, rgba(230,240,255,.8) 0%, transparent 100%),
              radial-gradient(2px 2px at 80% 25%, rgba(230,240,255,.7) 0%, transparent 100%);
  background-size: 300px 300px;
  animation: nsm-stars-f 45s linear infinite;
}
.scn-night-scene-sandoval-mockery .dunes {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3d3a2e 0%, #2b281e 100%);
  border-radius: 60% 40% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,.6);
  animation: nsm-dunes 18s ease-in-out infinite alternate;
}
.scn-night-scene-sandoval-mockery .lotus-leaf {
  position: absolute; bottom: 38%; left: 35%; width: 80px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #5a7a5a 0%, #2a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: rotate(-8deg);
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
  animation: nsm-lotus 6s ease-in-out infinite;
}
.scn-night-scene-sandoval-mockery .figure-sandoval {
  position: absolute; bottom: 35%; left: 65%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1b1a24 0%, #0c0c14 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nsm-figure 4s ease-in-out infinite;
}
.scn-night-scene-sandoval-mockery .sarcastic-glow {
  position: absolute; bottom: 52%; left: 66%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(200,220,255,.8) 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(180,200,255,.4);
  opacity: 0.6;
  animation: nsm-glow 3s ease-in-out infinite alternate;
}
@keyframes nsm-stars-b {
  0%, 100% { opacity: .7; transform: translate(0, 0); }
  50% { opacity: .5; transform: translate(10px, -5px); }
}
@keyframes nsm-stars-f {
  0%, 100% { opacity: .9; transform: translate(0, 0); }
  50% { opacity: .6; transform: translate(-15px, 8px); }
}
@keyframes nsm-dunes {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.01); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes nsm-lotus {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-2px) scale(1.02); }
  100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes nsm-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes nsm-glow {
  0% { opacity: .4; box-shadow: 0 0 15px 4px rgba(180,200,255,.2); }
  50% { opacity: .8; box-shadow: 0 0 25px 10px rgba(180,200,255,.5); }
  100% { opacity: .5; box-shadow: 0 0 18px 6px rgba(180,200,255,.3); }
}

/* ----- night-scene-sandoval-solliloquy ----- */

.scn-night-scene-sandoval-solliloquy {
  background:
    linear-gradient(180deg, #050712 0%, #141a2e 40%, #1f263a 100%),
    radial-gradient(ellipse at 50% 0%, #1f2a42 0%, transparent 80%);
}
.scn-night-scene-sandoval-solliloquy .sky-void {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #070b18 0%, #10152a 100%);
  animation: nss-sky 20s ease-in-out infinite alternate;
}
.scn-night-scene-sandoval-solliloquy .stars-faint {
  position: absolute; inset: 0;
  background: radial-gradient(1px 1px at 15% 20%, rgba(200,210,240,.5) 0%, transparent 100%),
              radial-gradient(1px 1px at 35% 55%, rgba(200,210,240,.4) 0%, transparent 100%),
              radial-gradient(2px 2px at 60% 10%, rgba(200,210,240,.6) 0%, transparent 100%),
              radial-gradient(1px 1px at 80% 40%, rgba(200,210,240,.3) 0%, transparent 100%);
  animation: nss-stars 50s linear infinite;
}
.scn-night-scene-sandoval-solliloquy .forest-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a1e 0%, #16160e 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.7);
  animation: nss-floor 24s ease-in-out infinite alternate;
}
.scn-night-scene-sandoval-solliloquy .tree {
  position: absolute; bottom: 35%; width: 16px; 
  background: linear-gradient(180deg, #3a3226 0%, #1c1810 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-night-scene-sandoval-solliloquy .tree-a {
  left: 18%; height: 160px;
  animation: nss-tree 8s ease-in-out infinite alternate;
}
.scn-night-scene-sandoval-solliloquy .tree-b {
  left: 45%; height: 200px;
  animation: nss-tree 10s ease-in-out infinite alternate-reverse;
}
.scn-night-scene-sandoval-solliloquy .tree-c {
  right: 22%; height: 180px;
  animation: nss-tree 9s ease-in-out infinite alternate;
}
.scn-night-scene-sandoval-solliloquy .figure-henry {
  position: absolute; bottom: 34%; left: 70%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #24222e 0%, #12101a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: nss-figure-h 5s ease-in-out infinite;
  opacity: 0.8;
}
.scn-night-scene-sandoval-solliloquy .figure-sandoval-alone {
  position: absolute; bottom: 36%; right: 38%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #1c1b26 0%, #0d0c14 100%);
  border-radius: 48% 48% 36% 36% / 58% 58% 42% 42%;
  transform-origin: bottom center;
  animation: nss-figure-s 4s ease-in-out infinite;
}
@keyframes nss-sky {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .6; }
}
@keyframes nss-stars {
  0% { transform: translate(0, 0); }
  50% { transform: translate(15px, -8px); }
  100% { transform: translate(-10px, 5px); }
}
@keyframes nss-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes nss-tree {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-3px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes nss-figure-h {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes nss-figure-s {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(-3px) rotate(-2deg); }
  66% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* ----- hymn-power-trace ----- */

.scn-hymn-power-trace {
  background:
    linear-gradient(180deg, #fbebc0 0%, #f4d698 40%, #dbb27a 70%, #a8825a 100%),
    radial-gradient(ellipse at 50% 20%, #feeac6 0%, transparent 60%);
}
.scn-hymn-power-trace .dawn-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fbe4b8 0%, #edce9a 50%, #d4b07a 100%);
  animation: hpt-sky 15s ease-in-out infinite alternate;
}
.scn-hymn-power-trace .sun-dawn {
  position: absolute; top: 12%; left: 45%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8e0 0%, #f8d88a 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 90px 30px rgba(255, 230, 150, .6);
  animation: hpt-sun 25s ease-in-out infinite alternate;
}
.scn-hymn-power-trace .hills-dawn {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5e6b4e 0%, #3d4a30 100%);
  border-radius: 50% 60% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
  animation: hpt-hills 20s ease-in-out infinite alternate;
}
.scn-hymn-power-trace .tree-dawn {
  position: absolute; bottom: 35%; left: 30%; width: 20px; height: 120px;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3422 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
  animation: hpt-tree 10s ease-in-out infinite alternate;
}
.scn-hymn-power-trace .figure-worship {
  position: absolute; bottom: 36%; left: 55%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #6a6044 0%, #4a3c2a 100%);
  border-radius: 48% 48% 36% 36% / 58% 58% 42% 42%;
  transform-origin: bottom center;
  animation: hpt-figure 6s ease-in-out infinite;
}
.scn-hymn-power-trace .dewdrop {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle at 40% 30%, rgba(255,255,255,.9) 0%, rgba(180,220,240,.5) 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,255,240,.3);
}
.scn-hymn-power-trace .drop-a {
  top: 28%; left: 25%;
  animation: hpt-dew 8s ease-in-out infinite;
}
.scn-hymn-power-trace .drop-b {
  top: 35%; right: 30%;
  animation: hpt-dew 9s ease-in-out infinite 4s;
}
@keyframes hpt-sky { 
  0% { opacity: .7; } 
  50% { opacity: .9; } 
  100% { opacity: .8; } 
}
@keyframes hpt-sun { 
  0% { transform: translateY(0) scale(1); opacity: .85; } 
  50% { transform: translateY(-5px) scale(1.03); opacity: 1; } 
  100% { transform: translateY(0) scale(1); opacity: .9; } 
}
@keyframes hpt-hills { 
  0% { transform: translateY(0) scale(1); } 
  50% { transform: translateY(-3px) scale(1.01); } 
  100% { transform: translateY(0) scale(1); } 
}
@keyframes hpt-tree { 
  0% { transform: scaleY(1); } 
  50% { transform: scaleY(1.02) translateY(-2px); } 
  100% { transform: scaleY(1); } 
}
@keyframes hpt-figure { 
  0% { transform: translateX(0) rotate(0deg); } 
  33% { transform: translateX(-2px) rotate(-1deg); } 
  66% { transform: translateX(2px) rotate(1deg); } 
  100% { transform: translateX(0) rotate(0deg); } 
}
@keyframes hpt-dew { 
  0% { transform: translateY(0) scale(1); opacity: .6; } 
  50% { transform: translateY(-6px) scale(1.2); opacity: .9; } 
  100% { transform: translateY(0) scale(1); opacity: .6; } 
}

/* ----- hymn-editorial ----- */

.scn-hymn-editorial {
  background:
    linear-gradient(180deg, #1e1a1c 0%, #2c2628 40%, #1e181a 80%, #100c0e 100%),
    radial-gradient(ellipse at 50% 50%, #2a2426 0%, transparent 70%);
}
.scn-hymn-editorial .wall-dim {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2224 0%, #1e181a 50%, #141012 100%);
  animation: he-wall 20s ease-in-out infinite alternate;
}
.scn-hymn-editorial .window-arch {
  position: absolute; top: 8%; left: 50%; width: 120px; height: 180px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #2a3a4a 0%, #1a222a 60%, #0e1216 100%);
  border-radius: 40% 40% 10% 10% / 30% 30% 10% 10%;
  box-shadow: inset 0 0 60px rgba(0,15,30,.7), 0 0 30px rgba(40,60,80,.3);
  animation: he-window 15s ease-in-out infinite alternate;
}
.scn-hymn-editorial .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 28%;
  background: linear-gradient(180deg, #4a3e32 0%, #332a20 100%);
  border-radius: 8% 8% 4% 4% / 20% 20% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
  animation: he-desk 12s ease-in-out infinite alternate;
}
.scn-hymn-editorial .papers {
  position: absolute; bottom: 30%; left: 35%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8bca0 100%);
  border-radius: 4% 6% 8% 4% / 10% 12% 8% 6%;
  transform: rotate(-3deg);
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: he-papers 9s ease-in-out infinite;
}
.scn-hymn-editorial .candle {
  position: absolute; bottom: 40%; right: 30%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8b08a 100%);
  border-radius: 30% 30% 10% 10% / 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: he-candle 5s ease-in-out infinite alternate;
}
.scn-hymn-editorial .quill {
  position: absolute; bottom: 35%; left: 25%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #d8ceb8 0%, #a69c82 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: he-quill 7s ease-in-out infinite;
}
.scn-hymn-editorial .inkwell {
  position: absolute; bottom: 32%; left: 20%; width: 20px; height: 16px;
  background: radial-gradient(ellipse at 50% 30%, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: he-inkwell 14s ease-in-out infinite alternate;
}
.scn-hymn-editorial .shadow-mind {
  position: absolute; bottom: 30%; left: 60%; width: 60px; height: 120px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.3) 0%, transparent 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  filter: blur(10px);
  animation: he-shadow 20s ease-in-out infinite;
}
@keyframes he-wall {
  0% { opacity: .7; }
  50% { opacity: .85; }
  100% { opacity: .75; }
}
@keyframes he-window {
  0% { box-shadow: inset 0 0 60px rgba(0,15,30,.7), 0 0 30px rgba(40,60,80,.3); }
  50% { box-shadow: inset 0 0 80px rgba(0,15,30,.5), 0 0 50px rgba(40,60,80,.5); }
  100% { box-shadow: inset 0 0 60px rgba(0,15,30,.7), 0 0 30px rgba(40,60,80,.3); }
}
@keyframes he-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes he-papers {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-3px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes he-candle {
  0% { transform: scaleY(1) rotate(0deg); opacity: .9; }
  50% { transform: scaleY(1.02) rotate(1deg); opacity: 1; }
  100% { transform: scaleY(1) rotate(0deg); opacity: .9; }
}
@keyframes he-quill {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(22deg) translateY(-4px); }
  100% { transform: rotate(20deg) translateY(0); }
}
@keyframes he-inkwell {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(1); }
}
@keyframes he-shadow {
  0% { opacity: .3; transform: scaleX(1); }
  50% { opacity: .5; transform: scaleX(1.1); }
  100% { opacity: .3; transform: scaleX(1); }
}

.scn-mary-listens-babe-pressed { background: linear-gradient(180deg, #1a1008 0%, #2a1a0e 30%, #4a2a18 60%, #2a1810 100%), radial-gradient(ellipse at 50% 70%, #6a3a1a 0%, transparent 60%); }
.scn-mary-listens-babe-pressed .stable-walls { position:absolute; inset:0 10% 20% 10%; background: linear-gradient(135deg, #1a0e08 0%, #2a180e 50%, #1a1008 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 40px rgba(0,0,0,.7); animation: ml-walls 15s ease-in-out infinite alternate; }
.scn-mary-listens-babe-pressed .fire-glow { position:absolute; bottom:30%; left:20%; width:100px; height:100px; background: radial-gradient(circle, #e08030 0%, #b05020 40%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(224,128,48,.4); animation: ml-fire 4s ease-in-out infinite alternate; }
.scn-mary-listens-babe-pressed .mary-figure { position:absolute; bottom:23%; left:35%; width:28px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 45% 45% / 70% 60% 45% 45%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: ml-mary 8s ease-in-out infinite; }
.scn-mary-listens-babe-pressed .babe-child { position:absolute; bottom:26%; left:38%; width:14px; height:20px; background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ml-babe 6s ease-in-out infinite; }
.scn-mary-listens-babe-pressed .hay-strewn { position:absolute; bottom:20%; left:25%; right:25%; height:10px; background: linear-gradient(90deg, #4a3a1a 0%, #5a4a2a 30%, #3a2a10 70%, #4a3a1a 100%); border-radius: 40% 60% 50% 50%; filter: blur(2px); animation: ml-hay 12s ease-in-out infinite alternate; }
.scn-mary-listens-babe-pressed .halo-light { position:absolute; bottom:35%; left:36%; width:20px; height:20px; background: radial-gradient(circle, #f0d080 0%, #c0a050 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(240,208,128,.5); animation: ml-halo 5s ease-in-out infinite alternate; }
@keyframes ml-walls { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ml-fire { 0% { transform: scale(.95) translateY(0); opacity:.8 } 50% { transform: scale(1.05) translateY(-2px); opacity:1 } 100% { transform: scale(1) translateY(0); opacity:.85 } }
@keyframes ml-mary { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ml-babe { 0% { transform: translateX(0) translateY(0) scale(1) } 50% { transform: translateX(-2px) translateY(-2px) scale(1.02) } 100% { transform: translateX(0) translateY(0) scale(1) } }
@keyframes ml-hay { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.1) translateY(-1px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes ml-halo { 0% { box-shadow: 0 0 20px 4px rgba(240,208,128,.3); transform: scale(.95) rotate(-3deg); opacity:.8 } 50% { box-shadow: 0 0 40px 10px rgba(240,208,128,.6); transform: scale(1.05) rotate(3deg); opacity:1 } 100% { box-shadow: 0 0 25px 6px rgba(240,208,128,.4); transform: scale(1) rotate(0); opacity:.9 } }

.scn-hero-kings-majesty { background: linear-gradient(180deg, #2a1a0e 0%, #4a3020 30%, #6a4a30 60%, #3a2218 100%), radial-gradient(ellipse at 50% 40%, #8a6040 0%, transparent 70%); }
.scn-hero-kings-majesty .hall-interior { position:absolute; inset:0 5% 15% 5%; background: linear-gradient(135deg, #3a2218 0%, #5a3828 40%, #2a1a0e 100%); border-radius: 6% 6% 4% 4%; box-shadow: inset 0 0 50px rgba(0,0,0,.6); animation: hk-hall 20s ease-in-out infinite alternate; }
.scn-hero-kings-majesty .hero-figure { position:absolute; bottom:20%; left:50%; width:30px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 60%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: hk-hero 7s ease-in-out infinite; }
.scn-hero-kings-majesty .laurel-wreath { position:absolute; bottom:50%; left:50%; width:20px; height:14px; transform:translateX(-50%); background: radial-gradient(ellipse, #6a8a3a 0%, #4a6a2a 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(106,138,58,.3); animation: hk-laurel 5s ease-in-out infinite alternate; }
.scn-hero-kings-majesty .king-left { position:absolute; bottom:22%; left:28%; width:22px; height:44px; background: linear-gradient(180deg, #5a3828 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hk-king-l 9s ease-in-out infinite; }
.scn-hero-kings-majesty .king-right { position:absolute; bottom:22%; right:28%; width:22px; height:44px; background: linear-gradient(180deg, #5a3828 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hk-king-r 9s ease-in-out infinite 3s; }
.scn-hero-kings-majesty .throne-back { position:absolute; bottom:18%; left:44%; right:44%; height:50px; background: linear-gradient(180deg, #6a4a30 0%, #3a2218 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: hk-throne 14s ease-in-out infinite alternate; }
.scn-hero-kings-majesty .light-shaft { position:absolute; top:0; left:35%; right:35%; bottom:20%; background: linear-gradient(180deg, rgba(200,180,140,.15) 0%, rgba(200,180,140,.05) 40%, transparent 100%); clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%); animation: hk-shaft 8s ease-in-out infinite alternate; }
@keyframes hk-hall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes hk-hero { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(-4px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes hk-laurel { 0% { transform: translateX(-50%) scale(.95) rotate(-5deg); opacity:.7 } 50% { transform: translateX(-50%) scale(1.05) rotate(5deg); opacity:1 } 100% { transform: translateX(-50%) scale(1) rotate(0); opacity:.8 } }
@keyframes hk-king-l { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 50% { transform: translateX(-3px) translateY(-2px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes hk-king-r { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(3px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes hk-throne { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes hk-shaft { 0% { opacity:.4; transform: translateX(-5px) } 50% { opacity:.8; transform: translateX(0) } 100% { opacity:.5; transform: translateX(5px) } }

.scn-mother-peace-prince { background: linear-gradient(180deg, #4a6080 0%, #6a8aaa 30%, #8ab0c8 60%, #c0d0d8 100%), radial-gradient(ellipse at 50% 100%, #8a9aaa 0%, transparent 60%); }
.scn-mother-peace-prince .dawn-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a3a5e 0%, #6a7aaa 40%, #8ab0c8 70%, #c0d8d8 100%); animation: mp-sky 30s ease-in-out infinite alternate; }
.scn-mother-peace-prince .sun-glow { position:absolute; bottom:35%; left:50%; width:50px; height:50px; transform:translateX(-50%); background: radial-gradient(circle, #f0d0a0 0%, #d0b080 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(208,176,128,.5), 0 0 120px 40px rgba(208,176,128,.2); animation: mp-sun 6s ease-in-out infinite alternate; }
.scn-mother-peace-prince .mother-form { position:absolute; bottom:22%; left:38%; width:26px; height:48px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 70% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: mp-mother 10s ease-in-out infinite; }
.scn-mother-peace-prince .child-form { position:absolute; bottom:24%; left:41%; width:14px; height:20px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mp-child 7s ease-in-out infinite; }
.scn-mother-peace-prince .land-roll { position:absolute; bottom:18%; left:0; right:0; height:25%; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); border-radius: 70% 50% 0 0 / 60% 40% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,.3); animation: mp-land 22s ease-in-out infinite alternate; }
.scn-mother-peace-prince .cloud-c { position:absolute; top:12%; left:20%; width:90px; height:20px; background: linear-gradient(180deg, rgba(200,210,220,.6) 0%, rgba(200,210,220,.1) 100%); border-radius:50%; filter: blur(6px); animation: mp-drift-c 40s linear infinite; }
.scn-mother-peace-prince .cloud-d { position:absolute; top:18%; right:15%; width:70px; height:16px; background: linear-gradient(180deg, rgba(200,210,220,.5) 0%, rgba(200,210,220,.05) 100%); border-radius:50%; filter: blur(5px); animation: mp-drift-d 55s linear infinite reverse; }
.scn-mother-peace-prince .mist-bank { position:absolute; bottom:25%; left:10%; right:10%; height:12px; background: linear-gradient(90deg, transparent 0%, rgba(180,200,210,.3) 30%, rgba(180,200,210,.1) 70%, transparent 100%); border-radius:50%; filter: blur(8px); animation: mp-mist 18s ease-in-out infinite alternate; }
@keyframes mp-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes mp-sun { 0% { transform: translateX(-50%) scale(.95); box-shadow: 0 0 40px 12px rgba(208,176,128,.3); opacity:.8 } 50% { transform: translateX(-50%) scale(1.08); box-shadow: 0 0 80px 24px rgba(208,176,128,.6); opacity:1 } 100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 60px 20px rgba(208,176,128,.4); opacity:.9 } }
@keyframes mp-mother { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes mp-child { 0% { transform: translateX(0) translateY(0) scale(1) } 50% { transform: translateX(-2px) translateY(-2px) scale(1.02) } 100% { transform: translateX(0) translateY(0) scale(1) } }
@keyframes mp-land { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes mp-drift-c { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes mp-drift-d { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes mp-mist { 0% { opacity:.4; transform: translateX(-5px) scaleX(1) } 50% { opacity:.7; transform: translateX(0) scaleX(1.05) } 100% { opacity:.5; transform: translateX(5px) scaleX(1) } }

/* recollections-of-love-intro – warm sunlit woodland glade */

.scn-recollections-of-love-intro {
  background:
    linear-gradient(180deg, #fce4b0 0%, #f8d98a 30%, #d4a750 60%, #7c5c2a 100%),
    radial-gradient(ellipse at 50% 0%, #fff5d4 0%, transparent 70%);
}
.scn-recollections-of-love-intro .sky-rli {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b5d8e8 0%, #fdeac8 100%);
  animation: rli-sky 12s ease-in-out infinite alternate;
}
.scn-recollections-of-love-intro .sun-rli {
  position: absolute; top: 8%; left: 55%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff7d4 0%, #f8c060 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(248,192,96,0.6);
  animation: rli-sun 10s ease-in-out infinite alternate;
}
.scn-recollections-of-love-intro .hills-rli {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a9a4a 0%, #5a7a2a 100%);
  border-radius: 60% 40% 0 0 / 90% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: rli-hills 18s ease-in-out infinite alternate;
}
.scn-recollections-of-love-intro .trees-bg-rli {
  position: absolute; bottom: 25%; left: 5%; width: 120px; height: 180px;
  background: linear-gradient(135deg, #3a5a2a 0%, #2a4a1a 100%);
  border-radius: 40% 60% 20% 40% / 60% 70% 30% 40%;
  transform: scaleX(-1);
  filter: blur(2px);
  animation: rli-tree-sway 8s ease-in-out infinite alternate;
}
.scn-recollections-of-love-intro .trees-fg-rli {
  position: absolute; bottom: 22%; right: 8%; width: 100px; height: 200px;
  background: linear-gradient(120deg, #2d4a1a 0%, #1a3a0a 100%);
  border-radius: 50% 50% 30% 40% / 70% 50% 40% 40%;
  animation: rli-tree-sway 9s ease-in-out infinite alternate-reverse;
}
.scn-recollections-of-love-intro .flowerbed-rli {
  position: absolute; bottom: 5%; left: 20%; right: 10%; height: 15%;
  background:
    radial-gradient(circle at 30% 50%, #f0b060 4px, transparent 6px),
    radial-gradient(circle at 50% 70%, #e05040 3px, transparent 5px),
    radial-gradient(circle at 70% 30%, #f8d080 5px, transparent 7px),
    linear-gradient(180deg, #6a8a3a 0%, #4a6a2a 100%);
  border-radius: 30% 30% 0 0;
  animation: rli-flowers 6s ease-in-out infinite alternate;
}
.scn-recollections-of-love-intro .figure-rli {
  position: absolute; bottom: 12%; left: 40%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: rli-figure 5s ease-in-out infinite;
}
.scn-recollections-of-love-intro .butterfly-rli {
  position: absolute; top: 35%; left: 30%; width: 10px; height: 8px;
  background: radial-gradient(circle at 30% 50%, #f8a070 3px, transparent 4px),
              radial-gradient(circle at 70% 50%, #f8a070 3px, transparent 4px);
  border-radius: 50%;
  animation: rli-butterfly 7s linear infinite;
}
@keyframes rli-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rli-sun { 0% { transform:scale(0.9); opacity:0.8 } 50% { transform:scale(1.1); opacity:1 } 100% { transform:scale(0.95); opacity:0.85 } }
@keyframes rli-hills { 0% { transform:translateY(0) } 50% { transform:translateY(-4px) } 100% { transform:translateY(0) } }
@keyframes rli-tree-sway { 0% { transform:rotate(-2deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-1deg) } }
@keyframes rli-flowers { 0% { background-size: 100% 100%; background-position:0 0; } 50% { background-size: 120% 120%; background-position:-5% -5%; } 100% { background-size: 100% 100%; background-position:0 0; } }
@keyframes rli-figure { 0% { transform:rotate(-10deg) translateY(0); } 50% { transform:rotate(-8deg) translateY(-3px); } 100% { transform:rotate(-10deg) translateY(0); } }
@keyframes rli-butterfly { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 25% { transform:translateX(30px) translateY(-15px) rotate(30deg); } 50% { transform:translateX(60px) translateY(0) rotate(0deg); } 75% { transform:translateX(90px) translateY(-10px) rotate(-20deg); } 100% { transform:translateX(120px) translateY(0) rotate(0deg); } }

/* recollections-of-love-body – warm seaward hills with two figures */

.scn-recollections-of-love-body {
  background:
    linear-gradient(180deg, #9fc8e8 0%, #fce4b0 40%, #d4a750 70%, #7c5c2a 100%),
    radial-gradient(ellipse at 50% 100%, #b58a3a 0%, transparent 70%);
}
.scn-recollections-of-love-body .sky-rlb {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7ab4d8 0%, #fde8c8 100%);
  animation: rlb-sky 10s ease-in-out infinite alternate;
}
.scn-recollections-of-love-body .sea-rlb {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  filter: blur(2px);
  animation: rlb-sea 15s ease-in-out infinite alternate;
}
.scn-recollections-of-love-body .hill-rlb {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a8a4a 0%, #3a5a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.3);
  animation: rlb-hill 20s ease-in-out infinite alternate;
}
.scn-recollections-of-love-body .figure1-rlb {
  position: absolute; bottom: 30%; left: 35%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rlb-figure1 5s ease-in-out infinite;
}
.scn-recollections-of-love-body .figure2-rlb {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  opacity: 0.6;
  animation: rlb-figure2 8s ease-in-out infinite alternate;
}
.scn-recollections-of-love-body .flowers-rlb {
  position: absolute; bottom: 8%; left: 15%; right: 15%; height: 12%;
  background: repeating-radial-gradient(circle at 20% 50%, #f0b060 2px, transparent 5px),
              repeating-radial-gradient(circle at 60% 70%, #e08060 3px, transparent 6px),
              repeating-radial-gradient(circle at 80% 40%, #f0c080 2px, transparent 5px),
              linear-gradient(180deg, #5a7a2a 0%, #3a5a1a 100%);
  animation: rlb-flowers 7s ease-in-out infinite alternate;
}
.scn-recollections-of-love-body .grass-rlb {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #4a6a2a 0%, #2a4a1a 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  animation: rlb-grass 4s ease-in-out infinite alternate;
}
.scn-recollections-of-love-body .cloud-rlb {
  position: absolute; top: 12%; right: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,240,0.6) 0%, rgba(255,255,240,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: rlb-cloud 40s linear infinite;
}
@keyframes rlb-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes rlb-sea { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-2px) scaleY(1.1) } 100% { transform:translateY(0) scaleY(1) } }
@keyframes rlb-hill { 0% { transform:translateY(0) } 50% { transform:translateY(-5px) } 100% { transform:translateY(0) } }
@keyframes rlb-figure1 { 0% { transform:rotate(-3deg) } 25% { transform:rotate(2deg) translateX(3px) } 50% { transform:rotate(-1deg) } 75% { transform:rotate(1deg) translateX(-2px) } 100% { transform:rotate(-3deg) } }
@keyframes rlb-figure2 { 0% { transform:rotate(5deg) scale(0.95); opacity:0.5 } 50% { transform:rotate(0deg) scale(1); opacity:0.7 } 100% { transform:rotate(-5deg) scale(0.95); opacity:0.5 } }
@keyframes rlb-flowers { 0% { background-size: 100% 100%; background-position:0 0; } 50% { background-size: 130% 130%; background-position:-10% -5%; } 100% { background-size: 100% 100%; background-position:0 0; } }
@keyframes rlb-grass { 0% { transform:skewX(-2deg) } 50% { transform:skewX(2deg) } 100% { transform:skewX(-1deg) } }
@keyframes rlb-cloud { 0% { transform:translateX(0) } 100% { transform:translateX(-150vw) } }

/* to-two-sisters-intro – calm dim interior with two sisters and a dove */

.scn-to-two-sisters-intro {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #4a3a4a 30%, #5a4a5a 60%, #3a2a3a 100%),
    radial-gradient(circle at 50% 100%, #6a5a6a 0%, transparent 70%);
}
.scn-to-two-sisters-intro .wall-bg-tsi {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a3a4a 0%, #3a2a3a 50%, #5a4a5a 100%);
  animation: tsi-wall 20s ease-in-out infinite alternate;
}
.scn-to-two-sisters-intro .window-tsi {
  position: absolute; top: 20%; left: 50%; transform:translateX(-50%); width: 60px; height: 80px;
  background: linear-gradient(180deg, #8aa8c0 0%, #607080 100%);
  border-radius: 4px 4px 12px 12px;
  box-shadow: inset 0 0 20px #b0c8e0, 0 0 30px rgba(176,200,224,0.3);
  animation: tsi-window 8s ease-in-out infinite alternate;
}
.scn-to-two-sisters-intro .sister1-tsi {
  position: absolute; bottom: 15%; left: 25%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #6a5a6a 0%, #4a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: tsi-sister1 6s ease-in-out infinite alternate;
}
.scn-to-two-sisters-intro .sister2-tsi {
  position: absolute; bottom: 15%; left: 45%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #7a6a7a 0%, #5a4a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tsi-sister2 7s ease-in-out infinite alternate;
}
.scn-to-two-sisters-intro .dove-tsi {
  position: absolute; top: 35%; left: 30%; width: 16px; height: 12px;
  background: radial-gradient(circle at 30% 50%, #d0c8d0 5px, transparent 6px),
              radial-gradient(circle at 70% 50%, #c0b8c0 4px, transparent 5px);
  border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%;
  animation: tsi-dove 9s ease-in-out infinite;
}
.scn-to-two-sisters-intro .table-tsi {
  position: absolute; bottom: 8%; left: 35%; right: 35%; height: 6px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  animation: tsi-table 4s ease-in-out infinite alternate;
}
.scn-to-two-sisters-intro .candle-tsi {
  position: absolute; bottom: 14%; left: 48%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #f0d8a0 0%, #c0a070 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 12px 4px rgba(240,216,160,0.5);
  animation: tsi-candle 7s ease-in-out infinite alternate;
}
@keyframes tsi-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes tsi-window { 0% { box-shadow:inset 0 0 20px #b0c8e0, 0 0 30px rgba(176,200,224,0.3); } 50% { box-shadow:inset 0 0 30px #c8d8f0, 0 0 50px rgba(200,216,240,0.5); } 100% { box-shadow:inset 0 0 20px #b0c8e0, 0 0 30px rgba(176,200,224,0.3); } }
@keyframes tsi-sister1 { 0% { transform: scaleX(-1) rotate(0deg); } 50% { transform: scaleX(-1) rotate(3deg) translateX(2px); } 100% { transform: scaleX(-1) rotate(0deg); } }
@keyframes tsi-sister2 { 0% { transform: rotate(0deg); } 50% { transform: rotate(-2deg) translateX(-2px); } 100% { transform: rotate(0deg); } }
@keyframes tsi-dove { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(10px,-8px) rotate(5deg); } 50% { transform: translate(20px,-2px) rotate(-3deg); } 75% { transform: translate(30px,-10px) rotate(4deg); } 100% { transform: translate(40px,0) rotate(0deg); } }
@keyframes tsi-table { 0% { transform:scaleY(1); } 50% { transform:scaleY(0.9); } 100% { transform:scaleY(1); } }
@keyframes tsi-candle { 0% { opacity:0.7; box-shadow:0 0 12px 4px rgba(240,216,160,0.5); } 50% { opacity:1; box-shadow:0 0 20px 8px rgba(240,216,160,0.7); } 100% { opacity:0.8; box-shadow:0 0 14px 5px rgba(240,216,160,0.5); } }

/* to-two-sisters-body – warm dim interior with two sisters and stranger */

.scn-to-two-sisters-body {
  background:
    linear-gradient(180deg, #5a4a3a 0%, #7a5a4a 25%, #6a4a3a 60%, #3a2a1a 100%),
    radial-gradient(circle at 50% 100%, #8a6a5a 0%, transparent 80%);
}
.scn-to-two-sisters-body .wall-bg-tsb {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 50%, #7a5a4a 100%);
  animation: tsb-wall 15s ease-in-out infinite alternate;
}
.scn-to-two-sisters-body .floor-tsb {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 0 0 10% 10% / 0 0 30% 30%;
}
.scn-to-two-sisters-body .fireplace-tsb {
  position: absolute; bottom: 30%; left: 50%; transform:translateX(-50%); width: 70px; height: 60px;
  background: linear-gradient(180deg, #8a5a3a 0%, #5a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: inset 0 0 30px #c08040, 0 0 40px rgba(192,128,64,0.4);
  animation: tsb-fire 6s ease-in-out infinite alternate;
}
.scn-to-two-sisters-body .table-tsb {
  position: absolute; bottom: 12%; left: 30%; right: 30%; height: 5px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 3px;
  animation: tsb-table 5s ease-in-out infinite alternate;
}
.scn-to-two-sisters-body .sister1-tsb {
  position: absolute; bottom: 10%; left: 27%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #8a6a5a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tsb-sister1 6s ease-in-out infinite alternate;
}
.scn-to-two-sisters-body .sister2-tsb {
  position: absolute; bottom: 10%; left: 45%; width: 18px; height: 43px;
  background: linear-gradient(180deg, #7a5a4a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tsb-sister2 7s ease-in-out infinite alternate;
}
.scn-to-two-sisters-body .stranger-tsb {
  position: absolute; bottom: 10%; left: 65%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  opacity: 0.8;
  animation: tsb-stranger 10s ease-in-out infinite;
}
.scn-to-two-sisters-body .candle-tsb {
  position: absolute; bottom: 17%; left: 38%; width: 3px; height: 14px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c0a070 100%);
  border-radius: 1px 1px 3px 3px;
  box-shadow: 0 0 15px 6px rgba(240,208,160,0.6);
  animation: tsb-candle 3s ease-in-out infinite alternate;
}
.scn-to-two-sisters-body .glow-tsb {
  position: absolute; bottom: 0; left: 0; right: 0; height: 80%;
  background: radial-gradient(ellipse at 50% 100%, rgba(240,208,160,0.2) 0%, transparent 60%);
  pointer-events: none;
  animation: tsb-glow 8s ease-in-out infinite alternate;
}
@keyframes tsb-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes tsb-fire { 0% { box-shadow:inset 0 0 30px #c08040, 0 0 40px rgba(192,128,64,0.4); transform:scaleY(1); } 50% { box-shadow:inset 0 0 45px #d09050, 0 0 60px rgba(208,144,80,0.6); transform:scaleY(1.05); } 100% { box-shadow:inset 0 0 30px #c08040, 0 0 40px rgba(192,128,64,0.4); transform:scaleY(1); } }
@keyframes tsb-table { 0% { transform:scaleY(1); } 50% { transform:scaleY(0.9); } 100% { transform:scaleY(1); } }
@keyframes tsb-sister1 { 0% { transform:rotate(0deg); } 50% { transform:rotate(3deg) translateX(1px); } 100% { transform:rotate(0deg); } }
@keyframes tsb-sister2 { 0% { transform:rotate(0deg); } 50% { transform:rotate(-2deg) translateX(-1px); } 100% { transform:rotate(0deg); } }
@keyframes tsb-stranger { 0% { transform:scaleX(-1) translateX(0); opacity:0.6; } 25% { transform:scaleX(-1) translateX(-5px); opacity:0.8; } 50% { transform:scaleX(-1) translateX(-10px); opacity:1; } 75% { transform:scaleX(-1) translateX(-5px); opacity:0.8; } 100% { transform:scaleX(-1) translateX(0); opacity:0.6; } }
@keyframes tsb-candle { 0% { opacity:0.7; box-shadow:0 0 15px 6px rgba(240,208,160,0.6); } 50% { opacity:1; box-shadow:0 0 25px 12px rgba(240,208,160,0.8); } 100% { opacity:0.8; box-shadow:0 0 18px 8px rgba(240,208,160,0.6); } }
@keyframes tsb-glow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }

/* Scene: constancy-ideal-object (calm, dusk) */

.scn-constancy-ideal-object {
  background:
    linear-gradient(180deg, #2d2450 0%, #584270 30%, #9a6f5a 60%, #d9a066 85%, #f0c990 100%),
    radial-gradient(ellipse at 50% 100%, #9a6f5a 0%, transparent 70%);
}
.scn-constancy-ideal-object .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, rgba(255,210,140,0.3) 0%, transparent 100%);
  animation: cdo-sky 14s ease-in-out infinite alternate;
}
.scn-constancy-ideal-object .glade-bg {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a4d2a 0%, #1e3010 100%);
  border-radius: 60% 40% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-constancy-ideal-object .tree {
  position: absolute; bottom: 30%; width: 30px; height: 120px;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2410 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
}
.scn-constancy-ideal-object .tree-l { left: 18%; transform: scaleX(0.8); animation: cdo-tree-sway 9s ease-in-out infinite; }
.scn-constancy-ideal-object .tree-r { right: 15%; transform: scaleX(1.1); animation: cdo-tree-sway 11s ease-in-out infinite reverse; }
.scn-constancy-ideal-object .figure {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #1c1c30 0%, #0a0a18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cdo-figure 5s ease-in-out infinite;
}
.scn-constancy-ideal-object .glow-orb {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%) translateY(-30px);
  width: 20px; height: 20px;
  background: radial-gradient(circle, #ffebaa 0%, #daa055 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #daa055, 0 0 60px 20px rgba(218,160,85,0.4);
  animation: cdo-orb-pulse 4s ease-in-out infinite alternate;
}
.scn-constancy-ideal-object .bird {
  position: absolute; top: 15%; right: 25%;
  width: 20px; height: 12px;
  background: radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, transparent 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-15deg);
  animation: cdo-bird 8s ease-in-out infinite;
}
@keyframes cdo-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes cdo-tree-sway { 0% { transform: rotate(0deg) scaleX(0.8); } 50% { transform: rotate(2deg) scaleX(0.8); } 100% { transform: rotate(-2deg) scaleX(0.8); } }
@keyframes cdo-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-4px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-3px) rotate(0deg); } 100% { transform: translateX(-50%) translateY(0) rotate(1deg); } }
@keyframes cdo-orb-pulse { 0% { transform: translateX(-50%) translateY(-30px) scale(0.9); opacity: 0.8; box-shadow: 0 0 20px 6px #daa055; } 50% { transform: translateX(-50%) translateY(-30px) scale(1.1); opacity: 1; box-shadow: 0 0 40px 15px #ffebaa, 0 0 70px 25px rgba(218,160,85,0.5); } 100% { transform: translateX(-50%) translateY(-30px) scale(0.95); opacity: 0.85; box-shadow: 0 0 25px 8px #daa055; } }
@keyframes cdo-bird { 0% { transform: rotate(-15deg) translateX(0); } 25% { transform: rotate(-10deg) translateX(15px) translateY(-5px); } 50% { transform: rotate(-20deg) translateX(30px) translateY(2px); } 75% { transform: rotate(-12deg) translateX(45px) translateY(-3px); } 100% { transform: rotate(-15deg) translateX(60px); } }

/* Scene: constancy-ideal-object-home (calm, dusk) */

.scn-constancy-ideal-object-home {
  background:
    linear-gradient(180deg, #3a2e50 0%, #5a4870 25%, #b08060 55%, #d9b07a 80%, #f5d8a0 100%),
    radial-gradient(ellipse at 80% 100%, #b08060 0%, transparent 60%);
}
.scn-constancy-ideal-object-home .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, rgba(255,200,130,0.4) 0%, transparent 100%);
  animation: cdh-sky 16s ease-in-out infinite alternate;
}
.scn-constancy-ideal-object-home .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a5530 0%, #1e2f15 100%);
  border-radius: 50% 70% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.4);
  animation: cdh-hills 20s ease-in-out infinite alternate;
}
.scn-constancy-ideal-object-home .cottage {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 75px;
  background: linear-gradient(180deg, #6a5540 0%, #3a2a1a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: cdh-cottage 8s ease-in-out infinite;
}
.scn-constancy-ideal-object-home .window-glow {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%);
  width: 22px; height: 28px;
  background: radial-gradient(circle, #ffe080 0%, #d09040 70%);
  border-radius: 5px;
  box-shadow: 0 0 30px 8px #d09040, 0 0 50px 15px rgba(208,144,64,0.4);
  animation: cdh-window 3s ease-in-out infinite alternate;
}
.scn-constancy-ideal-object-home .tree-home {
  position: absolute; bottom: 30%; left: 22%;
  width: 25px; height: 100px;
  background: linear-gradient(180deg, #2a3d1a 0%, #15200e 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  animation: cdh-tree 10s ease-in-out infinite;
}
.scn-constancy-ideal-object-home .thrush {
  position: absolute; top: 28%; left: 30%;
  width: 18px; height: 10px;
  background: #3a4a2a;
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-10deg);
  animation: cdh-bird-a 6s ease-in-out infinite;
}
.scn-constancy-ideal-object-home .lark {
  position: absolute; top: 20%; right: 20%;
  width: 16px; height: 8px;
  background: #4a5a3a;
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(5deg);
  animation: cdh-bird-b 8s ease-in-out infinite reverse;
}
@keyframes cdh-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes cdh-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes cdh-cottage { 0%,100% { transform: translateX(-50%); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes cdh-window { 0% { box-shadow: 0 0 22px 6px #d09040; opacity: 0.85; } 50% { box-shadow: 0 0 40px 14px #ffe080, 0 0 70px 24px rgba(255,224,128,0.5); opacity: 1; } 100% { box-shadow: 0 0 28px 8px #d09040; opacity: 0.9; } }
@keyframes cdh-tree { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes cdh-bird-a { 0% { transform: rotate(-10deg) translateX(0) translateY(0); } 25% { transform: rotate(-5deg) translateX(12px) translateY(-5px); } 50% { transform: rotate(-15deg) translateX(24px) translateY(2px); } 75% { transform: rotate(-8deg) translateX(36px) translateY(-3px); } 100% { transform: rotate(-10deg) translateX(48px); } }
@keyframes cdh-bird-b { 0% { transform: rotate(5deg) translateX(0) translateY(0); } 25% { transform: rotate(10deg) translateX(-10px) translateY(-6px); } 50% { transform: rotate(0deg) translateX(-20px) translateY(2px); } 75% { transform: rotate(8deg) translateX(-30px) translateY(-4px); } 100% { transform: rotate(5deg) translateX(-40px); } }

/* Scene: pang-more-sharp-intro (dark, dim-interior) */

.scn-pang-more-sharp-intro {
  background:
    linear-gradient(180deg, #191c2a 0%, #2a2e40 50%, #1e222e 100%),
    radial-gradient(ellipse at 50% 30%, #3a4055 0%, transparent 60%);
}
.scn-pang-more-sharp-intro .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a2e40 0%, #1a1e2a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
}
.scn-pang-more-sharp-intro .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a22 0%, #0e0e14 100%);
}
.scn-pang-more-sharp-intro .window-dim {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #3a4055 0%, #2a2e40 100%);
  border: 3px solid #2a2e40;
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-pang-more-sharp-intro .lamp {
  position: absolute; bottom: 35%; left: 30%;
  width: 14px; height: 20px;
  background: radial-gradient(circle, #e0a050 0%, #805020 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 0 25px 8px #a06030, 0 0 50px 18px rgba(160,96,48,0.4);
  animation: pms-lamp 3s ease-in-out infinite alternate;
}
.scn-pang-more-sharp-intro .figure-mother {
  position: absolute; bottom: 22%; left: 40%;
  width: 22px; height: 70px;
  background: linear-gradient(180deg, #202434 0%, #0e111a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pms-figure 5s ease-in-out infinite;
}
.scn-pang-more-sharp-intro .child {
  position: absolute; bottom: 25%; left: 44%;
  width: 14px; height: 32px;
  background: linear-gradient(180deg, #2a2e40 0%, #141822 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.6);
  animation: pms-child 7s ease-in-out infinite;
}
.scn-pang-more-sharp-intro .curtain {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 60%;
  background: linear-gradient(180deg, rgba(30,35,50,0.7) 0%, transparent 60%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
  filter: blur(4px);
}
@keyframes pms-lamp { 0% { box-shadow: 0 0 20px 5px #805020; opacity: 0.8; } 50% { box-shadow: 0 0 35px 14px #e0a050, 0 0 60px 22px rgba(224,160,80,0.3); opacity: 1; } 100% { box-shadow: 0 0 22px 8px #805020; opacity: 0.85; } }
@keyframes pms-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(2px) translateY(-3px) rotate(1deg); } 50% { transform: translateX(-1px) translateY(-1px) rotate(0deg); } 75% { transform: translateX(3px) translateY(-4px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes pms-child { 0% { transform: scale(0.6) translateY(0); } 50% { transform: scale(0.6) translateY(-5px); } 100% { transform: scale(0.6) translateY(0); } }

/* Scene: pang-more-sharp-flitted (dark, dim-interior) */

.scn-pang-more-sharp-flitted {
  background:
    linear-gradient(180deg, #1a1d2a 0%, #282d40 40%, #1e2230 100%),
    radial-gradient(ellipse at 70% 30%, #3a4055 0%, transparent 50%);
}
.scn-pang-more-sharp-flitted .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #282d40 0%, #141822 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.5);
}
.scn-pang-more-sharp-flitted .window-night {
  position: absolute; top: 12%; right: 15%;
  width: 50px; height: 70px;
  background: linear-gradient(180deg, #3a4055 0%, #2a2e40 100%);
  border: 2px solid #2a2e40;
  border-radius: 3px;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.4);
}
.scn-pang-more-sharp-flitted .figure-esteem {
  position: absolute; bottom: 18%; left: 35%;
  width: 24px; height: 65px;
  background: linear-gradient(180deg, #202434 0%, #0e111a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.95);
  animation: pmf-esteem 7s ease-in-out infinite;
}
.scn-pang-more-sharp-flitted .figure-kindness {
  position: absolute; bottom: 20%; left: 50%;
  width: 20px; height: 55px;
  background: linear-gradient(180deg, #2a2e40 0%, #141822 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.85);
  animation: pmf-kindness 9s ease-in-out infinite reverse;
}
.scn-pang-more-sharp-flitted .blossom-petal {
  position: absolute; top: 30%; left: 60%;
  width: 10px; height: 6px;
  background: #b87878;
  border-radius: 50% 50% 0 50%;
  transform: rotate(30deg);
  animation: pmf-petal 12s linear infinite;
}
.scn-pang-more-sharp-flitted .shadow-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
}
@keyframes pmf-esteem { 0% { transform: scale(0.95) translateX(0) translateY(0) rotate(0deg); } 25% { transform: scale(0.95) translateX(3px) translateY(-2px) rotate(1deg); } 50% { transform: scale(0.95) translateX(-2px) translateY(-1px) rotate(-1deg); } 75% { transform: scale(0.95) translateX(4px) translateY(-3px) rotate(0deg); } 100% { transform: scale(0.95) translateX(0) translateY(0) rotate(1deg); } }
@keyframes pmf-kindness { 0% { transform: scale(0.85) translateX(0) translateY(0) rotate(0deg); } 25% { transform: scale(0.85) translateX(-2px) translateY(-3px) rotate(-1deg); } 50% { transform: scale(0.85) translateX(1px) translateY(-1px) rotate(1deg); } 75% { transform: scale(0.85) translateX(-3px) translateY(-2px) rotate(0deg); } 100% { transform: scale(0.85) translateX(0) translateY(0) rotate(-1deg); } }
@keyframes pmf-petal { 0% { transform: rotate(30deg) translateX(0) translateY(0) scale(1); opacity: 0.8; } 25% { transform: rotate(45deg) translateX(20px) translateY(-15px) scale(0.9); opacity: 0.6; } 50% { transform: rotate(60deg) translateX(40px) translateY(-30px) scale(0.8); opacity: 0.4; } 75% { transform: rotate(75deg) translateX(60px) translateY(-45px) scale(0.7); opacity: 0.2; } 100% { transform: rotate(90deg) translateX(80px) translateY(-60px) scale(0.5); opacity: 0; } }

.scn-wild-goat-admires {
  background: 
    linear-gradient(180deg, #b8d4e8 0%, #f4e4b0 40%, #f0c878 70%, #e8b050 100%),
    radial-gradient(ellipse at 60% 20%, #fff8e0 0%, transparent 60%);
}
.scn-wild-goat-admires .sky-grad {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6ab0d0 0%, #b0d8f0 60%, transparent 100%);
  animation: wga-sky 20s ease-in-out infinite alternate;
}
.scn-wild-goat-admires .sun-blaze {
  position: absolute; top: 8%; left: 60%; width: 70px; height: 70px;
  background: radial-gradient(circle, #fff8d0 0%, #ffd070 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,200,80,0.4);
  animation: wga-sun 6s ease-in-out infinite alternate;
}
.scn-wild-goat-admires .cliff-back {
  position: absolute; bottom: 20%; left: 10%; right: 20%; height: 35%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 30% 40% 0 0 / 60% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  transform: scale(0.95);
}
.scn-wild-goat-admires .cliff-fore {
  position: absolute; bottom: 10%; left: 0; right: 30%; height: 30%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 20% 30% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.4);
}
.scn-wild-goat-admires .goat {
  position: absolute; bottom: 28%; left: 38%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: wga-body 4s ease-in-out infinite alternate;
}
.scn-wild-goat-admires .goat-head {
  position: absolute; bottom: 60%; left: 36%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #7a6a4a 0%, #4a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wga-head 3s ease-in-out infinite alternate;
}
.scn-wild-goat-admires .rocks {
  position: absolute; bottom: 8%; left: 20%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 20% 30% / 80% 60% 20% 30%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
  animation: wga-rocks 12s ease-in-out infinite;
}
.scn-wild-goat-admires .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #8a9a5a 0%, #5a6a2a 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  animation: wga-grass 8s ease-in-out infinite alternate;
}
.scn-wild-goat-admires .mist {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(200,220,240,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: wga-mist 25s linear infinite alternate;
}
@keyframes wga-sky {
  0% { opacity: 0.7; }
  100% { opacity: 1; }
}
@keyframes wga-sun {
  0% { transform: scale(0.95); box-shadow: 0 0 60px 20px rgba(255,200,80,0.3); }
  50% { transform: scale(1.05); box-shadow: 0 0 100px 40px rgba(255,200,80,0.6); }
  100% { transform: scale(0.98); box-shadow: 0 0 70px 25px rgba(255,200,80,0.4); }
}
@keyframes wga-body {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes wga-head {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes wga-rocks {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes wga-grass {
  0% { transform: scaleY(1); opacity: 0.9; }
  100% { transform: scaleY(1.02); opacity: 1; }
}
@keyframes wga-mist {
  0% { transform: translateX(-10%); opacity: 0.3; }
  50% { transform: translateX(10%); opacity: 0.5; }
  100% { transform: translateX(-5%); opacity: 0.3; }
}

.scn-cataract-improved-from-stolberg {
  background: 
    linear-gradient(180deg, #3a4a5a 0%, #5a7a8a 40%, #7a9aaa 100%),
    radial-gradient(ellipse at 50% 80%, #8ab0c0 0%, transparent 60%);
}
.scn-cataract-improved-from-stolberg .cave-back {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
  animation: cib-cave 30s ease-in-out infinite alternate;
}
.scn-cataract-improved-from-stolberg .cave-mid {
  position: absolute; top: 10%; left: 10%; right: 10%; bottom: 30%;
  background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 100%);
  border-radius: 30% 40% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  transform: scale(0.95);
}
.scn-cataract-improved-from-stolberg .waterfall {
  position: absolute; top: 0; left: 38%; width: 24%; bottom: 40%;
  background: linear-gradient(180deg, #c0e0f0 0%, #90c0d0 50%, #6090a0 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2), 0 8px 20px rgba(150,200,220,0.5);
  animation: cib-fall 4s ease-in-out infinite alternate;
}
.scn-cataract-improved-from-stolberg .stream {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #a0c0d0 0%, #80a0b0 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.1);
  animation: cib-stream 5s ease-in-out infinite;
}
.scn-cataract-improved-from-stolberg .mist-cloud {
  position: absolute; top: 15%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(180deg, rgba(200,230,240,0.5) 0%, transparent 100%);
  filter: blur(12px);
  border-radius: 50%;
  animation: cib-mist 20s linear infinite alternate;
}
.scn-cataract-improved-from-stolberg .rock-left {
  position: absolute; bottom: 20%; left: 8%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #5a6a7a 0%, #2a3a4a 100%);
  border-radius: 30% 20% 40% 40% / 50% 30% 60% 60%;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.4);
  animation: cib-rock 10s ease-in-out infinite;
}
.scn-cataract-improved-from-stolberg .rock-right {
  position: absolute; bottom: 25%; right: 8%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #4a5a6a 0%, #1a2a3a 100%);
  border-radius: 20% 30% 50% 40% / 30% 50% 60% 40%;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.4);
  animation: cib-rock 12s ease-in-out infinite reverse;
}
.scn-cataract-improved-from-stolberg .light-beam {
  position: absolute; top: 0; left: 25%; width: 50%; height: 30%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%);
  animation: cib-beam 7s ease-in-out infinite alternate;
}
@keyframes cib-cave {
  0% { opacity: 0.8; }
  100% { opacity: 1; }
}
@keyframes cib-fall {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(3px) scaleY(1.02); }
  100% { transform: translateY(-2px) scaleY(0.98); }
}
@keyframes cib-stream {
  0% { transform: translateX(0); opacity: 0.8; }
  50% { transform: translateX(5px); opacity: 1; }
  100% { transform: translateX(-3px); opacity: 0.9; }
}
@keyframes cib-mist {
  0% { transform: translateX(-20px) scale(0.9); opacity: 0.3; }
  50% { transform: translateX(20px) scale(1.1); opacity: 0.6; }
  100% { transform: translateX(-10px) scale(0.95); opacity: 0.4; }
}
@keyframes cib-rock {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes cib-beam {
  0% { transform: rotate(-2deg); opacity: 0.3; }
  50% { transform: rotate(2deg); opacity: 0.6; }
  100% { transform: rotate(-1deg); opacity: 0.4; }
}

.scn-tells-birthplace-holy-chapel {
  background: 
    linear-gradient(180deg, #d4b080 0%, #b08a60 30%, #8a6030 60%, #6a4020 100%),
    radial-gradient(ellipse at 50% 30%, #f0d8a0 0%, transparent 70%);
}
.scn-tells-birthplace-holy-chapel .chapel-wall {
  position: absolute; inset: 0 20% 10% 20%;
  background: linear-gradient(180deg, #c0a080 0%, #9a7a5a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: tbh-wall 15s ease-in-out infinite alternate;
}
.scn-tells-birthplace-holy-chapel .chapel-floor {
  position: absolute; bottom: 0; left: 15%; right: 15%; height: 15%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
}
.scn-tells-birthplace-holy-chapel .altar {
  position: absolute; bottom: 20%; left: 40%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  transform-origin: bottom center;
  animation: tbh-altar 8s ease-in-out infinite;
}
.scn-tells-birthplace-holy-chapel .stained-glass {
  position: absolute; top: 12%; left: 35%; width: 120px; height: 80px;
  background: linear-gradient(135deg, #804030 0%, #603020 30%, #402020 60%, #201010 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 0 20px rgba(200,150,80,0.3), 0 0 40px rgba(200,150,80,0.2);
  animation: tbh-glass 5s ease-in-out infinite alternate;
}
.scn-tells-birthplace-holy-chapel .cradle {
  position: absolute; bottom: 22%; left: 30%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: tbh-cradle 3s ease-in-out infinite;
}
.scn-tells-birthplace-holy-chapel .mother-silhouette {
  position: absolute; bottom: 18%; left: 28%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tbh-mother 4s ease-in-out infinite alternate;
}
.scn-tells-birthplace-holy-chapel .light-ray {
  position: absolute; top: 0; left: 40%; width: 80px; height: 60%;
  background: linear-gradient(180deg, rgba(255,220,140,0.4) 0%, rgba(255,200,80,0.1) 100%);
  clip-path: polygon(30% 0, 70% 0, 55% 100%, 45% 100%);
  animation: tbh-ray 6s ease-in-out infinite alternate;
}
.scn-tells-birthplace-holy-chapel .flag {
  position: absolute; top: 5%; right: 25%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #8a3030 0%, #5a2020 100%);  /* desaturated red, not crimson */
  border-radius: 0 20% 20% 0 / 0 40% 40% 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: tbh-flag 2s ease-in-out infinite alternate;
}
@keyframes tbh-wall {
  0% { transform: scaleY(1); opacity: 0.9; }
  100% { transform: scaleY(1.01); opacity: 1; }
}
@keyframes tbh-altar {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes tbh-glass {
  0% { box-shadow: inset 0 0 10px rgba(200,150,80,0.2), 0 0 20px rgba(200,150,80,0.1); }
  50% { box-shadow: inset 0 0 30px rgba(200,150,80,0.5), 0 0 60px rgba(200,150,80,0.3); }
  100% { box-shadow: inset 0 0 15px rgba(200,150,80,0.3), 0 0 30px rgba(200,150,80,0.15); }
}
@keyframes tbh-cradle {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes tbh-mother {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes tbh-ray {
  0% { transform: translateX(0) scaleX(1); opacity: 0.3; }
  50% { transform: translateX(5px) scaleX(1.1); opacity: 0.6; }
  100% { transform: translateX(-3px) scaleX(0.95); opacity: 0.4; }
}
@keyframes tbh-flag {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}

.scn-god-gives-reverence-freedom {
  background: 
    linear-gradient(180deg, #a0c8e8 0%, #d0e8f0 30%, #f0e8c0 60%, #e0c070 100%),
    radial-gradient(ellipse at 60% 20%, #fff8e0 0%, transparent 60%);
}
.scn-god-gives-reverence-freedom .sky-bright {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #80b8d8 0%, #c0e0f0 60%, transparent 100%);
  animation: ggrf-sky 25s ease-in-out infinite alternate;
}
.scn-god-gives-reverence-freedom .sun-core {
  position: absolute; top: 5%; left: 55%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fffbe0 0%, #ffd080 30%, transparent 60%);
  border-radius: 50%;
  box-shadow: 0 0 100px 40px rgba(255,200,100,0.5);
  animation: ggrf-sun 7s ease-in-out infinite alternate;
}
.scn-god-gives-reverence-freedom .cliff-range {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%);
  border-radius: 40% 30% 0 0 / 70% 60% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.4);
  animation: ggrf-cliff 18s ease-in-out infinite alternate;
}
.scn-god-gives-reverence-freedom .torrent {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #b0d0e0 0%, #80a0b0 50%, #507080 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
  animation: ggrf-torrent 3s ease-in-out infinite alternate;
}
.scn-god-gives-reverence-freedom .boy-silhouette {
  position: absolute; bottom: 30%; left: 30%; width: 24px; height: 50px;
  background: #1a1a1a;
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ggrf-boy 4s ease-in-out infinite;
}
.scn-god-gives-reverence-freedom .hawk {
  position: absolute; top: 12%; left: 20%; width: 60px; height: 40px;
  background: #2a2a2a;
  clip-path: polygon(50% 0%, 80% 30%, 100% 20%, 80% 50%, 100% 80%, 80% 70%, 50% 100%, 20% 70%, 0% 80%, 20% 50%, 0% 20%, 20% 30%);
  animation: ggrf-hawk 6s ease-in-out infinite alternate;
}
.scn-god-gives-reverence-freedom .oar {
  position: absolute; bottom: 28%; left: 38%; width: 6px; height: 70px;
  background: #4a3a2a;
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform-origin: 50% 100%;
  animation: ggrf-oar 2s ease-in-out infinite alternate;
}
.scn-god-gives-reverence-freedom .chamois {
  position: absolute; bottom: 22%; left: 60%; width: 30px; height: 30px;
  background: #5a4a3a;
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: ggrf-chamois 5s ease-in-out infinite;
}
@keyframes ggrf-sky {
  0% { opacity: 0.7; }
  100% { opacity: 1; }
}
@keyframes ggrf-sun {
  0% { transform: scale(0.95); box-shadow: 0 0 80px 30px rgba(255,200,100,0.3); }
  50% { transform: scale(1.05); box-shadow: 0 0 120px 50px rgba(255,200,100,0.6); }
  100% { transform: scale(0.98); box-shadow: 0 0 90px 35px rgba(255,200,100,0.4); }
}
@keyframes ggrf-cliff {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes ggrf-torrent {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(3px) scaleY(1.03); }
  100% { transform: translateY(-2px) scaleY(0.97); }
}
@keyframes ggrf-boy {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(8px) rotate(-1deg); }
  75% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ggrf-hawk {
  0% { transform: translateX(0) rotate(-5deg); }
  50% { transform: translateX(15px) rotate(5deg); }
  100% { transform: translateX(5px) rotate(-2deg); }
}
@keyframes ggrf-oar {
  0% { transform: rotate(-20deg); }
  100% { transform: rotate(20deg); }
}
@keyframes ggrf-chamois {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}

/* variant-lines-love — calm, dim interior */

.scn-variant-lines-love {
  background:
    linear-gradient(180deg, #2a1f1a 0%, #3d2b22 30%, #1f1410 100%),
    radial-gradient(ellipse at 30% 80%, #4a3428 0%, transparent 60%);
}
.scn-variant-lines-love .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1f1a 0%, #3d2b22 50%, #1f1410 100%);
  animation: vl-bg 12s ease-in-out infinite alternate;
}
.scn-variant-lines-love .floor {
  position: absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #2c1f18 0%, #1a110e 100%);
  border-radius: 0 0 4% 4%;
}
.scn-variant-lines-love .window {
  position: absolute; top:10%; left:15%; width:30%; height:40%;
  background: radial-gradient(ellipse at center, #4a5a6a 0%, #1a222a 70%);
  border: 4px solid #3a2a1a; border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
  animation: vl-window 8s ease-in-out infinite alternate;
}
.scn-variant-lines-love .desk {
  position: absolute; bottom:18%; left:20%; width:60%; height:12%;
  background: linear-gradient(180deg, #4a3528 0%, #2a1a10 100%);
  border-radius: 3px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-variant-lines-love .lamp {
  position: absolute; bottom:30%; left:35%; width:10px; height:20px;
  background: linear-gradient(180deg, #b08040 0%, #8a6020 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 40px 15px #c08840, 0 0 80px 30px rgba(192,136,64,.4);
  animation: vl-lamp 3s ease-in-out infinite alternate;
}
.scn-variant-lines-love .book {
  position: absolute; bottom:16%; left:40%; width:25%; height:8%;
  background: linear-gradient(180deg, #5a4a30 0%, #3a2a1a 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4);
  transform: rotate(-3deg);
}
.scn-variant-lines-love .figure {
  position: absolute; bottom:6%; left:45%; width:12%; height:40%;
  background: linear-gradient(180deg, #2a1a14 0%, #0e0906 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vl-figure 6s ease-in-out infinite;
}
.scn-variant-lines-love .chair {
  position: absolute; bottom:0; left:42%; width:20%; height:30%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a100a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: vl-chair 10s ease-in-out infinite alternate;
}
@keyframes vl-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes vl-window { 0% { filter: brightness(.6) } 50% { filter: brightness(.9) } 100% { filter: brightness(.5) } }
@keyframes vl-lamp { 0% { box-shadow: 0 0 30px 10px #c08840, 0 0 60px 20px rgba(192,136,64,.3); opacity:.8 } 50% { box-shadow: 0 0 50px 20px #e0a050, 0 0 100px 40px rgba(224,160,80,.5); opacity:1 } 100% { box-shadow: 0 0 35px 12px #c08840, 0 0 70px 25px rgba(192,136,64,.35); opacity:.85 } }
@keyframes vl-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes vl-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

/* to-a-comic-author — funny, sunlit outdoor */

.scn-to-a-comic-author {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f0e68c 100%),
    radial-gradient(ellipse at 80% 20%, #fff4b0 0%, transparent 50%);
}
.scn-to-a-comic-author .sky {
  position: absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%);
  animation: ca-sky 15s ease-in-out infinite alternate;
}
.scn-to-a-comic-author .sun {
  position: absolute; top:8%; right:15%; width:60px; height:60px;
  background: radial-gradient(circle, #fff4b0 0%, #ffd700 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px #ffd700, 0 0 150px 60px rgba(255,215,0,.4);
  animation: ca-sun 4s ease-in-out infinite alternate;
}
.scn-to-a-comic-author .pond {
  position: absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #5b8c5a 0%, #3a5a3a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
}
.scn-to-a-comic-author .lilypad {
  position: absolute; bottom:20%; left:20%; width:40px; height:15px;
  background: radial-gradient(ellipse, #4a8a3a 0%, #2a5a1a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: ca-lilypad 6s ease-in-out infinite;
}
.scn-to-a-comic-author .frog-a {
  position: absolute; bottom:25%; left:22%; width:20px; height:18px;
  background: radial-gradient(ellipse at 30% 30%, #6a8a3a 0%, #3a5a1a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: ca-frog 0.8s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-to-a-comic-author .frog-b {
  position: absolute; bottom:22%; left:32%; width:16px; height:14px;
  background: radial-gradient(ellipse at 30% 30%, #7a9a4a 0%, #4a6a2a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: ca-frog 0.6s ease-in-out infinite alternate-reverse;
  transform-origin: bottom center;
}
.scn-to-a-comic-author .figure {
  position: absolute; bottom:10%; left:50%; width:20%; height:50%;
  background: linear-gradient(180deg, #c04040 0%, #802a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ca-figure 5s ease-in-out infinite;
}
.scn-to-a-comic-author .cloak {
  position: absolute; bottom:10%; left:46%; width:28%; height:40%;
  background: linear-gradient(180deg, #a03030 0%, #601818 100%);
  border-radius: 30% 50% 30% 50%;
  transform-origin: top center;
  animation: ca-cloak 3s ease-in-out infinite;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
}
.scn-to-a-comic-author .quill {
  position: absolute; bottom:30%; left:55%; width:4px; height:30px;
  background: linear-gradient(180deg, #f0f0f0 0%, #c0c0c0 100%);
  border-radius: 0 0 50% 50%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: ca-quill 2s ease-in-out infinite alternate;
}
@keyframes ca-sky { 0% { filter: brightness(1) } 50% { filter: brightness(1.1) } 100% { filter: brightness(0.9) } }
@keyframes ca-sun { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(0.95) } }
@keyframes ca-lilypad { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes ca-frog { 0% { transform: translateY(0) scaleY(1) } 100% { transform: translateY(-5px) scaleY(0.8) } }
@keyframes ca-figure { 0% { transform: translateX(-50%) rotate(-2deg) } 25% { transform: translateX(-48%) rotate(2deg) } 50% { transform: translateX(-50%) rotate(-2deg) } 75% { transform: translateX(-52%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes ca-cloak { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes ca-quill { 0% { transform: rotate(15deg) } 100% { transform: rotate(25deg) } }

/* editorial-comic-author — calm, dim interior with classical muse */

.scn-editorial-comic-author {
  background:
    linear-gradient(180deg, #1a1410 0%, #2c221a 40%, #0e0a08 100%),
    radial-gradient(ellipse at 70% 60%, #3a2a1a 0%, transparent 60%);
}
.scn-editorial-comic-author .bg {
  position: absolute; inset:0; background: linear-gradient(180deg, #1a1410 0%, #2c221a 50%, #0e0a08 100%);
  animation: ec-bg 14s ease-in-out infinite alternate;
}
.scn-editorial-comic-author .floor {
  position: absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #2a1e18 0%, #14100c 100%);
  border-radius: 0 0 5% 5%;
}
.scn-editorial-comic-author .desk {
  position: absolute; bottom:15%; left:25%; width:50%; height:10%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a100a 100%);
  border-radius: 4px; box-shadow: 0 3px 6px rgba(0,0,0,.5);
}
.scn-editorial-comic-author .lamp {
  position: absolute; bottom:25%; left:45%; width:12px; height:24px;
  background: linear-gradient(180deg, #b08040 0%, #7a5a2a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 50px 18px #b08040, 0 0 100px 35px rgba(176,128,64,.4);
  animation: ec-lamp 4s ease-in-out infinite alternate;
}
.scn-editorial-comic-author .bust {
  position: absolute; bottom:15%; left:15%; width:30px; height:50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform: rotate(5deg);
  animation: ec-bust 8s ease-in-out infinite alternate;
}
.scn-editorial-comic-author .figure {
  position: absolute; bottom:5%; left:50%; width:18%; height:45%;
  background: linear-gradient(180deg, #2a1a14 0%, #0e0906 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ec-figure 7s ease-in-out infinite;
}
.scn-editorial-comic-author .muse {
  position: absolute; bottom:25%; left:70%; width:15%; height:40%;
  background: linear-gradient(180deg, rgba(200,180,160,.3) 0%, rgba(200,180,160,.05) 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(8px);
  animation: ec-muse 10s ease-in-out infinite alternate;
}
.scn-editorial-comic-author .scroll {
  position: absolute; bottom:10%; left:35%; width:30%; height:6%;
  background: linear-gradient(180deg, #5a4a30 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(-2deg);
  animation: ec-scroll 5s ease-in-out infinite alternate;
}
@keyframes ec-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes ec-lamp { 0% { box-shadow: 0 0 40px 15px #b08040, 0 0 80px 25px rgba(176,128,64,.3); opacity:.8 } 50% { box-shadow: 0 0 60px 25px #c09050, 0 0 120px 50px rgba(192,144,80,.5); opacity:1 } 100% { box-shadow: 0 0 45px 18px #b08040, 0 0 90px 30px rgba(176,128,64,.35); opacity:.85 } }
@keyframes ec-bust { 0% { transform: rotate(5deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(5deg) } }
@keyframes ec-figure { 0% { transform: translateX(-50%) rotate(-1deg) } 33% { transform: translateX(-48%) rotate(1deg) } 66% { transform: translateX(-52%) rotate(-1deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes ec-muse { 0% { opacity:.3; transform: translateY(0) } 50% { opacity:.6; transform: translateY(-8px) } 100% { opacity:.3; transform: translateY(0) } }
@keyframes ec-scroll { 0% { transform: rotate(-2deg) scaleY(1) } 50% { transform: rotate(0deg) scaleY(0.95) } 100% { transform: rotate(-2deg) scaleY(1) } }

/* first-draft-comic — calm, dim writer's den */

.scn-first-draft-comic {
  background:
    linear-gradient(180deg, #1c1612 0%, #2e221c 35%, #100c0a 100%),
    radial-gradient(ellipse at 60% 90%, #3a2a1e 0%, transparent 50%);
}
.scn-first-draft-comic .bg {
  position: absolute; inset:0; background: linear-gradient(180deg, #1c1612 0%, #2e221c 50%, #100c0a 100%);
  animation: fd-bg 12s ease-in-out infinite alternate;
}
.scn-first-draft-comic .floor {
  position: absolute; bottom:0; left:0; right:0; height:22%;
  background: linear-gradient(180deg, #2a1e18 0%, #140e0a 100%);
  border-radius: 0 0 4% 4%;
}
.scn-first-draft-comic .desk {
  position: absolute; bottom:16%; left:20%; width:60%; height:14%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a100a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-first-draft-comic .inkwell {
  position: absolute; bottom:22%; left:28%; width:14px; height:16px;
  background: radial-gradient(circle at 30% 30%, #4a3a2a 0%, #1a100a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: fd-inkwell 4s ease-in-out infinite alternate;
}
.scn-first-draft-comic .paper {
  position: absolute; bottom:14%; left:35%; width:30%; height:8%;
  background: linear-gradient(180deg, #5a4a38 0%, #3a2a1a 100%);
  border-radius: 2px; transform: rotate(-1deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: fd-paper 6s ease-in-out infinite;
}
.scn-first-draft-comic .mask {
  position: absolute; bottom:20%; left:55%; width:16px; height:20px;
  background: linear-gradient(180deg, #b0a080 0%, #706050 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  transform: rotate(10deg);
  animation: fd-mask 3s ease-in-out infinite alternate;
}
.scn-first-draft-comic .lantern {
  position: absolute; bottom:30%; left:40%; width:10px; height:18px;
  background: linear-gradient(180deg, #c08840 0%, #8a6020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 40px 12px #c08840, 0 0 80px 30px rgba(192,136,64,.35);
  animation: fd-lantern 3.5s ease-in-out infinite alternate;
}
.scn-first-draft-comic .figure {
  position: absolute; bottom:4%; left:45%; width:14%; height:45%;
  background: linear-gradient(180deg, #2a1a14 0%, #0e0906 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: fd-figure 5s ease-in-out infinite;
}
@keyframes fd-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes fd-inkwell { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fd-paper { 0% { transform: rotate(-1deg) translateX(0) } 50% { transform: rotate(2deg) translateX(2px) } 100% { transform: rotate(-1deg) translateX(0) } }
@keyframes fd-mask { 0% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(15deg) scale(1.05) } 100% { transform: rotate(10deg) scale(1) } }
@keyframes fd-lantern { 0% { box-shadow: 0 0 30px 10px #c08840, 0 0 60px 20px rgba(192,136,64,.3); opacity:.8 } 50% { box-shadow: 0 0 50px 18px #e0a050, 0 0 100px 40px rgba(224,160,80,.5); opacity:1 } 100% { box-shadow: 0 0 35px 12px #c08840, 0 0 70px 25px rgba(192,136,64,.35); opacity:.85 } }
@keyframes fd-figure { 0% { transform: translateX(-50%) rotate(-1deg) } 25% { transform: translateX(-48%) rotate(1deg) } 50% { transform: translateX(-50%) rotate(-1deg) } 75% { transform: translateX(-52%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0) } }

/* variant-loves-apparition */

.scn-variant-loves-apparition {
  background: linear-gradient(135deg, #1a1833 0%, #2a1f3a 40%, #1f1a30 100%), radial-gradient(ellipse at 60% 30%, #3a2a55 0%, transparent 60%);
}
.scn-variant-loves-apparition .wall-left {
  position:absolute; left:0; top:0; width:35%; height:100%;
  background: linear-gradient(180deg, #2c2340 0%, #1e1830 100%);
  animation: vla-wall 10s ease-in-out infinite alternate;
}
.scn-variant-loves-apparition .wall-right {
  position:absolute; right:0; top:0; width:35%; height:100%;
  background: linear-gradient(180deg, #2c2340 0%, #1e1830 100%);
  animation: vla-wall 10s ease-in-out infinite alternate-reverse;
}
@keyframes vla-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }

.scn-variant-loves-apparition .window {
  position:absolute; left:50%; top:10%; width:40%; height:60%;
  transform:translateX(-50%);
  background: radial-gradient(ellipse at center, #4a4060 0%, #2a2040 70%, #1a1830 100%);
  border: 6px solid #3a2a45;
  box-shadow: inset 0 0 60px #5a4a70, 0 0 30px rgba(60,40,80,0.5);
  animation: vla-window 8s ease-in-out infinite alternate;
}
@keyframes vla-window { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }

.scn-variant-loves-apparition .window-frame {
  position:absolute; left:50%; top:10%; width:42%; height:62%;
  transform:translateX(-50%);
  background: transparent;
  border: 4px solid #2a1a2a;
  border-radius: 4px;
  pointer-events:none;
}

.scn-variant-loves-apparition .figure {
  position:absolute; bottom:8%; left:50%; width:10%; height:40%;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #0e0a1a 0%, #1a1225 40%, #0e0a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 20px rgba(0,0,0,0.4);
  animation: vla-figure 6s ease-in-out infinite alternate;
}
@keyframes vla-figure { 0% { transform:translateX(-50%) translateY(0) rotate(-2deg) } 50% { transform:translateX(-50%) translateY(-4px) rotate(2deg) } 100% { transform:translateX(-50%) translateY(0) rotate(0) } }

.scn-variant-loves-apparition .apparition {
  position:absolute; top:20%; left:30%; width:15%; height:25%;
  background: radial-gradient(ellipse at center, rgba(180,180,220,0.3) 0%, rgba(120,100,180,0.1) 60%, transparent 100%);
  filter: blur(4px);
  animation: vla-apparition 12s ease-in-out infinite alternate;
}
@keyframes vla-apparition { 0% { transform: translate(0,0) scale(0.8); opacity:0.3 } 50% { transform: translate(10px,-5px) scale(1.1); opacity:0.6 } 100% { transform: translate(-5px,2px) scale(0.9); opacity:0.2 } }

.scn-variant-loves-apparition .mist {
  position:absolute; bottom:0; left:0; width:100%; height:40%;
  background: linear-gradient(0deg, rgba(40,30,60,0.6) 0%, transparent 100%);
  filter: blur(2px);
  animation: vla-mist 15s ease-in-out infinite;
}
@keyframes vla-mist { 0% { opacity:0.4 } 25% { opacity:0.6 } 50% { opacity:0.3 } 75% { opacity:0.5 } 100% { opacity:0.4 } }

/* to-the-young-artist */

.scn-to-the-young-artist {
  background: linear-gradient(135deg, #f5e6c8 0%, #ecd4a8 50%, #dbb982 100%), radial-gradient(ellipse at 70% 30%, #fff5e0 0%, transparent 70%);
}
.scn-to-the-young-artist .studio-wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc0 0%, #d4c0a0 50%, #c0a880 100%); opacity:0.7;
}
.scn-to-the-young-artist .window {
  position:absolute; left:5%; top:8%; width:30%; height:60%;
  background: linear-gradient(180deg, #fffce8 0%, #e6dbb8 100%);
  border: 8px solid #b09870;
  box-shadow: inset 0 0 40px #fffce8, 0 0 30px rgba(255,240,200,0.3);
  animation: tya-window 9s ease-in-out infinite alternate;
}
@keyframes tya-window { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }

.scn-to-the-young-artist .easel {
  position:absolute; bottom:20%; left:55%; width:12%; height:50%;
  background: linear-gradient(90deg, #8a6a40 0%, #a08050 30%, #8a6a40 100%);
  border-radius: 4px 4px 0 0;
  transform: skewX(-5deg);
  box-shadow: 2px 0 8px rgba(0,0,0,0.2);
}
.scn-to-the-young-artist .canvas {
  position:absolute; bottom:35%; left:52%; width:18%; height:32%;
  background: linear-gradient(135deg, #f0e8d8 0%, #e0d0b0 100%);
  border: 2px solid #8a7a5a;
  transform: rotate(-3deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  animation: tya-canvas 15s ease-in-out infinite alternate;
}
@keyframes tya-canvas { 0% { transform: rotate(-3deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(-3deg) } }

.scn-to-the-young-artist .artist {
  position:absolute; bottom:8%; left:68%; width:12%; height:45%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 50%, #0e0a06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tya-artist 6s ease-in-out infinite alternate;
}
@keyframes tya-artist { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(-3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }

.scn-to-the-young-artist .palette {
  position:absolute; bottom:30%; left:60%; width:8%; height:10%;
  background: radial-gradient(circle, #b09068 0%, #8a6a40 60%, #6a4a20 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: tya-palette 8s ease-in-out infinite alternate;
}
@keyframes tya-palette { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(-3deg) } }

.scn-to-the-young-artist .paint-drip {
  position:absolute; bottom:28%; left:62%; width:2%; height:8%;
  background: linear-gradient(180deg, #c8a060 0%, #886a30 100%);
  border-radius: 0 0 50% 50%;
  animation: tya-drip 4s ease-in-out infinite;
}
@keyframes tya-drip { 0% { height:8% } 50% { height:14% } 100% { height:8% } }

.scn-to-the-young-artist .chair {
  position:absolute; bottom:0; left:5%; width:15%; height:20%;
  background: linear-gradient(180deg, #8a6a40 0%, #6a4a20 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}

/* baptismal-birthday */

.scn-baptismal-birthday {
  background: linear-gradient(180deg, #fec8a0 0%, #f8b080 20%, #c0d8e8 50%, #80b0d0 80%, #4060a0 100%), radial-gradient(ellipse at 30% 20%, #ffe0c0 0%, transparent 50%);
}
.scn-baptismal-birthday .sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #ffe0b0 0%, #f0c090 30%, #d0b0d0 60%, #90a0c0 100%);
  opacity:0.6;
  animation: bb-sky 20s ease-in-out infinite alternate;
}
@keyframes bb-sky { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

.scn-baptismal-birthday .sun {
  position:absolute; top:8%; left:40%; width:10%; height:10%;
  background: radial-gradient(circle, #ffe8a0 0%, #f0c060 40%, #d08030 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px #f0c060, 0 0 120px rgba(240,192,96,0.3);
  animation: bb-sun 30s ease-in-out infinite alternate;
}
@keyframes bb-sun { 0% { transform: translateX(-10px) translateY(0); box-shadow: 0 0 60px #f0c060; } 50% { transform: translateX(0) translateY(-5px); box-shadow: 0 0 80px #f0c060; } 100% { transform: translateX(10px) translateY(0); box-shadow: 0 0 50px #f0c060; } }

.scn-baptismal-birthday .water {
  position:absolute; bottom:0; left:0; width:100%; height:30%;
  background: linear-gradient(180deg, #7090b0 0%, #406080 50%, #203050 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: bb-water 12s ease-in-out infinite alternate;
}
@keyframes bb-water { 0% { border-radius: 40% 60% 0 0 / 20% 30% 0 0; transform: translateY(0); } 50% { border-radius: 45% 55% 0 0 / 25% 35% 0 0; transform: translateY(2px); } 100% { border-radius: 38% 62% 0 0 / 18% 28% 0 0; transform: translateY(0); } }

.scn-baptismal-birthday .cross {
  position:absolute; bottom:25%; left:50%; width:4%; height:30%;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4px;
  box-shadow: 0 0 30px rgba(60,40,20,0.3);
  animation: bb-cross 7s ease-in-out infinite alternate;
}
@keyframes bb-cross { 0% { transform:translateX(-50%) scaleY(1); } 50% { transform:translateX(-50%) scaleY(1.02); } 100% { transform:translateX(-50%) scaleY(1); } }
/* horizontal bar for cross – we add a pseudo? But we can't use pseudo in HTML template? Actually we can use extra div. But we have 6 divs already, we can add one more. Let's add a child div 'bar' inside template. But JS template already has 6 divs. We can add a seventh: .bar. But let's adjust: replace halo with bar? Or add bar. I'll add .bar in template. But the user gave 6 divs. Let's adjust to 7. Revised JS for this scene: include .bar. But I already wrote JS above. I'll fix now: add .bar. Let's adjust in final. I'll add .bar to the JS template for baptismal-birthday. OK. */
/* Let's re-do the JS for scene 3 to include crossbar */
/* I'll update the JS block below accordingly. For now I'll continue CSS with an additional .bar */
.scn-baptismal-birthday .bar {
  position:absolute; bottom:38%; left:46%; width:8%; height:4%;
  background: linear-gradient(90deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(60,40,20,0.2);
  animation: bb-bar 7s ease-in-out infinite alternate;
}
@keyframes bb-bar { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }

.scn-baptismal-birthday .figure {
  position:absolute; bottom:10%; left:45%; width:8%; height:20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0800 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: bb-figure 6s ease-in-out infinite alternate;
}
@keyframes bb-figure { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(5px) rotate(-2deg) translateY(-3px); } 100% { transform: translateX(0) rotate(0); } }

.scn-baptismal-birthday .halo {
  position:absolute; top:18%; left:44%; width:10%; height:10%;
  background: radial-gradient(circle, rgba(255,240,200,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: bb-halo 8s ease-in-out infinite alternate;
}
@keyframes bb-halo { 0% { transform: scale(1); opacity:0.5 } 50% { transform: scale(1.1); opacity:0.8 } 100% { transform: scale(1); opacity:0.6 } }

/* editorial-baptismal */

.scn-editorial-baptismal {
  background: linear-gradient(180deg, #2a2a3a 0%, #1e1e2e 40%, #161625 100%), radial-gradient(ellipse at 50% 80%, #3a3a4e 0%, transparent 70%);
}
.scn-editorial-baptismal .walls {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #2e2e3e 0%, #232336 50%, #1a1a2a 100%);
  animation: eb-walls 12s ease-in-out infinite alternate;
}
@keyframes eb-walls { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }

.scn-editorial-baptismal .bed {
  position:absolute; bottom:10%; left:10%; width:80%; height:20%;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.3);
  animation: eb-bed 14s ease-in-out infinite alternate;
}
@keyframes eb-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

.scn-editorial-baptismal .figure {
  position:absolute; bottom:18%; left:35%; width:20%; height:14%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: eb-figure 8s ease-in-out infinite alternate;
}
@keyframes eb-figure { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }

.scn-editorial-baptismal .lamp {
  position:absolute; bottom:50%; right:25%; width:4%; height:18%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 4px 4px 0 0;
  transform: skewX(-5deg);
}
.scn-editorial-baptismal .lamp-glow {
  position:absolute; bottom:50%; right:23%; width:8%; height:12%;
  background: radial-gradient(circle, #f0d080 0%, #c0a050 40%, transparent 80%);
  border-radius: 50%;
  filter: blur(4px);
  animation: eb-lamp 5s ease-in-out infinite alternate;
}
@keyframes eb-lamp { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); box-shadow: 0 0 20px #f0d080; } 100% { opacity:0.8; transform: scale(1); } }

.scn-editorial-baptismal .window {
  position:absolute; left:10%; top:10%; width:25%; height:35%;
  background: linear-gradient(180deg, #a0b0c0 0%, #708090 100%);
  border: 6px solid #3a3a4a;
  box-shadow: inset 0 0 30px #b0c0d0, 0 0 20px rgba(100,120,140,0.3);
  animation: eb-window 18s ease-in-out infinite alternate;
}
@keyframes eb-window { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }

.scn-editorial-baptismal .curtain {
  position:absolute; left:8%; top:10%; width:30%; height:38%;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 0 20% 20% 0;
  opacity:0.8;
  animation: eb-curtain 16s ease-in-out infinite alternate;
}
@keyframes eb-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(0); } }

.scn-editorial-baptismal .pillow {
  position:absolute; bottom:30%; left:30%; width:12%; height:6%;
  background: radial-gradient(ellipse at center, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: eb-pillow 10s ease-in-out infinite alternate;
}
@keyframes eb-pillow { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); } }

.scn-invocation-remorse { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 50%, #2a2a5a 100%), radial-gradient(ellipse at 50% 20%, rgba(200,200,255,0.15) 0%, transparent 60%); }
.scn-invocation-remorse .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0e0e2a 0%, transparent 100%); }
.scn-invocation-remorse .moon { position:absolute; top:12%; left:65%; width:40px; height:40px; background: radial-gradient(circle, #e0e0f0 0%, #a0a0c0 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(200,200,255,0.3); animation: ir-moon 12s ease-in-out infinite alternate; }
.scn-invocation-remorse .sea { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #0a0a1a 0%, #14143a 100%); animation: ir-sea 8s ease-in-out infinite; }
.scn-invocation-remorse .chapel { position:absolute; bottom:38%; left:35%; width:60px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:10% 10% 0 0; clip-path: polygon(0 100%, 0 30%, 50% 0, 100% 30%, 100% 100%); }
.scn-invocation-remorse .belltower { position:absolute; bottom:42%; left:36%; width:12px; height:30px; background: #151525; border-radius:20% 20% 0 0; animation: ir-tower 6s ease-in-out infinite; }
.scn-invocation-remorse .window-glow { position:absolute; bottom:44%; left:38%; width:8px; height:10px; background: radial-gradient(circle, #ffd080 0%, transparent 80%); box-shadow: 0 0 16px 6px rgba(255,208,128,0.5); animation: ir-glow 3s ease-in-out infinite alternate; }
.scn-invocation-remorse .breeze-a { position:absolute; top:50%; left:-10%; width:50%; height:4px; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.08), transparent); filter: blur(4px); animation: ir-breeze 25s linear infinite; }
.scn-invocation-remorse .breeze-b { position:absolute; top:55%; left:-10%; width:40%; height:3px; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.05), transparent); filter: blur(3px); animation: ir-breeze 30s linear infinite 5s; }
@keyframes ir-moon { 0% { transform: translate(0,0); filter: brightness(1); } 50% { transform: translate(2px,-2px); filter: brightness(0.95); } 100% { transform: translate(0,0); filter: brightness(1); } }
@keyframes ir-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ir-tower { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } }
@keyframes ir-glow { 0% { opacity:0.7; box-shadow: 0 0 12px 4px rgba(255,208,128,0.4); } 50% { opacity:1; box-shadow: 0 0 20px 8px rgba(255,208,128,0.6); } 100% { opacity:0.8; box-shadow: 0 0 14px 5px rgba(255,208,128,0.45); } }
@keyframes ir-breeze { 0% { transform: translateX(0); opacity:0; } 10% { opacity:1; } 90% { opacity:1; } 100% { transform: translateX(120%); opacity:0; } }

.scn-night-scene-dialogue { background: linear-gradient(180deg, #0b0b2a 0%, #1a1a3c 50%, #2c2c4e 100%), radial-gradient(ellipse at 70% 30%, rgba(255,255,255,0.1) 0%, transparent 40%); }
.scn-night-scene-dialogue .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0f0f30 0%, transparent 100%); }
.scn-night-scene-dialogue .stars { position:absolute; top:5%; left:10%; width:40%; height:30%; background: radial-gradient(circle at 20% 30%, #fff 1px, transparent 1px), radial-gradient(circle at 60% 60%, #fff 1px, transparent 1px), radial-gradient(circle at 80% 10%, #fff 1px, transparent 1px); animation: nsd-twinkle 2s ease-in-out infinite alternate; }
.scn-night-scene-dialogue .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 30% 70% 0 0 / 50% 100% 0 0; }
.scn-night-scene-dialogue .figure-left { position:absolute; bottom:28%; left:30%; width:16px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nsd-figure 4s ease-in-out infinite; }
.scn-night-scene-dialogue .figure-right { position:absolute; bottom:28%; left:55%; width:16px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nsd-figure 4s ease-in-out infinite 2s; }
.scn-night-scene-dialogue .distant-tower { position:absolute; bottom:30%; left:70%; width:8px; height:40px; background: #151525; border-radius: 10% 10% 0 0; }
.scn-night-scene-dialogue .shadow-foliage { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #0a0a1a 0%, #05050f 100%); filter: blur(10px); clip-path: polygon(0 100%, 0 60%, 20% 40%, 40% 55%, 60% 30%, 80% 50%, 100% 20%, 100% 100%); animation: nsd-foliage 10s ease-in-out infinite; }
@keyframes nsd-twinkle { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes nsd-figure { 0%,100% { transform: translateY(0) rotate(-0.5deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } }
@keyframes nsd-foliage { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }

.scn-night-scene-oropeza { background: linear-gradient(180deg, #0d0d2b 0%, #1a1a3a 50%, #2a2a4a 100%), radial-gradient(ellipse at 40% 20%, rgba(255,255,255,0.08) 0%, transparent 50%); }
.scn-night-scene-oropeza .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0f0f2e 0%, transparent 100%); }
.scn-night-scene-oropeza .stars { position:absolute; top:2%; right:15%; width:30%; height:30%; background: radial-gradient(circle at 30% 40%, #fff 1px, transparent 1px), radial-gradient(circle at 70% 10%, #fff 1px, transparent 1px); animation: nso-twinkle 3s ease-in-out infinite alternate; }
.scn-night-scene-oropeza .forest-back { position:absolute; bottom:35%; left:5%; right:5%; height:40%; background: linear-gradient(180deg, #0a1a0a 0%, #050f05 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; animation: nso-forest 12s ease-in-out infinite; }
.scn-night-scene-oropeza .forest-mid { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #071207 0%, #020802 100%); clip-path: polygon(0 100%, 0 50%, 15% 60%, 30% 45%, 50% 55%, 70% 40%, 85% 50%, 100% 35%, 100% 100%); animation: nso-forest 12s ease-in-out infinite 3s; }
.scn-night-scene-oropeza .path { position:absolute; bottom:30%; left:40%; width:20%; height:8px; background: #2a2a1a; border-radius: 50%; filter: blur(2px); animation: nso-path 6s ease-in-out infinite; }
.scn-night-scene-oropeza .figure-leader { position:absolute; bottom:29%; left:42%; width:10px; height:20px; background: #0a0a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: nso-walk 5s ease-in-out infinite; }
.scn-night-scene-oropeza .figure-follower { position:absolute; bottom:29%; left:36%; width:10px; height:20px; background: #0a0a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: nso-walk 5s ease-in-out infinite 2.5s; }
.scn-night-scene-oropeza .lantern-glow { position:absolute; bottom:31%; left:44%; width:6px; height:6px; background: radial-gradient(circle, #ffd080 0%, #ffb040 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 20px 10px rgba(255,208,128,0.5); animation: nso-lantern 3s ease-in-out infinite alternate; }
@keyframes nso-twinkle { 0% { opacity:0.5; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes nso-forest { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes nso-path { 0%,100% { transform: scaleX(1); opacity:0.4; } 50% { transform: scaleX(1.05); opacity:0.6; } }
@keyframes nso-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-2deg); } 50% { transform: translateX(4px) rotate(0deg); } 75% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(8px) rotate(0deg); } }
@keyframes nso-lantern { 0% { opacity:0.7; filter: brightness(0.8); } 50% { opacity:1; filter: brightness(1.2); } 100% { opacity:0.8; filter: brightness(0.9); } }

.scn-night-scene-earls-vow { background: linear-gradient(180deg, #0a0a25 0%, #15153a 50%, #20204a 100%), radial-gradient(ellipse at 50% 60%, rgba(255,255,255,0.05) 0%, transparent 70%); }
.scn-night-scene-earls-vow .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #0c0c2a 0%, transparent 100%); }
.scn-night-scene-earls-vow .stars { position:absolute; top:2%; left:5%; width:50%; height:40%; background: radial-gradient(circle at 10% 20%, #fff 1px, transparent 1px), radial-gradient(circle at 30% 50%, #fff 1px, transparent 1px), radial-gradient(circle at 60% 10%, #fff 1px, transparent 1px), radial-gradient(circle at 80% 30%, #fff 1px, transparent 1px); animation: nse-twinkle 4s ease-in-out infinite alternate; }
.scn-night-scene-earls-vow .hill-back { position:absolute; bottom:30%; left:0; right:0; height:35%; background: linear-gradient(180deg, #0e1a1e 0%, #050f12 100%); border-radius: 70% 30% 0 0 / 80% 50% 0 0; animation: nse-hill 15s ease-in-out infinite; }
.scn-night-scene-earls-vow .hill-fore { position:absolute; bottom:25%; left:-5%; right:-5%; height:30%; background: linear-gradient(180deg, #081214 0%, #02080a 100%); border-radius: 50% 50% 0 0 / 100% 40% 0 0; animation: nse-hill 15s ease-in-out infinite 5s; }
.scn-night-scene-earls-vow .figure-henry { position:absolute; bottom:27%; left:35%; width:14px; height:28px; background: #0a0a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nse-figure 5s ease-in-out infinite; }
.scn-night-scene-earls-vow .figure-sandoval { position:absolute; bottom:27%; left:52%; width:14px; height:28px; background: #0a0a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nse-figure 5s ease-in-out infinite 2.5s; }
.scn-night-scene-earls-vow .distant-spire { position:absolute; bottom:30%; left:70%; width:6px; height:45px; background: #15152a; clip-path: polygon(50% 0, 60% 30%, 50% 100%, 40% 30%); animation: nse-spire 8s ease-in-out infinite; }
@keyframes nse-twinkle { 0% { opacity:0.4; } 50% { opacity:0.9; } 100% { opacity:0.5; } }
@keyframes nse-hill { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes nse-figure { 0%,100% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.02) rotate(1deg); } }
@keyframes nse-spire { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(1.5deg); } }

.scn-to-lady-falconers-shipwreck {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%), radial-gradient(ellipse at 50% 60%, #5a3a1a 0%, transparent 70%);
}
.scn-to-lady-falconers-shipwreck .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, #1a0f05 20%, #2a1a0a 50%, #1a0f05 80%, transparent 100%);
  animation: lfs-wallpulse 20s ease-in-out infinite alternate;
}
.scn-to-lady-falconers-shipwreck .window-frame {
  position: absolute;
  left: 30%;
  top: 15%;
  width: 40%;
  height: 55%;
  background: transparent;
  border: 8px solid #4a3525;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-to-lady-falconers-shipwreck .sea-view {
  position: absolute;
  left: 31%;
  top: 17%;
  width: 38%;
  height: 51%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 30%, #2a1a0a 100%);
  border-radius: 2px;
  animation: lfs-seasway 12s ease-in-out infinite alternate;
}
.scn-to-lady-falconers-shipwreck .figure {
  position: absolute;
  bottom: 18%;
  left: 42%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, #4a3025 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lfs-bow 6s ease-in-out infinite;
}
.scn-to-lady-falconers-shipwreck .book {
  position: absolute;
  bottom: 18%;
  left: 46%;
  width: 30px;
  height: 20px;
  background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: lfs-bookopen 10s ease-in-out infinite alternate;
}
.scn-to-lady-falconers-shipwreck .candle {
  position: absolute;
  bottom: 22%;
  left: 38%;
  width: 6px;
  height: 18px;
  background: #a08560;
  border-radius: 2px;
  box-shadow: 0 0 20px 6px #c08040;
  animation: lfs-flicker 2s ease-in-out infinite alternate;
}
@keyframes lfs-wallpulse { 0%,100% { opacity:0.7 } 50% { opacity:0.9 } }
@keyframes lfs-seasway { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes lfs-bow { 0%,100% { transform: rotate(0) translateX(0) } 25% { transform: rotate(2deg) translateX(2px) } 75% { transform: rotate(-1deg) translateX(-1px) } }
@keyframes lfs-bookopen { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(-3deg) scaleY(1.02) } 100% { transform: rotate(-6deg) scaleY(0.98) } }
@keyframes lfs-flicker { 0% { box-shadow: 0 0 16px 4px #c08040 } 50% { box-shadow: 0 0 28px 8px #e0a050 } 100% { box-shadow: 0 0 20px 5px #c08040 } }

.scn-shipwreck-continued {
  background: linear-gradient(180deg, #1a0a05 0%, #2a1a0a 30%, #1a0f05 100%), radial-gradient(ellipse at 50% 80%, #3a2a0a 0%, transparent 70%);
}
.scn-shipwreck-continued .sky-ship {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 50%;
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a0a 50%, #2a1a0a 100%);
  animation: scw-storm 15s ease-in-out infinite alternate;
}
.scn-shipwreck-continued .waves {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60%;
  background: linear-gradient(180deg, transparent 0%, #0a0503 30%, #1a0a05 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  animation: scw-surge 8s ease-in-out infinite alternate;
}
.scn-shipwreck-continued .ship-hull {
  position: absolute;
  bottom: 35%;
  left: 30%;
  width: 40%;
  height: 20%;
  background: linear-gradient(90deg, #3a1a05 0%, #5a2a10 50%, #3a1a05 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(-5deg);
  animation: scw-pitch 6s ease-in-out infinite;
}
.scn-shipwreck-continued .ship-mast {
  position: absolute;
  bottom: 45%;
  left: 45%;
  width: 4px;
  height: 30%;
  background: #2a1a05;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: scw-mastwobble 4s ease-in-out infinite alternate;
}
.scn-shipwreck-continued .sail {
  position: absolute;
  bottom: 50%;
  left: 42%;
  width: 12%;
  height: 18%;
  background: linear-gradient(135deg, #6a4a1a 0%, #4a2a0a 100%);
  border-radius: 10% 80% 10% 80% / 30% 60% 40% 70%;
  transform: rotate(15deg);
  animation: scw-tatters 5s ease-in-out infinite alternate;
}
.scn-shipwreck-continued .figure-cling {
  position: absolute;
  bottom: 42%;
  left: 35%;
  width: 14px;
  height: 28px;
  background: linear-gradient(180deg, #1a0f05 0%, #0a0503 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scw-cling 3s ease-in-out infinite alternate;
}
.scn-shipwreck-continued .spray {
  position: absolute;
  bottom: 38%;
  left: 28%;
  width: 16%;
  height: 4%;
  background: radial-gradient(circle, rgba(255,220,180,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: scw-spray 2s ease-in-out infinite alternate;
}
@keyframes scw-storm { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes scw-surge { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-5px) scaleY(1.04) } 100% { transform: translateY(3px) scaleY(0.98) } }
@keyframes scw-pitch { 0% { transform: rotate(-5deg) } 25% { transform: rotate(-3deg) } 75% { transform: rotate(-8deg) } 100% { transform: rotate(-5deg) } }
@keyframes scw-mastwobble { 0% { transform: rotate(10deg) } 50% { transform: rotate(14deg) } 100% { transform: rotate(8deg) } }
@keyframes scw-tatters { 0% { transform: rotate(15deg) scaleX(1) } 50% { transform: rotate(20deg) scaleX(1.1) } 100% { transform: rotate(12deg) scaleX(0.9) } }
@keyframes scw-cling { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(-2px) } }
@keyframes scw-spray { 0% { transform: translateX(0) opacity(0.6) } 50% { transform: translateX(10px) opacity(1) } 100% { transform: translateX(-5px) opacity(0.4) } }

.scn-shipwreck-editorial {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 30%, #4a2a0a 0%, transparent 60%);
}
.scn-shipwreck-editorial .desk {
  position: absolute;
  bottom: 10%;
  left: 10%;
  width: 80%;
  height: 30%;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a3a1a 50%, #3a2a1a 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}
.scn-shipwreck-editorial .manuscript {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 40%;
  height: 12%;
  background: linear-gradient(135deg, #d4c4a0 0%, #bca88c 100%);
  border-radius: 2px;
  transform: rotate(1deg);
  animation: swe-page 12s ease-in-out infinite alternate;
}
.scn-shipwreck-editorial .inkwell {
  position: absolute;
  bottom: 28%;
  left: 22%;
  width: 12px;
  height: 10px;
  background: #1a0f05;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-shipwreck-editorial .quill {
  position: absolute;
  bottom: 35%;
  left: 25%;
  width: 4px;
  height: 30px;
  background: linear-gradient(180deg, #d4c4a0 0%, #8a7a5a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform: rotate(25deg);
  transform-origin: bottom center;
  animation: swe-quill 5s ease-in-out infinite alternate;
}
.scn-shipwreck-editorial .candle {
  position: absolute;
  bottom: 32%;
  left: 70%;
  width: 6px;
  height: 22px;
  background: #a08560;
  border-radius: 2px;
  box-shadow: 0 0 24px 8px #c08040;
  animation: swe-candleflicker 2s ease-in-out infinite alternate;
}
.scn-shipwreck-editorial .bookshelf {
  position: absolute;
  top: 5%;
  left: 5%;
  width: 90%;
  height: 40%;
  background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 8px, #2a1a0a 8px, #2a1a0a 10px);
  border-radius: 4px;
  animation: swe-shelf 20s linear infinite;
}
@keyframes swe-page { 0% { transform: rotate(1deg) translateX(0) } 50% { transform: rotate(0deg) translateX(2px) } 100% { transform: rotate(2deg) translateX(-1px) } }
@keyframes swe-quill { 0% { transform: rotate(25deg) } 50% { transform: rotate(30deg) } 100% { transform: rotate(22deg) } }
@keyframes swe-candleflicker { 0% { box-shadow: 0 0 18px 5px #c08040 } 50% { box-shadow: 0 0 30px 10px #e0a050 } 100% { box-shadow: 0 0 22px 6px #c08040 } }
@keyframes swe-shelf { 0% { background-position: 0 0 } 100% { background-position: 20px 0 } }

.scn-human-life-denial-immortality {
  background: linear-gradient(180deg, #0f0a12 0%, #1a0f1a 50%, #0f0a12 100%), radial-gradient(ellipse at 50% 40%, #2a1a2a 0%, transparent 80%);
}
.scn-human-life-denial-immortality .void-bg {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 60%, #1a0f1a 0%, transparent 100%);
  animation: hld-void 30s ease-in-out infinite alternate;
}
.scn-human-life-denial-immortality .hourglass {
  position: absolute;
  left: 40%;
  top: 20%;
  width: 20%;
  height: 40%;
  background: linear-gradient(180deg, #3a2a3a 0%, #5a4a5a 50%, #3a2a3a 100%);
  -webkit-clip-path: polygon(0% 0%, 100% 0%, 80% 50%, 100% 100%, 0% 100%, 20% 50%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 50%, 100% 100%, 0% 100%, 20% 50%);
  animation: hld-glass 20s ease-in-out infinite alternate;
}
.scn-human-life-denial-immortality .candle-low {
  position: absolute;
  bottom: 15%;
  left: 20%;
  width: 5px;
  height: 25px;
  background: #6a5a4a;
  border-radius: 2px;
  box-shadow: 0 0 12px 3px #b08040;
  animation: hld-dimcandle 4s ease-in-out infinite alternate;
}
.scn-human-life-denial-immortality .skull-shadow {
  position: absolute;
  bottom: 22%;
  left: 55%;
  width: 25px;
  height: 30px;
  background: #1a0f1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 0 20px 5px rgba(0,0,0,0.8);
  transform: rotate(10deg);
  animation: hld-skullshade 8s ease-in-out infinite alternate;
}
.scn-human-life-denial-immortality .figure-thinking {
  position: absolute;
  bottom: 10%;
  left: 30%;
  width: 22px;
  height: 50px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0f1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hld-think 10s ease-in-out infinite alternate;
}
.scn-human-life-denial-immortality .particles {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: radial-gradient(circle at 20% 30%, rgba(255,220,200,0.1) 0%, transparent 50%), radial-gradient(circle at 80% 70%, rgba(255,200,180,0.08) 0%, transparent 50%);
  animation: hld-dust 50s linear infinite;
}
@keyframes hld-void { 0%,100% { opacity:0.6 } 50% { opacity:0.9 } }
@keyframes hld-glass { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1.02) } }
@keyframes hld-dimcandle { 0% { box-shadow: 0 0 10px 2px #b08040 } 50% { box-shadow: 0 0 16px 4px #c09050 } 100% { box-shadow: 0 0 8px 2px #905030 } }
@keyframes hld-skullshade { 0% { transform: rotate(10deg) } 50% { transform: rotate(14deg) } 100% { transform: rotate(8deg) } }
@keyframes hld-think { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-1deg) } }
@keyframes hld-dust { 0% { background-position: 0 0 } 100% { background-position: 100px 100px } }

.scn-picture-vision {
  background: 
    linear-gradient(180deg, #f5e6ca 0%, #e8c996 40%, #cba56a 80%, #9a7b4e 100%),
    radial-gradient(ellipse at 50% 20%, #fef0d0 0%, transparent 60%);
}
.scn-picture-vision .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a0c8e0 0%, #d4e4f0 100%); animation: pv-sky 12s ease-in-out infinite alternate; }
.scn-picture-vision .sun { position:absolute; top:12%; left:20%; width:60px; height:60px; background: radial-gradient(circle, #fff4d0 0%, #f0c860 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(240,200,96,0.4); animation: pv-sun 8s ease-in-out infinite alternate; }
.scn-picture-vision .hill-back { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a9a5a 0%, #5a7a3a 100%); border-radius: 60% 40% 0 0 / 80% 50% 0 0; animation: pv-hill 18s ease-in-out infinite alternate; }
.scn-picture-vision .hill-fore { position:absolute; bottom:15%; left:-5%; right:-5%; height:20%; background: linear-gradient(180deg, #8aaa6a 0%, #6a8a4a 100%); border-radius: 50% 50% 0 0 / 70% 70% 0 0; animation: pv-hill 14s ease-in-out infinite alternate-reverse; }
.scn-picture-vision .figure { position:absolute; bottom:23%; left:30%; width:16px; height:40px; background: linear-gradient(180deg, #c85030 0%, #a83820 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pv-figure 4s ease-in-out infinite; }
.scn-picture-vision .picture-frame { position:absolute; top:18%; left:55%; width:80px; height:60px; background: linear-gradient(135deg, #b8860b 0%, #d4a017 100%); border-radius: 8%; box-shadow: 0 0 20px 6px rgba(212,160,23,0.3); animation: pv-frame 6s ease-in-out infinite; }
.scn-picture-vision .vision-glow { position:absolute; top:20%; left:57%; width:60px; height:40px; background: radial-gradient(circle, #fff4d0 0%, #f0c860 40%, transparent 70%); border-radius:8%; filter: blur(4px); animation: pv-glow 3s ease-in-out infinite alternate; }
.scn-picture-vision .music-note { position:absolute; top:25%; left:50%; width:4px; height:4px; background: #c06020; border-radius:50%; box-shadow: 0 0 6px 2px #c06020; animation: pv-note 5s linear infinite; }

@keyframes pv-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes pv-sun { 0% { transform: scale(0.95) translateY(0); box-shadow: 0 0 40px 10px rgba(240,200,96,0.3); } 50% { transform: scale(1.05) translateY(-4px); box-shadow: 0 0 60px 20px rgba(240,200,96,0.5); } 100% { transform: scale(0.95) translateY(0); box-shadow: 0 0 40px 10px rgba(240,200,96,0.3); } }
@keyframes pv-hill { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes pv-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes pv-frame { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-5px) rotate(0deg); } 100% { transform: translateY(0) rotate(3deg); } }
@keyframes pv-glow { 0% { opacity:0.6; filter: blur(3px); } 50% { opacity:1; filter: blur(5px); } 100% { opacity:0.7; filter: blur(4px); } }
@keyframes pv-note { 0% { transform: translateY(0) translateX(0) scale(1); opacity:0.8; } 25% { transform: translateY(-15px) translateX(10px) scale(1.2); opacity:1; } 50% { transform: translateY(-30px) translateX(0) scale(0.9); opacity:0.6; } 75% { transform: translateY(-15px) translateX(-10px) scale(1.1); opacity:0.9; } 100% { transform: translateY(0) translateX(0) scale(1); opacity:0.8; } }

.scn-memories-madness {
  background: 
    linear-gradient(180deg, #f0d8b0 0%, #d4b080 30%, #a07850 70%, #604030 100%),
    radial-gradient(ellipse at 50% 30%, #ffe0a0 0%, transparent 60%);
}
.scn-memories-madness .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #80a0c0 0%, #b0c8e0 100%); animation: mm-sky 12s ease-in-out infinite alternate; }
.scn-memories-madness .sun { position:absolute; top:10%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #fff4d0 0%, #f0c860 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 50px 15px rgba(240,200,96,0.4); animation: mm-sun 10s ease-in-out infinite alternate; }
.scn-memories-madness .church-spire { position:absolute; bottom:35%; left:55%; width:20px; height:60px; background: linear-gradient(180deg, #705030 0%, #402820 100%); border-radius: 4px 4px 0 0; transform: skewX(-5deg); animation: mm-spire 8s ease-in-out infinite; }
.scn-memories-madness .city-wall { position:absolute; bottom:30%; left:10%; right:10%; height:20px; background: linear-gradient(90deg, #604030, #806050, #604030); border-radius: 4px; animation: mm-wall 6s ease-in-out infinite; }
.scn-memories-madness .gate { position:absolute; bottom:30%; left:45%; width:30px; height:30px; background: #402820; border-radius: 50% 50% 0 0 / 60% 60% 0 0; border: 3px solid #806050; animation: mm-gate 4s ease-in-out infinite; }
.scn-memories-madness .crowd { position:absolute; bottom:32%; left:15%; right:15%; height:16px; background: repeating-linear-gradient(90deg, #503030 0px, #503030 4px, #604040 4px, #604040 8px, #705050 8px, #705050 12px, #806060 12px, #806060 16px); animation: mm-crowd 3s ease-in-out infinite; }
.scn-memories-madness .banner { position:absolute; bottom:38%; left:40%; width:24px; height:30px; background: #b06030; clip-path: polygon(0 0, 100% 0, 80% 50%, 100% 100%, 0 100%); animation: mm-banner 5s ease-in-out infinite; }
.scn-memories-madness .cloud { position:absolute; top:15%; left:10%; width:100px; height:20px; background: linear-gradient(180deg, rgba(240,230,210,0.6) 0%, rgba(240,230,210,0.1) 100%); border-radius:50%; filter: blur(6px); animation: mm-cloud 40s linear infinite; }

@keyframes mm-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes mm-sun { 0% { transform: scale(0.9) translateY(0); } 50% { transform: scale(1.1) translateY(-3px); } 100% { transform: scale(0.9) translateY(0); } }
@keyframes mm-spire { 0% { transform: skewX(-6deg) translateY(0); } 50% { transform: skewX(0deg) translateY(-2px); } 100% { transform: skewX(6deg) translateY(0); } }
@keyframes mm-wall { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:0.8; transform: scaleY(1); } }
@keyframes mm-gate { 0%,100% { transform: scaleX(0.95) translateY(0); } 50% { transform: scaleX(1.05) translateY(-1px); } }
@keyframes mm-crowd { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px); } }
@keyframes mm-banner { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes mm-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(130vw); } }

.scn-philosophy-as-child {
  background: 
    linear-gradient(180deg, #f5e6ca 0%, #d4c090 40%, #a08050 80%, #604020 100%),
    radial-gradient(ellipse at 50% 20%, #fff4d0 0%, transparent 60%);
}
.scn-philosophy-as-child .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #90b8d0 0%, #c0d8e8 100%); animation: pc-sky 12s ease-in-out infinite alternate; }
.scn-philosophy-as-child .sun { position:absolute; top:8%; left:50%; width:55px; height:55px; background: radial-gradient(circle, #fff4d0 0%, #e8c040 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 50px 15px rgba(232,192,64,0.4); animation: pc-sun 9s ease-in-out infinite alternate; }
.scn-philosophy-as-child .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a8a4a 0%, #4a6a2a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; animation: pc-ground 16s ease-in-out infinite alternate; }
.scn-philosophy-as-child .mother { position:absolute; bottom:18%; left:60%; width:20px; height:50px; background: linear-gradient(180deg, #c05030 0%, #a83820 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pc-mother 5s ease-in-out infinite; }
.scn-philosophy-as-child .child { position:absolute; bottom:22%; left:45%; width:14px; height:30px; background: linear-gradient(180deg, #d07040 0%, #b05830 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pc-child 3s ease-in-out infinite; }
.scn-philosophy-as-child .bird { position:absolute; top:20%; left:30%; width:18px; height:18px; background: #604020; clip-path: polygon(0 50%, 50% 0, 100% 50%, 50% 100%); animation: pc-bird 4s ease-in-out infinite alternate; }
.scn-philosophy-as-child .flower { position:absolute; bottom:28%; left:55%; width:10px; height:10px; background: radial-gradient(circle, #f080c0 0%, #c05080 100%); border-radius:50%; animation: pc-flower 6s ease-in-out infinite; }
.scn-philosophy-as-child .stone { position:absolute; bottom:26%; left:42%; width:12px; height:8px; background: #706050; border-radius: 40% 40% 30% 30%; transform: rotate(-10deg); animation: pc-stone 8s ease-in-out infinite; }

@keyframes pc-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes pc-sun { 0% { transform: scale(0.9) translateY(0); } 50% { transform: scale(1.1) translateY(-3px); } 100% { transform: scale(0.9) translateY(0); } }
@keyframes pc-ground { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes pc-mother { 0% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(2deg) translateX(4px); } 100% { transform: rotate(-3deg) translateX(0); } }
@keyframes pc-child { 0% { transform: translateY(0) rotate(0) scale(1); } 25% { transform: translateY(-4px) rotate(5deg) scale(1.05); } 50% { transform: translateY(0) rotate(0) scale(1); } 75% { transform: translateY(-2px) rotate(-5deg) scale(0.95); } 100% { transform: translateY(0) rotate(0) scale(1); } }
@keyframes pc-bird { 0% { transform: translateY(0) translateX(0) rotate(0); } 100% { transform: translateY(-20px) translateX(30px) rotate(20deg); } }
@keyframes pc-flower { 0% { transform: scale(0.9) rotate(0); opacity:0.8; } 50% { transform: scale(1.2) rotate(15deg); opacity:1; } 100% { transform: scale(0.9) rotate(0); opacity:0.8; } }
@keyframes pc-stone { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }

.scn-italian-landscape {
  background: 
    linear-gradient(180deg, #e8d8b0 0%, #c8b080 30%, #a08850 70%, #604030 100%),
    radial-gradient(ellipse at 50% 20%, #fff4d0 0%, transparent 60%);
}
.scn-italian-landscape .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #70a0c0 0%, #a0c8e0 100%); animation: il-sky 12s ease-in-out infinite alternate; }
.scn-italian-landscape .sun { position:absolute; top:14%; left:75%; width:45px; height:45px; background: radial-gradient(circle, #fff4d0 0%, #e8c040 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 12px rgba(232,192,64,0.4); animation: il-sun 9s ease-in-out infinite alternate; }
.scn-italian-landscape .hill { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a9a5a 0%, #5a7a3a 100%); border-radius: 40% 60% 0 0 / 70% 50% 0 0; animation: il-hill 18s ease-in-out infinite alternate; }
.scn-italian-landscape .tower { position:absolute; bottom:25%; left:60%; width:18px; height:70px; background: linear-gradient(180deg, #c8a060 0%, #a07840 100%); border-radius: 2px; transform: skewX(-2deg); animation: il-tower 7s ease-in-out infinite; }
.scn-italian-landscape .river { position:absolute; bottom:10%; left:0; right:0; height:20%; background: linear-gradient(180deg, #70a0c0 0%, #5080a0 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; animation: il-river 10s ease-in-out infinite; }
.scn-italian-landscape .boat { position:absolute; bottom:12%; left:20%; width:30px; height:10px; background: linear-gradient(90deg, #705030, #806050); border-radius: 0 0 50% 50%; animation: il-boat 6s ease-in-out infinite; }
.scn-italian-landscape .bells { position:absolute; bottom:55%; left:61%; width:4px; height:8px; background: #d0a040; border-radius: 40%; box-shadow: 0 10px 0 #d0a040, 0 20px 0 #d0a040; animation: il-bells 2s ease-in-out infinite; }
.scn-italian-landscape .cloud { position:absolute; top:12%; right:10%; width:80px; height:18px; background: linear-gradient(180deg, rgba(240,230,210,0.5) 0%, rgba(240,230,210,0.1) 100%); border-radius:50%; filter: blur(5px); animation: il-cloud 45s linear infinite reverse; }

@keyframes il-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes il-sun { 0% { transform: scale(0.9) translateY(0); } 50% { transform: scale(1.1) translateY(-3px); } 100% { transform: scale(0.9) translateY(0); } }
@keyframes il-hill { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes il-tower { 0% { transform: skewX(-3deg) translateY(0); } 50% { transform: skewX(0deg) translateY(-2px); } 100% { transform: skewX(3deg) translateY(0); } }
@keyframes il-river { 0% { background-position: 0 0; } 50% { background-position: 10px 0; } 100% { background-position: 0 0; } }
@keyframes il-boat { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(10px) rotate(-3deg); } 50% { transform: translateX(20px) rotate(0); } 75% { transform: translateX(10px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes il-bells { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.1); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes il-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

/* faith-hope-charity-all */

.scn-faith-hope-charity-all {
  background: 
    linear-gradient(180deg, #1a1a3e 0%, #2c2244 30%, #3a2a50 70%, #1e1428 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a6e 0%, transparent 60%);
}
.scn-faith-hope-charity-all .wall { position:absolute; inset:0; background: linear-gradient(135deg, rgba(40,30,60,0.8) 0%, rgba(20,15,30,0.9) 100%); }
.scn-faith-hope-charity-all .window { position:absolute; top:8%; left:35%; width:30%; height:45%; background: radial-gradient(ellipse at center, #6a5a8a 0%, #3a2a5a 50%, transparent 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 0 40px rgba(200,180,240,0.2), 0 0 60px rgba(200,180,240,0.15); animation: fha-win 12s ease-in-out infinite alternate; }
.scn-faith-hope-charity-all .ray { position:absolute; top:8%; left:35%; width:30%; height:60%; background: linear-gradient(180deg, rgba(200,180,240,0.2) 0%, rgba(200,180,240,0) 100%); clip-path: polygon(30% 0%, 70% 0%, 55% 100%, 45% 100%); animation: fha-ray 15s ease-in-out infinite alternate; }
.scn-faith-hope-charity-all .candle { position:absolute; bottom:22%; left:48%; width:10px; height:30px; background: linear-gradient(180deg, #b8a080 0%, #6a5a3a 100%); border-radius:20% 20% 10% 10%; animation: fha-candle 3s ease-in-out infinite; }
.scn-faith-hope-charity-all .candle::before { content:''; position:absolute; top:-12px; left:-4px; width:18px; height:18px; background: radial-gradient(circle, #ffd060 0%, #ffa030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(255,160,48,0.6); animation: fha-flame 1.5s ease-in-out infinite alternate; }
.scn-faith-hope-charity-all .pew { position:absolute; bottom:10%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-faith-hope-charity-all .figure { position:absolute; bottom:8%; left:40%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fha-kneel 8s ease-in-out infinite; }
.scn-faith-hope-charity-all .glow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,240,0.05) 0%, transparent 70%); pointer-events:none; animation: fha-glow 10s ease-in-out infinite alternate; }
@keyframes fha-win { 0% { opacity:0.7; filter:brightness(0.9) } 50% { opacity:1; filter:brightness(1.1) } 100% { opacity:0.8; filter:brightness(0.95) } }
@keyframes fha-ray { 0% { opacity:0.3; transform:skewX(-2deg) } 50% { opacity:0.6; transform:skewX(2deg) } 100% { opacity:0.3; transform:skewX(-2deg) } }
@keyframes fha-candle { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes fha-flame { 0% { transform:scale(1) translateY(0); opacity:0.9 } 50% { transform:scale(1.15) translateY(-3px); opacity:1 } 100% { transform:scale(0.95) translateY(0); opacity:0.85 } }
@keyframes fha-kneel { 0%,100% { transform:translateX(0) translateY(0) rotate(-2deg) } 50% { transform:translateX(4px) translateY(-3px) rotate(2deg) } }
@keyframes fha-glow { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.5 } }

/* faith-hope-charity-finale */

.scn-faith-hope-charity-finale {
  background: 
    linear-gradient(180deg, #1a1a3e 0%, #2a2240 40%, #3a2a5a 70%, #1e1428 100%),
    radial-gradient(ellipse at 50% 10%, #6a5a8a 0%, transparent 60%);
}
.scn-faith-hope-charity-finale .arch { position:absolute; top:0; left:20%; width:60%; height:35%; border-radius: 50% 50% 0 0 / 80% 80% 0 0; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); }
.scn-faith-hope-charity-finale .throne { position:absolute; bottom:20%; left:40%; width:20%; height:40%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 10px 20px rgba(0,0,0,0.6); }
.scn-faith-hope-charity-finale .angel1 { position:absolute; bottom:30%; left:25%; width:40px; height:60px; background: linear-gradient(180deg, #d0c0a0 0%, #a09080 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fhf-angel 6s ease-in-out infinite; }
.scn-faith-hope-charity-finale .angel2 { position:absolute; bottom:30%; right:25%; width:40px; height:60px; background: linear-gradient(180deg, #d0c0a0 0%, #a09080 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fhf-angel 6s ease-in-out infinite 3s; }
.scn-faith-hope-charity-finale .halo { position:absolute; top:10%; left:46%; width:8%; padding-bottom:8%; background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,208,128,0.4); animation: fhf-halo 4s ease-in-out infinite alternate; }
.scn-faith-hope-charity-finale .rays { position:absolute; top:5%; left:30%; width:40%; height:20%; background: linear-gradient(180deg, rgba(255,208,128,0.15) 0%, transparent 100%); clip-path: polygon(40% 0%, 60% 0%, 50% 100%); animation: fhf-rays 10s ease-in-out infinite alternate; }
.scn-faith-hope-charity-finale .cloud { position:absolute; top:2%; left:10%; width:120px; height:25px; background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%); border-radius:50%; filter:blur(8px); animation: fhf-cloud 40s linear infinite; }
@keyframes fhf-angel { 0% { transform:translateY(0) rotate(-5deg) } 50% { transform:translateY(-8px) rotate(5deg) } 100% { transform:translateY(0) rotate(-5deg) } }
@keyframes fhf-halo { 0% { transform:scale(0.8); opacity:0.7 } 50% { transform:scale(1.1); opacity:1 } 100% { transform:scale(0.9); opacity:0.8 } }
@keyframes fhf-rays { 0% { opacity:0.2; transform:rotate(-2deg) } 50% { opacity:0.6; transform:rotate(2deg) } 100% { opacity:0.2; transform:rotate(-2deg) } }
@keyframes fhf-cloud { 0% { transform:translateX(0) } 100% { transform:translateX(110vw) } }

/* to-nature-phantasy */

.scn-to-nature-phantasy {
  background: 
    linear-gradient(180deg, #87CEEB 0%, #b0e0f0 40%, #e0f0e0 80%, #c0d0a0 100%),
    radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 70%);
}
.scn-to-nature-phantasy .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #7ec8e3 0%, #a8d8e8 50%, transparent 100%); }
.scn-to-nature-phantasy .sun { position:absolute; top:5%; left:75%; width:10%; padding-bottom:10%; background: radial-gradient(circle, #fff0a0 0%, #ffd060 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(255,208,96,0.3); animation: tnp-sun 8s ease-in-out infinite alternate; }
.scn-to-nature-phantasy .cloud1 { position:absolute; top:12%; left:5%; width:140px; height:22px; background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.15) 100%); border-radius:50%; filter:blur(6px); animation: tnp-cloud1 35s linear infinite; }
.scn-to-nature-phantasy .cloud2 { position:absolute; top:8%; left:70%; width:100px; height:18px; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter:blur(5px); animation: tnp-cloud2 40s linear infinite reverse; }
.scn-to-nature-phantasy .meadow { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #68a058 0%, #4a803a 50%, #306820 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; }
.scn-to-nature-phantasy .tree { position:absolute; bottom:22%; left:55%; width:45px; height:80px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: tnp-tree 30s ease-in-out infinite; }
.scn-to-nature-phantasy .tree::before { content:''; position:absolute; top:-40px; left:-20px; width:85px; height:70px; background: radial-gradient(ellipse at 50% 100%, #3a7a2a 0%, #2a5a1a 60%, transparent 100%); border-radius:50%; }
.scn-to-nature-phantasy .flower1 { position:absolute; bottom:5%; left:20%; width:12px; height:12px; background: radial-gradient(circle, #ff80a0 0%, #ff4080 100%); border-radius:50%; animation: tnp-flower 6s ease-in-out infinite; }
.scn-to-nature-phantasy .flower2 { position:absolute; bottom:8%; left:30%; width:10px; height:10px; background: radial-gradient(circle, #c0a0ff 0%, #8060c0 100%); border-radius:50%; animation: tnp-flower 7s ease-in-out infinite 2s; }
.scn-to-nature-phantasy .butterfly { position:absolute; bottom:35%; left:40%; width:20px; height:14px; background: radial-gradient(ellipse at 30% 50%, #ffa060 0%, transparent 100%); border-radius:50% 50% 0 0; transform-origin: 50% 100%; animation: tnp-butterfly 4s ease-in-out infinite; }
@keyframes tnp-sun { 0% { transform:scale(0.9); opacity:0.8 } 50% { transform:scale(1.1); opacity:1 } 100% { transform:scale(0.95); opacity:0.85 } }
@keyframes tnp-cloud1 { 0% { transform:translateX(-140px) } 100% { transform:translateX(calc(100vw + 140px)) } }
@keyframes tnp-cloud2 { 0% { transform:translateX(0) } 100% { transform:translateX(-100vw) } }
@keyframes tnp-tree { 0%,100% { transform:rotate(0deg) } 50% { transform:rotate(2deg) } }
@keyframes tnp-flower { 0%,100% { transform:scale(1) rotate(0deg) } 50% { transform:scale(1.3) rotate(20deg) } }
@keyframes tnp-butterfly { 0% { transform:translate(0,0) rotate(-10deg) } 25% { transform:translate(10px,-6px) rotate(10deg) } 50% { transform:translate(0,0) rotate(-10deg) } 75% { transform:translate(-10px,-8px) rotate(10deg) } 100% { transform:translate(0,0) rotate(-10deg) } }

/* limbo-strange-place */

.scn-limbo-strange-place {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1028 30%, #2a1a3a 70%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 50%, #2a1a3a 0%, transparent 80%);
}
.scn-limbo-strange-place .void { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 40%, #1a1028 0%, #050510 100%); }
.scn-limbo-strange-place .shade1 { position:absolute; top:20%; left:15%; width:30%; height:50%; background: linear-gradient(180deg, rgba(80,60,100,0.4) 0%, rgba(30,20,40,0.8) 100%); border-radius: 60% 40% 40% 60% / 70% 50% 50% 30%; filter:blur(3px); animation: lsp-shade 10s ease-in-out infinite alternate; }
.scn-limbo-strange-place .shade2 { position:absolute; bottom:10%; right:10%; width:40%; height:40%; background: linear-gradient(180deg, rgba(60,40,80,0.3) 0%, rgba(20,10,30,0.9) 100%); border-radius: 30% 70% 70% 30% / 50% 60% 40% 50%; filter:blur(4px); animation: lsp-shade 12s ease-in-out infinite alternate-reverse; }
.scn-limbo-strange-place .eye { position:absolute; top:35%; left:42%; width:16%; padding-bottom:16%; background: radial-gradient(circle, #a0a0c0 0%, #404060 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(96,96,128,0.3); animation: lsp-eye 5s ease-in-out infinite; }
.scn-limbo-strange-place .eye::after { content:''; position:absolute; top:20%; left:20%; width:60%; height:60%; background: radial-gradient(circle, #202040 0%, #000010 100%); border-radius:50%; }
.scn-limbo-strange-place .tentacle { position:absolute; bottom:0; left:30%; width:8%; height:50%; background: linear-gradient(180deg, #3a2a4a 0%, #1a0a2a 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom center; animation: lsp-tentacle 7s ease-in-out infinite; }
.scn-limbo-strange-place .vortex { position:absolute; top:50%; left:50%; width:60%; height:60%; transform:translate(-50%,-50%); background: radial-gradient(ellipse at 50% 50%, #2a1a3a 0%, transparent 60%); border-radius:50%; animation: lsp-vortex 20s linear infinite; }
@keyframes lsp-shade { 0% { opacity:0.4; transform:scale(0.9) rotate(0deg) } 50% { opacity:0.8; transform:scale(1.05) rotate(5deg) } 100% { opacity:0.3; transform:scale(0.85) rotate(-5deg) } }
@keyframes lsp-eye { 0%,100% { transform:scale(1); opacity:0.6 } 50% { transform:scale(1.2); opacity:1 } }
@keyframes lsp-tentacle { 0% { transform:rotate(5deg) } 25% { transform:rotate(-5deg) translateY(-5px) } 50% { transform:rotate(3deg) translateY(-10px) } 75% { transform:rotate(-3deg) translateY(-5px) } 100% { transform:rotate(5deg) } }
@keyframes lsp-vortex { 0% { transform:translate(-50%,-50%) rotate(0deg) } 100% { transform:translate(-50%,-50%) rotate(360deg) } }

/* ============================================================
   Scene: limbo-statue-eyeless  (prefix: lse-)
   mood dark, lighting moonlight — cool blues, silvers, deep shadows
   ============================================================ */

.scn-limbo-statue-eyeless {
  background:
    linear-gradient(180deg, #0b0e1a 0%, #141c30 40%, #1a2a44 70%, #0f1a28 100%),
    radial-gradient(ellipse at 50% 30%, #2a3a5a 0%, transparent 70%);
}
.scn-limbo-statue-eyeless .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a2a44 0%, transparent 100%);
  animation: lse-sky 15s ease-in-out infinite alternate;
}
.scn-limbo-statue-eyeless .moon {
  position: absolute; top: 12%; left: 55%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #e6e6fa 0%, #b0c4de 70%, #6a7a9a 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px #b0c4de, 0 0 80px 24px rgba(176,196,222,0.3);
  animation: lse-moon 20s ease-in-out infinite alternate;
}
.scn-limbo-statue-eyeless .moon-glow {
  position: absolute; top: 4%; left: 46%;
  width: 90px; height: 90px;
  background: radial-gradient(circle, rgba(176,196,222,0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: lse-glow 8s ease-in-out infinite alternate;
}
.scn-limbo-statue-eyeless .cloud-a {
  position: absolute; top: 18%; left: 10%;
  width: 100px; height: 20px;
  background: linear-gradient(90deg, rgba(200,210,230,0.25) 0%, rgba(200,210,230,0.05) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: lse-drift-a 45s linear infinite;
}
.scn-limbo-statue-eyeless .cloud-b {
  position: absolute; top: 26%; right: 8%;
  width: 70px; height: 14px;
  background: linear-gradient(90deg, rgba(200,210,230,0.15) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: lse-drift-b 60s linear infinite reverse;
}
.scn-limbo-statue-eyeless .statue {
  position: absolute; bottom: 30%; left: 40%;
  width: 50px; height: 110px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 60%, #0e0e1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  /* Profile: head and shoulders facing right */
  transform: rotate(2deg) scaleX(-1); /* flip to face moon */
  animation: lse-statue 12s ease-in-out infinite;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6), inset 0 -4px 8px rgba(255,255,255,0.05);
}
/* Left side cut-out for eyeless face (silhouette) */
.scn-limbo-statue-eyeless .statue::before {
  content: '';
  position: absolute; top: 10%; left: 55%;
  width: 12px; height: 16px;
  background: #0b0e1a;
  border-radius: 50% 50% 0 0;
}
.scn-limbo-statue-eyeless .statue-base {
  position: absolute; bottom: 26%; left: 35%;
  width: 80px; height: 20px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 6px 14px rgba(0,0,0,0.5);
  animation: lse-base 4s ease-in-out infinite;
}
.scn-limbo-statue-eyeless .ground {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 28%;
  background: linear-gradient(180deg, #0e1a24 0%, #060c14 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  animation: lse-ground 20s ease-in-out infinite alternate;
}

@keyframes lse-sky    { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes lse-moon   { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(2px, -4px) scale(1.02); } 100% { transform: translate(0,0) scale(0.98); } }
@keyframes lse-glow   { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes lse-drift-a{ 0% { transform: translateX(-40px); } 100% { transform: translateX(110vw); } }
@keyframes lse-drift-b{ 0% { transform: translateX(0); } 100% { transform: translateX(-130vw); } }
@keyframes lse-statue { 0%,100% { transform: rotate(2deg) scaleX(-1) translateY(0); } 50% { transform: rotate(1deg) scaleX(-1) translateY(-2px); } }
@keyframes lse-base   { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes lse-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }

/* ============================================================
   Scene: limbo-negation  (prefix: ln-)
   mood dark, lighting dark — deep blacks, purples, negative space
   ============================================================ */

.scn-limbo-negation {
  background:
    linear-gradient(180deg, #020208 0%, #0a0a1a 30%, #1a0a2a 70%, #020208 100%),
    radial-gradient(ellipse at 50% 50%, #0a0a1a 0%, transparent 80%);
}
.scn-limbo-negation .void {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 40%, #1a1030 0%, transparent 60%);
  animation: ln-void 25s ease-in-out infinite alternate;
}
.scn-limbo-negation .vortex {
  position: absolute; top: 30%; left: 50%;
  width: 140px; height: 140px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #2a1a4a 0%, #0e0a1e 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(42,26,74,0.4);
  animation: ln-vortex 12s linear infinite;
}
.scn-limbo-negation .neg-eye {
  position: absolute; top: 42%; left: 50%;
  width: 30px; height: 30px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #0a0015 0%, #1a1030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 0 2px rgba(100,80,150,0.3), 0 0 30px 8px rgba(80,60,120,0.2);
  animation: ln-eye 6s ease-in-out infinite alternate;
}
.scn-limbo-negation .figure-shrink {
  position: absolute; bottom: 25%; left: 48%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1028 0%, #0a0615 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ln-figure 8s ease-in-out infinite;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.8);
}
.scn-limbo-negation .shadow-floor {
  position: absolute; bottom: 16%; left: 30%; right: 30%;
  height: 30px;
  background: radial-gradient(ellipse, #0a0615 0%, transparent 70%);
  animation: ln-shadow 8s ease-in-out infinite alternate;
}
.scn-limbo-negation .particle {
  position: absolute;
  width: 4px; height: 4px;
  background: rgba(120,100,180,0.2);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-limbo-negation .particle.a {
  top: 20%; left: 30%;
  animation: ln-part-a 18s linear infinite;
}
.scn-limbo-negation .particle.b {
  top: 35%; right: 25%;
  animation: ln-part-b 22s linear infinite reverse;
}

@keyframes ln-void    { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ln-vortex  { 0% { transform: translate(-50%, -50%) rotate(0deg) scale(1); } 50% { transform: translate(-50%, -50%) rotate(180deg) scale(1.02); } 100% { transform: translate(-50%, -50%) rotate(360deg) scale(0.98); } }
@keyframes ln-eye     { 0% { box-shadow: 0 0 0 2px rgba(100,80,150,0.3), 0 0 30px 8px rgba(80,60,120,0.2); transform: translate(-50%,-50%) scale(1); } 50% { box-shadow: 0 0 0 4px rgba(120,100,180,0.5), 0 0 50px 12px rgba(100,80,160,0.3); transform: translate(-50%,-50%) scale(1.1); } 100% { box-shadow: 0 0 0 1px rgba(80,60,120,0.2), 0 0 20px 4px rgba(60,40,100,0.15); transform: translate(-50%,-50%) scale(0.9); } }
@keyframes ln-figure  { 0% { transform: translateY(0) scaleY(1); opacity:0.9; } 25% { transform: translateY(-2px) scaleY(0.97); opacity:0.8; } 50% { transform: translateY(0) scaleY(0.95); opacity:0.7; } 75% { transform: translateY(1px) scaleY(0.92); opacity:0.6; } 100% { transform: translateY(0) scaleY(0.9); opacity:0.5; } }
@keyframes ln-shadow { 0% { transform: scaleX(1) scaleY(1); opacity:0.3; } 50% { transform: scaleX(0.8) scaleY(0.7); opacity:0.15; } 100% { transform: scaleX(1) scaleY(1); opacity:0.3; } }
@keyframes ln-part-a { 0% { transform: translate(0,0) scale(1); opacity:0.2; } 50% { transform: translate(30px, -20px) scale(1.5); opacity:0.5; } 100% { transform: translate(60px, -40px) scale(2); opacity:0; } }
@keyframes ln-part-b { 0% { transform: translate(0,0) scale(1); opacity:0.3; } 50% { transform: translate(-20px, 15px) scale(1.2); opacity:0.6; } 100% { transform: translate(-40px, 30px) scale(0.8); opacity:0; } }

/* ============================================================
   Scene: ne-plus-ultra-solitude  (prefix: npu-)
   mood dark, lighting dark — deep charcoal, faint purple, scorpion rod
   ============================================================ */

.scn-ne-plus-ultra-solitude {
  background:
    linear-gradient(180deg, #06060c 0%, #12101e 40%, #1a1428 70%, #0a0812 100%),
    radial-gradient(ellipse at 50% 20%, #1a1428 0%, transparent 70%);
}
.scn-ne-plus-ultra-solitude .night-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0c0c1a 0%, #12101e 40%, transparent 100%);
  animation: npu-sky 20s ease-in-out infinite alternate;
}
.scn-ne-plus-ultra-solitude .stars {
  position: absolute; inset: 0;
  background-image:
    radial-gradient(1px 1px at 20% 10%, rgba(200,180,220,0.6), transparent),
    radial-gradient(1px 1px at 40% 8%, rgba(200,180,220,0.4), transparent),
    radial-gradient(1.5px 1.5px at 60% 14%, rgba(200,180,220,0.5), transparent),
    radial-gradient(1px 1px at 80% 5%, rgba(200,180,220,0.3), transparent),
    radial-gradient(1px 1px at 15% 22%, rgba(200,180,220,0.4), transparent),
    radial-gradient(1.5px 1.5px at 70% 18%, rgba(200,180,220,0.5), transparent);
  animation: npu-stars 40s linear infinite;
}
.scn-ne-plus-ultra-solitude .scorpion-rod {
  position: absolute; bottom: 32%; left: 50%;
  width: 16px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1428 0%, #2a2040 30%, #0e0a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7), inset 0 0 10px rgba(80,60,120,0.2);
  animation: npu-rod 8s ease-in-out infinite;
}
/* Scorpion tail curve (using pseudo-element for curved upper part) */
.scn-ne-plus-ultra-solitude .scorpion-rod::before {
  content: '';
  position: absolute; top: -20px; left: 50%;
  width: 30px; height: 30px;
  background: radial-gradient(circle at 50% 100%, #1a1428 0%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%) rotate(30deg);
  box-shadow: 0 -6px 12px rgba(0,0,0,0.5);
}
.scn-ne-plus-ultra-solitude .shadow-cast {
  position: absolute; bottom: 18%; left: 30%; right: 30%;
  height: 40px;
  background: radial-gradient(ellipse, #0a0812 0%, transparent 80%);
  animation: npu-shadow 8s ease-in-out infinite alternate;
}
.scn-ne-plus-ultra-solitude .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 20%;
  background: linear-gradient(180deg, #0a0812 0%, #040306 100%);
  border-radius: 30% 70% 0 0 / 50% 90% 0 0;
}
.scn-ne-plus-ultra-solitude .glint {
  position: absolute; top: 18%; left: 46%;
  width: 6px; height: 6px;
  background: radial-gradient(circle, #e0d0f0 0%, rgba(200,180,220,0.3) 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,180,220,0.4);
  animation: npu-glint 5s ease-in-out infinite alternate;
}

@keyframes npu-sky    { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes npu-stars  { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes npu-rod    { 0%,100% { transform: translateX(-50%) rotate(0deg) translateY(0); } 25% { transform: translateX(-50%) rotate(1deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(0deg) translateY(-1px); } 75% { transform: translateX(-50%) rotate(-1deg) translateY(-2px); } }
@keyframes npu-shadow { 0% { transform: scaleX(1) scaleY(1); opacity:0.4; } 50% { transform: scaleX(0.9) scaleY(0.8); opacity:0.2; } 100% { transform: scaleX(1) scaleY(1); opacity:0.4; } }
@keyframes npu-glint  { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:1; transform: scale(1.4); } 100% { opacity:0.5; transform: scale(0.8); } }

/* ============================================================
   Scene: knights-tomb-saga  (prefix: kts-)
   mood calm, lighting overcast — muted greens, grays, browns
   ============================================================ */

.scn-knights-tomb-saga {
  background:
    linear-gradient(180deg, #7a8a78 0%, #5a6a58 40%, #3a4a38 70%, #2a3a28 100%),
    radial-gradient(ellipse at 50% 100%, #4a5a48 0%, transparent 70%);
}
.scn-knights-tomb-saga .overcast-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #8a9a88 0%, #6a7a68 60%, transparent 100%);
  animation: kts-sky 18s ease-in-out infinite alternate;
}
.scn-knights-tomb-saga .hill {
  position: absolute; bottom: 35%; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(180deg, #4a5a48 0%, #2a3a28 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 6px 18px rgba(0,0,0,0.3);
  animation: kts-hill 20s ease-in-out infinite alternate;
}
.scn-knights-tomb-saga .spring {
  position: absolute; bottom: 28%; left: 30%;
  width: 80px; height: 30px;
  background: radial-gradient(ellipse, #7a9a7a 0%, #4a6a4a 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: kts-spring 8s ease-in-out infinite alternate;
}
.scn-knights-tomb-saga .tombstone {
  position: absolute; bottom: 32%; left: 50%;
  width: 40px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4), inset 0 -4px 8px rgba(255,255,255,0.1);
  animation: kts-tomb 10s ease-in-out infinite;
}
/* Subtle carving line on tombstone */
.scn-knights-tomb-saga .tombstone::before {
  content: '';
  position: absolute; top: 20%; left: 20%; right: 20%;
  height: 4px;
  background: rgba(0,0,0,0.2);
  border-radius: 2px;
}
.scn-knights-tomb-saga .birch-tree {
  position: absolute; bottom: 38%; left: 30%;
  width: 12px; height: 100px;
  background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: kts-birch 12s ease-in-out infinite;
}
/* Branches */
.scn-knights-tomb-saga .birch-tree::before,
.scn-knights-tomb-saga .birch-tree::after {
  content: '';
  position: absolute; top: 20%;
  width: 40px; height: 6px;
  background: #8a7a6a;
  border-radius: 50% 50% 0 0;
}
.scn-knights-tomb-saga .birch-tree::before {
  left: -20px; transform: rotate(-30deg);
  top: 25%;
}
.scn-knights-tomb-saga .birch-tree::after {
  right: -20px; transform: rotate(30deg);
  top: 15%;
}
.scn-knights-tomb-saga .leaves-fall {
  position: absolute; top: 10%; left: 20%;
  width: 8px; height: 8px;
  background: rgba(100,120,80,0.4);
  border-radius: 50% 0 50% 0;
  filter: blur(2px);
  animation: kts-leaf 15s linear infinite;
}
.scn-knights-tomb-saga .grass {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(180deg, #3a5a38 0%, #1a2a18 100%);
  border-radius: 20% 80% 0 0 / 30% 50% 0 0;
  animation: kts-grass 25s ease-in-out infinite alternate;
}

@keyframes kts-sky    { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes kts-hill   { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes kts-spring { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.02); } 100% { opacity:0.6; transform: scale(0.98); } }
@keyframes kts-tomb   { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes kts-birch  { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes kts-leaf   { 0% { transform: translate(0,0) rotate(0deg); opacity:0.4; } 50% { transform: translate(20px, 80px) rotate(180deg); opacity:0.6; } 100% { transform: translate(40px, 160px) rotate(360deg); opacity:0; } }
@keyframes kts-grass  { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }

.scn-happy-husband-intro {
  background:
    linear-gradient(180deg, #2a2018 0%, #3d2e22 40%, #2a1f16 100%),
    radial-gradient(ellipse at 50% 100%, #4a3828 0%, transparent 70%);
}
.scn-happy-husband-intro .wall   { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); animation: hhi-wall 18s ease-in-out infinite alternate; }
.scn-happy-husband-intro .floor  { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a1c10 0%, #1a100a 100%); transform: perspective(800px) rotateX(10deg); animation: hhi-floor 20s ease-in-out infinite alternate; }
.scn-happy-husband-intro .window { position:absolute; top:12%; right:15%; width:28%; height:40%; background: linear-gradient(135deg, #6a6a7a 0%, #4a4a5a 100%); border-radius: 6% / 4% 4% 6% 6%; box-shadow: inset 0 0 20px #2a2a3a; animation: hhi-window 12s ease-in-out infinite alternate; }
.scn-happy-husband-intro .curtain{ position:absolute; top:10%; right:38%; width:18%; height:45%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 0 60% 60% 0 / 0 50% 50% 0; transform-origin: right center; animation: hhi-curtain 8s ease-in-out infinite alternate; }
.scn-happy-husband-intro .table  { position:absolute; bottom:22%; left:25%; width:40%; height:10%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-happy-husband-intro .candle { position:absolute; bottom:30%; left:40%; width:4%; height:12%; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 30% 30% 10% 10%; animation: hhi-candle 3s ease-in-out infinite alternate; }
.scn-happy-husband-intro .figure { position:absolute; bottom:25%; left:20%; width:20%; height:40%; background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hhi-figure 6s ease-in-out infinite; }
.scn-happy-husband-intro .book   { position:absolute; bottom:28%; left:28%; width:12%; height:6%; background: linear-gradient(135deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 4% 4% 2% 2%; transform: rotate(-5deg); animation: hhi-book 10s ease-in-out infinite; }

@keyframes hhi-wall   { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes hhi-floor  { 0% { transform: perspective(800px) rotateX(10deg) translateY(0) } 50% { transform: perspective(800px) rotateX(10deg) translateY(-2px) } 100% { transform: perspective(800px) rotateX(10deg) translateY(0) } }
@keyframes hhi-window { 0% { opacity:.6; box-shadow: inset 0 0 20px #2a2a3a } 50% { opacity:.8; box-shadow: inset 0 0 30px #4a4a5a } 100% { opacity:.7; box-shadow: inset 0 0 25px #3a3a4a } }
@keyframes hhi-curtain{ 0% { transform: scaleX(1) } 50% { transform: scaleX(.95) } 100% { transform: scaleX(1.02) } }
@keyframes hhi-candle { 0% { box-shadow: 0 0 12px 4px #c8a060, 0 0 24px 8px rgba(200,160,96,.4); opacity:.9 } 50% { box-shadow: 0 0 20px 8px #e0b070, 0 0 40px 16px rgba(224,176,112,.6); opacity:1 } 100% { box-shadow: 0 0 14px 5px #c8a060, 0 0 28px 10px rgba(200,160,96,.5); opacity:.85 } }
@keyframes hhi-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes hhi-book   { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }

.scn-happy-husband-variants {
  background:
    linear-gradient(180deg, #1e1814 0%, #2a221e 50%, #1a1410 100%),
    radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 60%);
}
.scn-happy-husband-variants .desk   { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); transform: perspective(600px) rotateX(15deg); animation: hhv-desk 20s ease-in-out infinite alternate; }
.scn-happy-husband-variants .lamp   { position:absolute; bottom:50%; left:15%; width:12%; height:25%; background: radial-gradient(ellipse at 50% 100%, #c8a060 0%, #8a6a3a 70%, #4a3a1a 100%); border-radius: 50% 50% 0 0; animation: hhv-lamp 5s ease-in-out infinite alternate; }
.scn-happy-husband-variants .paper  { position:absolute; bottom:25%; left:30%; width:35%; height:18%; background: linear-gradient(135deg, #e8d8b8 0%, #d0c0a0 100%); border-radius: 2%; transform: rotate(-3deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: hhv-paper 15s ease-in-out infinite; }
.scn-happy-husband-variants .inkwell{ position:absolute; bottom:32%; left:70%; width:8%; height:8%; background: radial-gradient(circle, #2a1a1a 0%, #0a0808 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-happy-husband-variants .quill  { position:absolute; bottom:38%; left:72%; width:2%; height:20%; background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%); border-radius: 50% 50% 20% 20% / 40% 40% 10% 10%; transform: rotate(15deg); transform-origin: bottom center; animation: hhv-quill 4s ease-in-out infinite; }
.scn-happy-husband-variants .hand   { position:absolute; bottom:30%; left:40%; width:15%; height:20%; background: linear-gradient(180deg, #c8a888 0%, #a08060 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom left; animation: hhv-hand 6s ease-in-out infinite; }
.scn-happy-husband-variants .shadow { position:absolute; bottom:20%; left:25%; width:50%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%); animation: hhv-shadow 18s ease-in-out infinite alternate; }

@keyframes hhv-desk   { 0% { transform: perspective(600px) rotateX(15deg) translateY(0) } 50% { transform: perspective(600px) rotateX(15deg) translateY(-2px) } 100% { transform: perspective(600px) rotateX(15deg) translateY(0) } }
@keyframes hhv-lamp   { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.9; transform: scale(.98) } }
@keyframes hhv-paper  { 0% { transform: rotate(-3deg) translateY(0) } 25% { transform: rotate(-2deg) translateY(-1px) } 50% { transform: rotate(-4deg) translateY(0) } 75% { transform: rotate(-3deg) translateY(-1px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes hhv-quill  { 0% { transform: rotate(15deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(15deg) } }
@keyframes hhv-hand   { 0% { transform: translate(0,0) rotate(0) } 25% { transform: translate(2px,-2px) rotate(3deg) } 50% { transform: translate(4px,0) rotate(0) } 75% { transform: translate(2px,-1px) rotate(-2deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes hhv-shadow { 0% { opacity:.2 } 50% { opacity:.4 } 100% { opacity:.25 } }

.scn-pains-of-sleep-intro {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #14141e 40%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a4a 0%, transparent 70%);
}
.scn-pains-of-sleep-intro .bg-dark   { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 30%, #1e1e30 0%, #0a0a14 100%); animation: psi-bg 30s ease-in-out infinite alternate; }
.scn-pains-of-sleep-intro .bed       { position:absolute; bottom:5%; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #2a222a 0%, #1a121a 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 10px 20px rgba(0,0,0,.6), 0 4px 8px rgba(0,0,0,.5); }
.scn-pains-of-sleep-intro .pillow    { position:absolute; bottom:42%; left:20%; width:30%; height:15%; background: linear-gradient(180deg, #3a323a 0%, #2a222a 100%); border-radius: 40% 40% 20% 20%; animation: psi-pillow 14s ease-in-out infinite alternate; }
.scn-pains-of-sleep-intro .figure    { position:absolute; bottom:35%; left:20%; width:30%; height:30%; background: linear-gradient(180deg, #1a141a 0%, #0a080a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: psi-figure 6s ease-in-out infinite; }
.scn-pains-of-sleep-intro .hands     { position:absolute; bottom:48%; left:28%; width:10%; height:8%; background: linear-gradient(180deg, #2a222a 0%, #1a121a 100%); border-radius: 50% 50% 20% 20%; animation: psi-hands 4s ease-in-out infinite alternate; }
.scn-pains-of-sleep-intro .shadow-form{ position:absolute; top:10%; right:10%; width:20%; height:40%; background: radial-gradient(ellipse, #0a0a1a 0%, transparent 100%); animation: psi-shadow 10s ease-in-out infinite alternate; }
.scn-pains-of-sleep-intro .light-shaft{ position:absolute; top:0; left:15%; width:15%; height:60%; background: linear-gradient(180deg, rgba(180,180,220,.15) 0%, transparent 100%); transform: skewX(-5deg); animation: psi-light 20s ease-in-out infinite alternate; }

@keyframes psi-bg      { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes psi-pillow  { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.03) translateY(-3px) } 100% { transform: scale(.98) translateY(0) } }
@keyframes psi-figure  { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes psi-hands   { 0% { transform: scale(.9) rotate(-5deg) translate(0,0) } 50% { transform: scale(1.1) rotate(5deg) translate(2px,-1px) } 100% { transform: scale(.95) rotate(0) translate(0,0) } }
@keyframes psi-shadow  { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.2) } 100% { opacity:.4; transform: scale(.9) } }
@keyframes psi-light   { 0% { opacity:.1 } 50% { opacity:.3 } 100% { opacity:.15 } }

.scn-pains-of-sleep-body {
  background:
    linear-gradient(180deg, #0a080a 0%, #140e12 50%, #1a1016 100%),
    radial-gradient(ellipse at 40% 30%, #2a1820 0%, transparent 60%);
}
.scn-pains-of-sleep-body .bg-night    { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, #1a121a 0%, #080408 100%); animation: psb-bg 30s ease-in-out infinite alternate; }
.scn-pains-of-sleep-body .figure-up   { position:absolute; bottom:25%; left:20%; width:30%; height:35%; background: linear-gradient(180deg, #1a141a 0%, #0a080a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: psb-figure 3s ease-in-out infinite; }
.scn-pains-of-sleep-body .head        { position:absolute; bottom:48%; left:28%; width:15%; height:12%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50%; animation: psb-head 4s ease-in-out infinite alternate; }
.scn-pains-of-sleep-body .mouth       { position:absolute; bottom:45%; left:33%; width:6%; height:4%; background: radial-gradient(circle, #0a0204 0%, #1a040a 100%); border-radius: 50%; box-shadow: 0 0 4px 2px rgba(0,0,0,.6); animation: psb-mouth 2s ease-in-out infinite; }
.scn-pains-of-sleep-body .arms        { position:absolute; bottom:28%; left:15%; width:8%; height:30%; background: linear-gradient(180deg, #1a141a 0%, #0a080a 100%); border-radius: 30% 30% 50% 50%; transform-origin: bottom center; animation: psb-arms 5s ease-in-out infinite; }
.scn-pains-of-sleep-body .fiend-shadow{ position:absolute; top:5%; left:45%; width:40%; height:50%; background: radial-gradient(ellipse, #2a101a 0%, transparent 100%); animation: psb-fiend 12s ease-in-out infinite alternate; }
.scn-pains-of-sleep-body .sweat       { position:absolute; bottom:50%; left:32%; width:2%; height:2%; background: radial-gradient(circle, #4a3a4a 0%, transparent 100%); border-radius:50%; animation: psb-sweat 3s ease-in-out infinite; }

@keyframes psb-bg      { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes psb-figure  { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-5px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes psb-head    { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes psb-mouth   { 0% { transform: scale(1) } 50% { transform: scale(1.4) } 100% { transform: scale(1) } }
@keyframes psb-arms    { 0% { transform: rotate(0) } 25% { transform: rotate(10deg) } 50% { transform: rotate(-10deg) } 75% { transform: rotate(15deg) } 100% { transform: rotate(0) } }
@keyframes psb-fiend   { 0% { opacity:.1; transform: scale(1) translate(0,0) } 50% { opacity:.4; transform: scale(1.2) translate(10px,-5px) } 100% { opacity:.2; transform: scale(.9) translate(-5px,10px) } }
@keyframes psb-sweat   { 0% { opacity:0; transform: translate(0,0) } 50% { opacity:.8; transform: translate(2px,-3px) } 100% { opacity:0; transform: translate(5px,-8px) } }

.scn-visionary-hope-sad-lot {
  background:
    linear-gradient(180deg, #0a0a14 0%, #1a1a2e 40%, #0e0e1a 100%),
    radial-gradient(ellipse at 30% 60%, #1b1b30 0%, transparent 70%);
}
.scn-visionary-hope-sad-lot .bg-deep {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #121224 0%, transparent 100%);
}
.scn-visionary-hope-sad-lot .wall-left {
  position: absolute; top: 0; left: 0; width: 35%; height: 100%;
  background: linear-gradient(90deg, #14142a 0%, #1a1a30 100%);
  border-right: 1px solid #2a2a44;
}
.scn-visionary-hope-sad-lot .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a30 0%, #0c0c1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-visionary-hope-sad-lot .figure {
  position: absolute; bottom: 18%; left: 45%; width: 32px; height: 48px;
  background: linear-gradient(180deg, #1e1e38 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vhs-breathe 4s ease-in-out infinite;
}
.scn-visionary-hope-sad-lot .candle-out {
  position: absolute; bottom: 23%; left: 55%; width: 10px; height: 28px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a28 100%);
  border-radius: 4px 4px 2px 2px;
}
.scn-visionary-hope-sad-lot .candle-out::before {
  content: ''; position: absolute; top: -4px; left: 2px; width: 6px; height: 6px;
  background: #1a1a28; border-radius: 50%;
}
.scn-visionary-hope-sad-lot .window {
  position: absolute; top: 15%; right: 20%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #0a0a14 0%, #14142a 100%);
  border: 2px solid #2a2a44;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.8);
}
.scn-visionary-hope-sad-lot .window::after {
  content: ''; position: absolute; top: 10%; left: 10%; width: 3px; height: 3px;
  background: #2a2a4a; border-radius: 50%;
  animation: vhs-star 8s ease-in-out infinite alternate;
}
.scn-visionary-hope-sad-lot .dust-mote {
  position: absolute; top: 40%; left: 30%; width: 2px; height: 2px;
  background: rgba(255,255,255,.02); border-radius: 50%;
  animation: vhs-drift 15s linear infinite;
}
@keyframes vhs-breathe {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes vhs-star {
  0% { opacity: 0.1; box-shadow: 0 0 4px rgba(255,255,255,0); }
  100% { opacity: 0.4; box-shadow: 0 0 8px rgba(255,255,255,0.2); }
}
@keyframes vhs-drift {
  0% { transform: translate(0, 0); opacity: 0; }
  10% { opacity: 0.3; }
  90% { opacity: 0.1; }
  100% { transform: translate(80px, -50px); opacity: 0; }
}

/* second scene */

.scn-visionary-hope-one-wish {
  background:
    linear-gradient(180deg, #0e0e1e 0%, #1a1a34 50%, #0c0c1a 100%),
    radial-gradient(ellipse at 50% 70%, #2a1a3a 0%, transparent 70%);
}
.scn-visionary-hope-one-wish .bg-deep {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #141428 0%, transparent 100%);
}
.scn-visionary-hope-one-wish .wall-right {
  position: absolute; top: 0; right: 0; width: 40%; height: 100%;
  background: linear-gradient(270deg, #12122a 0%, #1e1e36 100%);
  border-left: 1px solid #2a2a46;
}
.scn-visionary-hope-one-wish .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a30 0%, #0c0c1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-visionary-hope-one-wish .figure-kneel {
  position: absolute; bottom: 16%; left: 42%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #20203c 0%, #0e0e1c 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: vho-reach 6s ease-in-out infinite alternate;
}
.scn-visionary-hope-one-wish .candle-lit {
  position: absolute; bottom: 20%; left: 52%; width: 12px; height: 32px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 4px;
}
.scn-visionary-hope-one-wish .candle-lit::after {
  content: ''; position: absolute; top: -8px; left: 2px; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd060 0%, #d08020 60%, transparent 100%);
  border-radius: 50% 50% 40% 40%;
  animation: vho-flame 1.2s ease-in-out infinite alternate;
}
.scn-visionary-hope-one-wish .glow-hope {
  position: absolute; bottom: 18%; left: 48%; width: 60px; height: 80px;
  background: radial-gradient(circle, rgba(255,200,80,.25) 0%, rgba(200,100,20,.1) 40%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
  animation: vho-glow 3s ease-in-out infinite alternate;
}
.scn-visionary-hope-one-wish .book {
  position: absolute; bottom: 14%; left: 55%; width: 28px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: vho-bookdrift 8s ease-in-out infinite;
}
@keyframes vho-reach {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(6px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes vho-flame {
  0% { transform: scaleY(1) translateY(0); opacity: .9; }
  50% { transform: scaleY(1.15) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(.95) translateY(1px); opacity: .85; }
}
@keyframes vho-glow {
  0% { transform: scale(1); opacity: .3; }
  50% { transform: scale(1.1); opacity: .6; }
  100% { transform: scale(1); opacity: .35; }
}
@keyframes vho-bookdrift {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}

/* third scene */

.scn-epitaph-infant-sweet-babe {
  background:
    linear-gradient(180deg, #251510 0%, #3a2a1e 40%, #1a0e0a 100%),
    radial-gradient(ellipse at 60% 80%, #4a3422 0%, transparent 70%);
}
.scn-epitaph-infant-sweet-babe .bg-warm {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1a12 0%, transparent 100%);
}
.scn-epitaph-infant-sweet-babe .wall-cradle {
  position: absolute; bottom: 25%; left: 10%; width: 80%; height: 60%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a0e0a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-epitaph-infant-sweet-babe .floor-wood {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: repeating-linear-gradient(90deg, #2a1a10 0px, #2a1a10 8px, #1a0e08 8px, #1a0e08 16px);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-epitaph-infant-sweet-babe .cradle {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: eis-rock 6s ease-in-out infinite;
}
.scn-epitaph-infant-sweet-babe .baby-swaddled {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 18px;
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a088 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,.2);
  animation: eis-breathe 3s ease-in-out infinite;
}
.scn-epitaph-infant-sweet-babe .mother-bent {
  position: absolute; bottom: 24%; left: 38%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a0e0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: eis-bend 5s ease-in-out infinite alternate;
}
.scn-epitaph-infant-sweet-babe .candle-warm {
  position: absolute; bottom: 22%; left: 62%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 3px;
}
.scn-epitaph-infant-sweet-babe .candle-warm::after {
  content: ''; position: absolute; top: -6px; left: 1px; width: 6px; height: 10px;
  background: radial-gradient(circle, #ffd060 0%, #c08020 60%, transparent 100%);
  border-radius: 50%;
  animation: eis-flame 1.5s ease-in-out infinite alternate;
}
.scn-epitaph-infant-sweet-babe .halo-glow {
  position: absolute; bottom: 30%; left: 45%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(255,220,150,.2) 0%, rgba(200,150,80,.05) 40%, transparent 60%);
  border-radius: 50%;
  pointer-events: none;
  animation: eis-pulse 4s ease-in-out infinite alternate;
}
@keyframes eis-rock {
  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 eis-breathe {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(1); }
}
@keyframes eis-bend {
  0% { transform: translateX(0) rotate(-5deg); }
  100% { transform: translateX(3px) rotate(5deg); }
}
@keyframes eis-flame {
  0% { transform: scaleY(1) translateY(0); opacity: .9; }
  50% { transform: scaleY(1.2) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(.9) translateY(1px); opacity: .8; }
}
@keyframes eis-pulse {
  0% { transform: scale(1); opacity: .3; }
  100% { transform: scale(1.15); opacity: .5; }
}

/* fourth scene */

.scn-cradle-hymn-editorial {
  background:
    linear-gradient(180deg, #2a1a12 0%, #3a2a1e 40%, #1a0e0a 100%),
    radial-gradient(ellipse at 50% 30%, #4a3422 0%, transparent 70%);
}
.scn-cradle-hymn-editorial .bg-warm-deep {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a0e0a 0%, transparent 100%);
}
.scn-cradle-hymn-editorial .wall-icon {
  position: absolute; top: 0; left: 20%; width: 60%; height: 80%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 0 0 10% 10%;
}
.scn-cradle-hymn-editorial .floor-stone {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, #3a2a1e 0px, #3a2a1e 10px, #2a1a12 10px, #2a1a12 20px);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-cradle-hymn-editorial .cradle {
  position: absolute; bottom: 16%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 45px;
  background: linear-gradient(180deg, #6a4a32 0%, #4a2e1c 100%);
  border-radius: 25% 25% 8% 8% / 35% 35% 15% 15%;
  box-shadow: 0 4px 10px rgba(0,0,0,.4);
  animation: che-rock 7s ease-in-out infinite;
}
.scn-cradle-hymn-editorial .baby-sleep {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 18px; height: 16px;
  background: linear-gradient(180deg, #e0c8b0 0%, #b8a088 100%);
  border-radius: 50% 50% 40% 40%;
  animation: che-sleep 4s ease-in-out infinite;
}
.scn-cradle-hymn-editorial .hymn-book {
  position: absolute; bottom: 12%; right: 30%; width: 20px; height: 16px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  animation: che-page 10s ease-in-out infinite alternate;
}
.scn-cradle-hymn-editorial .cross-dim {
  position: absolute; top: 10%; left: 45%; width: 4px; height: 40px;
  background: #5a3a2a;
  border-radius: 2px;
}
.scn-cradle-hymn-editorial .cross-dim::after {
  content: ''; position: absolute; top: 10px; left: -10px; width: 24px; height: 4px;
  background: #5a3a2a; border-radius: 2px;
}
.scn-cradle-hymn-editorial .candle-duo {
  position: absolute; bottom: 14%; left: 60%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 3px;
}
.scn-cradle-hymn-editorial .candle-duo::after {
  content: ''; position: absolute; top: -4px; left: 0; width: 6px; height: 8px;
  background: radial-gradient(circle, #ffd060 0%, #c08020 60%, transparent 100%);
  border-radius: 50%;
  animation: che-flame 2s ease-in-out infinite alternate;
}
.scn-cradle-hymn-editorial .stain-glass {
  position: absolute; top: 5%; right: 15%; width: 30px; height: 50px;
  background: linear-gradient(135deg, #1a3a4a 0%, #2a4a5a 30%, #1a2a3a 100%);
  border: 2px solid #5a4a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(255,200,100,.3);
  animation: che-glass 12s ease-in-out infinite alternate;
}
@keyframes che-rock {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-1.5deg); }
  75% { transform: translateX(-50%) rotate(1.5deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes che-sleep {
  0% { transform: scale(1); }
  50% { transform: scale(1.04); }
  100% { transform: scale(1); }
}
@keyframes che-page {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-1px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes che-flame {
  0% { transform: scaleY(1) translateY(0); opacity: .9; }
  50% { transform: scaleY(1.3) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(.85) translateY(1px); opacity: .85; }
}
@keyframes che-glass {
  0% { opacity: .6; box-shadow: inset 0 0 10px rgba(255,200,100,.2); }
  50% { opacity: .9; box-shadow: inset 0 0 20px rgba(255,200,100,.4); }
  100% { opacity: .7; box-shadow: inset 0 0 10px rgba(255,200,100,.3); }
}

/* mad-monk-variant-stanzas – bright interior, technical mood */

.scn-mad-monk-variant-stanzas {
  background: linear-gradient(135deg, #2a1e14 0%, #3a2a1a 40%, #4a3a2a 100%),
              radial-gradient(ellipse at 40% 60%, #6a5a3a 0%, transparent 60%);
}
.scn-mad-monk-variant-stanzas .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1e14 0%, #1a120e 100%);
  animation: mbv-flicker 8s ease-in-out infinite alternate;
}
.scn-mad-monk-variant-stanzas .desk {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-mad-monk-variant-stanzas .lamp-glow {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 80px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle at 50% 80%, #ffd080 0%, #c08040 30%, #6a3a1a 60%, transparent 70%);
  border-radius: 50% 50% 10% 10%; box-shadow: 0 0 60px 20px #c08040, 0 0 120px 40px rgba(192,128,64,0.3);
  animation: mbv-glow 4s ease-in-out infinite alternate;
}
.scn-mad-monk-variant-stanzas .book {
  position: absolute; bottom: 6%; left: 32%; width: 80px; height: 12px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 2px; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: mbv-book 12s ease-in-out infinite alternate;
}
.scn-mad-monk-variant-stanzas .window-sky {
  position: absolute; top: 8%; left: 10%; width: 35%; height: 50%;
  background: linear-gradient(180deg, #2a3a4a 0%, #4a5a6a 50%, #6a7a8a 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: mbv-storm 15s ease-in-out infinite alternate;
}
.scn-mad-monk-variant-stanzas .window-frame {
  position: absolute; top: 8%; left: 10%; width: 35%; height: 50%;
  border: 6px solid #1a120e; border-radius: 4px; box-sizing: border-box;
  background: none;
}
.scn-mad-monk-variant-stanzas .monk-silhouette {
  position: absolute; bottom: 4%; left: 42%; width: 28px; height: 70px;
  background: #0a0a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg) scale(0.9);
  animation: mbv-write 3s ease-in-out infinite;
}
.scn-mad-monk-variant-stanzas .quill {
  position: absolute; bottom: 10%; left: 52%; width: 30px; height: 6px;
  background: linear-gradient(90deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 50%; transform: rotate(30deg);
  animation: mbv-quill 2s ease-in-out infinite alternate;
}
@keyframes mbv-flicker { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes mbv-glow { 0% { opacity: 0.8; transform: translate(-50%, 0) scale(0.95); } 50% { opacity: 1; transform: translate(-50%, -2px) scale(1.05); } 100% { opacity: 0.9; transform: translate(-50%, 0) scale(1); } }
@keyframes mbv-book { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(0deg) translateX(2px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes mbv-storm { 0% { background-position: 0% 0%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 100%; } }
@keyframes mbv-write { 0% { transform: rotate(-10deg) scale(0.9) translateY(0); } 25% { transform: rotate(-14deg) scale(0.92) translateY(-2px); } 50% { transform: rotate(-6deg) scale(0.88) translateY(1px); } 75% { transform: rotate(-12deg) scale(0.91) translateY(-1px); } 100% { transform: rotate(-10deg) scale(0.9) translateY(0); } }
@keyframes mbv-quill { 0% { transform: rotate(30deg) scale(1); } 100% { transform: rotate(22deg) scale(1.1); } }

/* inscription-seat-roadside – sunlit, reflective */

.scn-inscription-seat-roadside {
  background: linear-gradient(180deg, #9ac4e0 0%, #e6f0d0 60%, #d0c090 100%),
              radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 70%);
}
.scn-inscription-seat-roadside .sky-sun {
  position: absolute; top: 0; left: 0; right: 0; height: 65%;
  background: radial-gradient(ellipse at 50% 10%, #ffe680 0%, #ffcc40 20%, #9ac4e0 60%, transparent 80%);
  animation: isr-sun 20s ease-in-out infinite alternate;
}
.scn-inscription-seat-roadside .hill-back {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a9a4a 0%, #4a7a2a 100%);
  border-radius: 60% 40% 0 0 / 50% 30% 0 0;
  animation: isr-hills 25s ease-in-out infinite alternate;
}
.scn-inscription-seat-roadside .hill-front {
  position: absolute; bottom: 5%; left: -10%; right: -10%; height: 25%;
  background: linear-gradient(180deg, #5a8a3a 0%, #3a6a1a 100%);
  border-radius: 40% 60% 0 0 / 70% 50% 0 0;
  transform: scale(1.05); animation: isr-hills 30s ease-in-out infinite alternate-reverse;
}
.scn-inscription-seat-roadside .bench-seat {
  position: absolute; bottom: 12%; left: 35%; width: 80px; height: 8px;
  background: linear-gradient(90deg, #6a3a1a 0%, #8a5a3a 50%, #6a3a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: rotate(2deg); animation: isr-bench 10s ease-in-out infinite;
}
.scn-inscription-seat-roadside .bench-legs {
  position: absolute; bottom: 5%; left: 37%; width: 60px; height: 40px;
  background: none; border-left: 4px solid #4a2a0a; border-right: 4px solid #4a2a0a;
  border-bottom: 4px solid #4a2a0a; border-radius: 0 0 4px 4px;
  transform: rotate(2deg);
}
.scn-inscription-seat-roadside .stone-sign {
  position: absolute; bottom: 15%; left: 52%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #8a8a7a 0%, #5a5a4a 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(5deg); animation: isr-sign 18s ease-in-out infinite alternate;
}
.scn-inscription-seat-roadside .cloud-drift-1 {
  position: absolute; top: 12%; left: 10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(200,200,200,0.2) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: isr-drift1 45s linear infinite;
}
.scn-inscription-seat-roadside .cloud-drift-2 {
  position: absolute; top: 22%; left: 70%; width: 80px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(200,200,200,0.1) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: isr-drift2 60s linear infinite reverse;
}
@keyframes isr-sun { 0% { opacity: 0.9; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.95; transform: scale(0.98); } }
@keyframes isr-hills { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes isr-bench { 0% { transform: rotate(2deg) translateX(0); } 50% { transform: rotate(0deg) translateX(3px); } 100% { transform: rotate(2deg) translateX(0); } }
@keyframes isr-sign { 0% { transform: rotate(5deg) scale(1); } 50% { transform: rotate(7deg) scale(1.03); } 100% { transform: rotate(5deg) scale(1); } }
@keyframes isr-drift1 { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes isr-drift2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* weary-traveller-thanks – sunlit, compassionate */

.scn-weary-traveller-thanks {
  background: linear-gradient(180deg, #f0a070 0%, #d08050 40%, #a06030 100%),
              radial-gradient(ellipse at 50% 0%, #ffe0c0 0%, transparent 60%);
}
.scn-weary-traveller-thanks .sky-sunset {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffcc80 0%, #ff8040 50%, #c06030 100%);
  animation: wt-sky 14s ease-in-out infinite alternate;
}
.scn-weary-traveller-thanks .ground-path {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 60% 40% 0 0 / 20% 30% 0 0;
}
.scn-weary-traveller-thanks .tree-cover {
  position: absolute; bottom: 15%; left: 10%; width: 120px; height: 100px;
  background: radial-gradient(ellipse at 50% 30%, #3a6a2a 0%, #1a3a0a 60%, transparent 70%);
  border-radius: 50%; transform: scale(1.2);
  animation: wt-tree 20s ease-in-out infinite alternate;
}
.scn-weary-traveller-thanks .traveller-body {
  position: absolute; bottom: 5%; left: 35%; width: 30px; height: 80px;
  background: #0a0a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg) scaleX(0.9);
  animation: wt-walk 8s ease-in-out infinite;
}
.scn-weary-traveller-thanks .traveller-pack {
  position: absolute; bottom: 20%; left: 33%; width: 26px; height: 30px;
  background: #1a120e;
  border-radius: 30% 30% 20% 20%;
  transform: rotate(10deg);
  animation: wt-pack 8s ease-in-out infinite;
}
.scn-weary-traveller-thanks .traveller-staff {
  position: absolute; bottom: 2%; left: 45%; width: 4px; height: 60px;
  background: #3a2a1a;
  border-radius: 2px;
  transform: rotate(15deg);
  animation: wt-staff 8s ease-in-out infinite;
}
.scn-weary-traveller-thanks .distant-home {
  position: absolute; bottom: 25%; right: 20%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px 8px rgba(255,200,100,0.3);
  animation: wt-home 12s ease-in-out infinite alternate;
}
@keyframes wt-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes wt-tree { 0% { transform: scale(1.2) translateY(0); } 50% { transform: scale(1.18) translateY(-5px); } 100% { transform: scale(1.2) translateY(0); } }
@keyframes wt-walk { 0% { transform: rotate(5deg) scaleX(0.9) translateX(0); } 25% { transform: rotate(3deg) scaleX(0.92) translateX(8px); } 50% { transform: rotate(7deg) scaleX(0.88) translateX(16px); } 75% { transform: rotate(2deg) scaleX(0.9) translateX(24px); } 100% { transform: rotate(5deg) scaleX(0.9) translateX(32px); } }
@keyframes wt-pack { 0% { transform: rotate(10deg) translateX(0); } 25% { transform: rotate(8deg) translateX(4px); } 50% { transform: rotate(12deg) translateX(8px); } 75% { transform: rotate(9deg) translateX(12px); } 100% { transform: rotate(10deg) translateX(16px); } }
@keyframes wt-staff { 0% { transform: rotate(15deg) translateX(0); } 25% { transform: rotate(13deg) translateX(3px); } 50% { transform: rotate(17deg) translateX(5px); } 75% { transform: rotate(14deg) translateX(8px); } 100% { transform: rotate(15deg) translateX(10px); } }
@keyframes wt-home { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.8; } }

/* serious-thought-mortality – dim interior, moralistic */

.scn-serious-thought-mortality {
  background: linear-gradient(180deg, #1a1212 0%, #2a1a1a 40%, #1a0e0e 100%),
              radial-gradient(ellipse at 50% 70%, #3a2a2a 0%, transparent 70%);
}
.scn-serious-thought-mortality .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a120e 0%, #2a1a14 30%, #1a0e0a 100%);
  animation: stm-shadow 12s ease-in-out infinite alternate;
}
.scn-serious-thought-mortality .window-dim {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 4px; box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
  animation: stm-window 18s ease-in-out infinite alternate;
}
.scn-serious-thought-mortality .candle {
  position: absolute; bottom: 28%; left: 50%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 50%, #8a5020 100%);
  border-radius: 4px 4px 2px 2px;
  transform: translateX(-50%) rotate(-2deg);
  box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,0.4);
  animation: stm-flame 3s ease-in-out infinite alternate;
}
.scn-serious-thought-mortality .hourglass {
  position: absolute; bottom: 12%; left: 38%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: stm-sand 15s linear infinite;
}
.scn-serious-thought-mortality .book-closed {
  position: absolute; bottom: 5%; left: 44%; width: 50px; height: 12px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120e 100%);
  border-radius: 2px; transform: rotate(3deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
}
.scn-serious-thought-mortality .thinker-silhouette {
  position: absolute; bottom: 2%; left: 42%; width: 30px; height: 80px;
  background: #0a0a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg) scaleX(0.85);
  animation: stm-think 5s ease-in-out infinite;
}
.scn-serious-thought-mortality .shadow-bars {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-linear-gradient(0deg, transparent 0%, rgba(0,0,0,0.1) 5%, transparent 10%);
  animation: stm-bars 8s ease-in-out infinite alternate;
}
@keyframes stm-shadow { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes stm-window { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes stm-flame { 0% { transform: translateX(-50%) rotate(-2deg) scale(1); } 50% { transform: translateX(-50%) rotate(1deg) scale(1.05); } 100% { transform: translateX(-50%) rotate(-2deg) scale(0.95); } }
@keyframes stm-sand { 0% { background-position: 0% 0%; } 50% { background-position: 50% 100%; } 100% { background-position: 0% 0%; } }
@keyframes stm-think { 0% { transform: rotate(15deg) scaleX(0.85) translateY(0); } 25% { transform: rotate(18deg) scaleX(0.87) translateY(-3px); } 50% { transform: rotate(12deg) scaleX(0.83) translateY(2px); } 75% { transform: rotate(16deg) scaleX(0.86) translateY(-1px); } 100% { transform: rotate(15deg) scaleX(0.85) translateY(0); } }
@keyframes stm-bars { 0% { opacity: 0.3; } 100% { opacity: 0.6; } }

.scn-editorial-forbearance {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 60%), radial-gradient(ellipse at 50% 100%, #3a2a20 0%, transparent 70%);
}
.scn-editorial-forbearance .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1e1612 0%, #2a1f1a 100%);
  animation: fb-bg 12s ease-in-out infinite alternate;
}
.scn-editorial-forbearance .carpet {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-editorial-forbearance .figure {
  position: absolute; bottom: 18%; left: 35%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fb-figure 6s ease-in-out infinite;
}
.scn-editorial-forbearance .lamp {
  position: absolute; bottom: 32%; left: 58%; width: 12px; height: 14px;
  background: radial-gradient(circle, #c08040 0%, #8a5a20 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 10px 2px rgba(192,128,64,0.6);
  animation: fb-lamp 4s ease-in-out infinite alternate;
}
.scn-editorial-forbearance .glow {
  position: absolute; bottom: 28%; left: 54%; width: 40px; height: 50px;
  background: radial-gradient(ellipse, rgba(192,128,64,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: fb-glow 3s ease-in-out infinite alternate;
}
.scn-editorial-forbearance .shadow {
  position: absolute; bottom: 15%; left: 30%; width: 50px; height: 5px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: fb-shadow 8s ease-in-out infinite alternate;
}
.scn-editorial-forbearance .curtain {
  position: absolute; top: 0; right: 0; width: 18%; height: 100%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  border-radius: 0 0 0 40%;
  transform-origin: top right;
  filter: blur(0.5px);
  animation: fb-curtain 10s ease-in-out infinite alternate;
}
@keyframes fb-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes fb-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes fb-lamp {
  0% { transform: scale(0.95); box-shadow: 0 0 8px 1px rgba(192,128,64,0.5); }
  50% { transform: scale(1.05); box-shadow: 0 0 16px 4px rgba(192,128,64,0.8); }
  100% { transform: scale(1); box-shadow: 0 0 12px 2px rgba(192,128,64,0.6); }
}
@keyframes fb-glow {
  0% { opacity: 0.2; transform: scale(0.9); }
  50% { opacity: 0.4; transform: scale(1.1); }
  100% { opacity: 0.25; transform: scale(0.95); }
}
@keyframes fb-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.2); opacity: 0.7; }
  100% { transform: scaleX(0.9); opacity: 0.4; }
}
@keyframes fb-curtain {
  0% { transform: scaleX(1) skewX(0deg); }
  50% { transform: scaleX(0.9) skewX(2deg); }
  100% { transform: scaleX(1) skewX(-1deg); }
}

.scn-loves-apparition {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #0d0d2b 100%), radial-gradient(ellipse at 50% 0%, #2a2a5a 0%, transparent 60%);
}
.scn-loves-apparition .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a4a 80%);
  animation: la-sky 15s ease-in-out infinite alternate;
}
.scn-loves-apparition .moon {
  position: absolute; top: 8%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #c0d0ff 0%, #8090c0 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(192,208,255,0.3);
  animation: la-moon 12s ease-in-out infinite alternate;
}
.scn-loves-apparition .bower {
  position: absolute; top: 20%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, rgba(20,40,20,0.6) 0%, transparent 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  filter: blur(2px);
  animation: la-bower 20s ease-in-out infinite alternate;
}
.scn-loves-apparition .couch {
  position: absolute; bottom: 15%; left: 25%; right: 25%; height: 20%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  animation: la-couch 8s ease-in-out infinite;
}
.scn-loves-apparition .figure {
  position: absolute; bottom: 20%; left: 40%; width: 30px; 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: la-figure 10s ease-in-out infinite;
}
.scn-loves-apparition .apparition {
  position: absolute; bottom: 30%; left: 55%; width: 50px; height: 70px;
  background: radial-gradient(ellipse, rgba(200,210,255,0.3) 0%, rgba(200,210,255,0.05) 60%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  filter: blur(4px);
  animation: la-apparition 14s ease-in-out infinite alternate;
}
.scn-loves-apparition .flowers {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(90deg, transparent, rgba(100,80,120,0.3) 20%, rgba(100,80,120,0.3) 80%, transparent);
  border-radius: 50%;
  filter: blur(2px);
  animation: la-flowers 6s ease-in-out infinite alternate;
}
@keyframes la-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes la-moon {
  0% { transform: scale(0.95); box-shadow: 0 0 30px 8px rgba(192,208,255,0.2); }
  50% { transform: scale(1.05); box-shadow: 0 0 60px 15px rgba(192,208,255,0.4); }
  100% { transform: scale(1); box-shadow: 0 0 40px 10px rgba(192,208,255,0.3); }
}
@keyframes la-bower {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes la-couch {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes la-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes la-apparition {
  0% { transform: translateY(0) scale(0.95); opacity: 0.2; }
  50% { transform: translateY(-8px) scale(1.05); opacity: 0.4; }
  100% { transform: translateY(0) scale(1); opacity: 0.25; }
}
@keyframes la-flowers {
  0% { opacity: 0.1; transform: scaleY(0.8); }
  50% { opacity: 0.3; transform: scaleY(1.2); }
  100% { opacity: 0.15; transform: scaleY(0.9); }
}

.scn-love-appears {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #0d0d2b 100%), radial-gradient(ellipse at 50% 0%, #2a2a5a 0%, transparent 60%);
}
.scn-love-appears .sky {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a4a 80%);
  animation: lv-sky 18s ease-in-out infinite alternate;
}
.scn-love-appears .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-love-appears .seat {
  position: absolute; bottom: 20%; left: 40%; right: 40%; height: 15%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: lv-seat 12s ease-in-out infinite;
}
.scn-love-appears .sylph {
  position: absolute; bottom: 25%; left: 45%; width: 35px; height: 55px;
  background: linear-gradient(180deg, #d0d8f0 0%, #8090b0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  filter: blur(0.5px);
  animation: lv-sylph 8s ease-in-out infinite;
}
.scn-love-appears .veil {
  position: absolute; bottom: 30%; left: 42%; width: 50px; height: 40px;
  background: radial-gradient(ellipse, rgba(200,210,255,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: lv-veil 6s ease-in-out infinite alternate;
}
.scn-love-appears .stars {
  position: absolute; top: 5%; left: 0; right: 0; height: 30%;
  background: radial-gradient(circle at 30% 20%, #ffffff 0%, transparent 2%), radial-gradient(circle at 70% 40%, #ffffff 0%, transparent 1.5%), radial-gradient(circle at 50% 10%, #ffffff 0%, transparent 1%);
  background-size: 4px 4px;
  animation: lv-stars 20s linear infinite;
}
.scn-love-appears .moon {
  position: absolute; top: 10%; right: 25%; width: 50px; height: 50px;
  background: radial-gradient(circle, #c0d0ff 0%, #8090c0 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(192,208,255,0.2);
  animation: lv-moon 10s ease-in-out infinite alternate;
}
@keyframes lv-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes lv-seat {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes lv-sylph {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-6px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lv-veil {
  0% { transform: translateX(0) scaleY(0.9); opacity: 0.3; }
  50% { transform: translateX(5px) scaleY(1.1); opacity: 0.5; }
  100% { transform: translateX(-2px) scaleY(1); opacity: 0.35; }
}
@keyframes lv-stars {
  0% { opacity: 0.5; background-position: 0% 0%; }
  50% { opacity: 0.8; background-position: 2% 1%; }
  100% { opacity: 0.6; background-position: 0% 0%; }
}
@keyframes lv-moon {
  0% { transform: scale(0.95); box-shadow: 0 0 25px 6px rgba(192,208,255,0.15); }
  50% { transform: scale(1.05); box-shadow: 0 0 40px 12px rgba(192,208,255,0.35); }
  100% { transform: scale(1); box-shadow: 0 0 30px 8px rgba(192,208,255,0.2); }
}

.scn-editorial-loves-apparition {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 60%), radial-gradient(ellipse at 50% 100%, #3a2a20 0%, transparent 70%);
}
.scn-editorial-loves-apparition .desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: ea-desk 8s ease-in-out infinite alternate;
}
.scn-editorial-loves-apparition .manuscript {
  position: absolute; bottom: 25%; left: 35%; right: 35%; height: 15%;
  background: linear-gradient(135deg, #c8b090 0%, #a08060 100%);
  border-radius: 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ea-manuscript 10s ease-in-out infinite alternate;
}
.scn-editorial-loves-apparition .candle {
  position: absolute; bottom: 32%; left: 50%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c08040 100%);
  border-radius: 10% 10% 5% 5%;
  transform: translateX(-50%);
  animation: ea-candle 4s ease-in-out infinite alternate;
}
.scn-editorial-loves-apparition .glow {
  position: absolute; bottom: 28%; left: 46%; right: 46%; height: 30%;
  background: radial-gradient(ellipse, rgba(240,208,160,0.3) 0%, transparent 100%);
  filter: blur(3px);
  animation: ea-glow 3s ease-in-out infinite alternate;
}
.scn-editorial-loves-apparition .chair {
  position: absolute; bottom: 12%; left: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 100%);
  border-radius: 10% 10% 5% 5%;
  transform-origin: bottom center;
  animation: ea-chair 12s ease-in-out infinite;
}
.scn-editorial-loves-apparition .shadow {
  position: absolute; bottom: 8%; left: 15%; right: 15%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(4px);
  animation: ea-shadow 9s ease-in-out infinite alternate;
}
@keyframes ea-desk {
  0% { transform: translateY(0); box-shadow: 0 8px 16px rgba(0,0,0,0.6); }
  50% { transform: translateY(-2px); box-shadow: 0 12px 24px rgba(0,0,0,0.8); }
  100% { transform: translateY(0); box-shadow: 0 8px 16px rgba(0,0,0,0.5); }
}
@keyframes ea-manuscript {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(0.5deg) scale(0.98); }
  100% { transform: rotate(-0.3deg) scale(1); }
}
@keyframes ea-candle {
  0% { transform: translateX(-50%) scaleY(0.95); box-shadow: 0 0 4px 1px rgba(240,208,160,0.5); }
  50% { transform: translateX(-50%) scaleY(1.05); box-shadow: 0 0 12px 4px rgba(240,208,160,0.8); }
  100% { transform: translateX(-50%) scaleY(1); box-shadow: 0 0 6px 2px rgba(240,208,160,0.6); }
}
@keyframes ea-glow {
  0% { opacity: 0.2; transform: scale(0.9); }
  50% { opacity: 0.4; transform: scale(1.1); }
  100% { opacity: 0.25; transform: scale(0.95); }
}
@keyframes ea-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(0.5deg); }
}
@keyframes ea-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.1); opacity: 0.6; }
  100% { transform: scaleX(0.95); opacity: 0.3; }
}

/* alice-recognition */

.scn-alice-recognition {
  background: linear-gradient(180deg, #f9e7b3 0%, #87c5d9 40%, #4a7c59 100%),
              radial-gradient(ellipse at 70% 20%, #f5d68a 0%, transparent 60%);
}
.scn-alice-recognition .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f9e7b3 0%, #87c5d9 100%); animation: ar-sky 15s ease-in-out infinite alternate; }
.scn-alice-recognition .sun { position:absolute; top:8%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #ffeb8a 0%, #f5c542 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(245,197,66,.5); animation: ar-sun 4s ease-in-out infinite alternate; }
.scn-alice-recognition .trees.back { position:absolute; bottom:40%; left:5%; right:5%; height:30%; background: linear-gradient(135deg, #2d5a3a 0%, #1e3a28 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; filter: blur(2px); animation: ar-trees 20s ease-in-out infinite alternate; }
.scn-alice-recognition .trees.front { position:absolute; bottom:35%; left:0; right:0; height:35%; background: linear-gradient(135deg, #3a6b4a 0%, #2a4a3a 100%); border-radius: 50% 50% 0 0 / 70% 80% 0 0; animation: ar-trees 25s ease-in-out infinite alternate-reverse; }
.scn-alice-recognition .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a9a5a 0%, #3a5a3a 100%); border-radius: 20% 30% 0 0 / 40% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-alice-recognition .figure.julian { position:absolute; bottom:18%; left:45%; width:25px; height:50px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ar-julian 3s ease-in-out infinite; }
.scn-alice-recognition .figure.alice { position:absolute; bottom:22%; left:55%; width:22px; height:48px; background: linear-gradient(180deg, #e8d4c0 0%, #c8b8a0 100%); border-radius: 50% 30% 30% 50% / 60% 40% 40% 60%; transform: rotate(5deg); animation: ar-alice 6s ease-in-out infinite; }
.scn-alice-recognition .leaves { position:absolute; top:0; left:0; right:0; bottom:50%; background: radial-gradient(circle at 20% 30%, rgba(80,120,60,.3) 0%, transparent 50%), radial-gradient(circle at 80% 60%, rgba(60,100,40,.2) 0%, transparent 40%); animation: ar-leaves 8s ease-in-out infinite; }
@keyframes ar-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ar-sun { 0% { box-shadow: 0 0 30px 15px rgba(245,197,66,.4); transform: scale(1); } 50% { box-shadow: 0 0 60px 30px rgba(245,197,66,.6); transform: scale(1.1); } 100% { box-shadow: 0 0 40px 20px rgba(245,197,66,.5); transform: scale(1); } }
@keyframes ar-trees { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes ar-julian { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-3px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(8px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ar-alice { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes ar-leaves { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.6; } }

/* editorial-note-alice */

.scn-editorial-note-alice {
  background: linear-gradient(180deg, #2a2218 0%, #4a3a2a 40%, #1a150e 100%),
              radial-gradient(ellipse at 50% 70%, #6a5a4a 0%, transparent 60%);
}
.scn-editorial-note-alice .wall { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-editorial-note-alice .desk { position:absolute; bottom:5%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-editorial-note-alice .candle { position:absolute; bottom:35%; left:50%; width:12px; height:40px; background: linear-gradient(180deg, #e8d4b0 0%, #c8b090 100%); border-radius: 4px; transform: translateX(-50%); }
.scn-editorial-note-alice .flame { position:absolute; bottom:62%; left:50%; width:10px; height:16px; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #e89030 50%, transparent 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; transform: translateX(-50%); animation: en-flame 2s ease-in-out infinite alternate; }
.scn-editorial-note-alice .inkwell { position:absolute; bottom:25%; left:30%; width:16px; height:20px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; }
.scn-editorial-note-alice .quill { position:absolute; bottom:30%; left:50%; width:3px; height:50px; background: linear-gradient(180deg, #e8e0d0 0%, #c8c0b0 50%, #8a7a6a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(-15deg); transform-origin: bottom center; animation: en-quill 12s ease-in-out infinite; }
.scn-editorial-note-alice .paper { position:absolute; bottom:15%; left:40%; width:80px; height:50px; background: linear-gradient(135deg, #f0e8d0 0%, #d8d0b8 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3); transform: rotate(-2deg); }
.scn-editorial-note-alice .shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 48% 35%, rgba(0,0,0,.2) 0%, transparent 60%); animation: en-shadow 10s ease-in-out infinite alternate; }
@keyframes en-flame { 0% { transform: translateX(-50%) scaleY(1) translateY(0); opacity:.9; } 50% { transform: translateX(-50%) scaleY(1.2) translateY(-2px); opacity:1; } 100% { transform: translateX(-50%) scaleY(0.9) translateY(1px); opacity:.8; } }
@keyframes en-quill { 0% { transform: rotate(-15deg); } 25% { transform: rotate(-10deg) translateX(2px); } 50% { transform: rotate(-18deg) translateX(-1px); } 75% { transform: rotate(-12deg); } 100% { transform: rotate(-15deg); } }
@keyframes en-shadow { 0% { opacity:.5; } 50% { opacity:.7; } 100% { opacity:.5; } }

/* variant-readings-alice */

.scn-variant-readings-alice {
  background: linear-gradient(180deg, #1e1812 0%, #2a2218 40%, #12100e 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 60%);
}
.scn-variant-readings-alice .wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a2016 0%, #1a140e 100%); }
.scn-variant-readings-alice .scroll { position:absolute; bottom:15%; left:20%; right:20%; height:45%; background: linear-gradient(180deg, #d8c8b0 0%, #b8a890 100%); border-radius: 2px 2px 10px 10px; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform: perspective(400px) rotateX(2deg); }
.scn-variant-readings-alice .lamp-star { position:absolute; top:10%; left:50%; width:40px; height:40px; background: radial-gradient(circle, #ffd060 0%, #c89040 100%); clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); transform: translateX(-50%); animation: vr-lamp 6s ease-in-out infinite alternate; }
.scn-variant-readings-alice .glow-star { position:absolute; top:5%; left:45%; right:5%; bottom:60%; background: radial-gradient(ellipse at 50% 40%, rgba(255,208,96,.3) 0%, transparent 60%); animation: vr-glow 6s ease-in-out infinite alternate; }
.scn-variant-readings-alice .inkpot { position:absolute; bottom:30%; left:35%; width:20px; height:24px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 30% 30% 10% 10%; }
.scn-variant-readings-alice .quill { position:absolute; bottom:25%; left:50%; width:3px; height:55px; background: linear-gradient(180deg, #e8e0d0 0%, #c8c0b0 50%, #8a7a6a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(5deg); transform-origin: bottom center; animation: vr-quill 15s ease-in-out infinite; }
.scn-variant-readings-alice .shadow-scroll { position:absolute; bottom:12%; left:18%; right:18%; height:10%; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(6px); animation: vr-shadow 12s ease-in-out infinite; }
.scn-variant-readings-alice .dust { position:absolute; top:20%; left:30%; width:4px; height:4px; background: rgba(200,180,150,.3); border-radius: 50%; box-shadow: 20px 15px 0 0 rgba(200,180,150,.2), -10px 30px 0 0 rgba(200,180,150,.15), 40px -5px 0 0 rgba(200,180,150,.1); animation: vr-dust 25s linear infinite; }
@keyframes vr-lamp { 0% { transform: translateX(-50%) scale(1); opacity:.8; } 50% { transform: translateX(-50%) scale(1.1); opacity:1; } 100% { transform: translateX(-50%) scale(0.95); opacity:.9; } }
@keyframes vr-glow { 0% { opacity:.4; } 50% { opacity:.6; } 100% { opacity:.3; } }
@keyframes vr-quill { 0% { transform: rotate(5deg); } 25% { transform: rotate(8deg) translateX(2px); } 50% { transform: rotate(2deg) translateX(-1px); } 75% { transform: rotate(7deg); } 100% { transform: rotate(5deg); } }
@keyframes vr-shadow { 0% { opacity:.5; transform: scale(1); } 50% { opacity:.3; transform: scale(1.1); } 100% { opacity:.5; transform: scale(1); } }
@keyframes vr-dust { 0% { transform: translate(0,0); opacity:.3; } 25% { transform: translate(10px,-5px); opacity:.2; } 50% { transform: translate(20px,0); opacity:.4; } 75% { transform: translate(10px,5px); opacity:.2; } 100% { transform: translate(0,0); opacity:.3; } }

/* further-variants-alice */

.scn-further-variants-alice {
  background: linear-gradient(180deg, #1a1612 0%, #2a221a 40%, #12100c 100%),
              radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%);
}
.scn-further-variants-alice .wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a2018 0%, #1a140e 100%); }
.scn-further-variants-alice .desk { position:absolute; bottom:5%; left:8%; right:8%; height:35%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-further-variants-alice .paper-variants { position:absolute; bottom:15%; left:30%; width:70px; height:45px; background: linear-gradient(135deg, #e8dcc8 0%, #c8b8a0 100%); border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,.3); transform: rotate(-1deg); }
.scn-further-variants-alice .wave-weight { position:absolute; bottom:20%; left:55%; width:30px; height:15px; background: linear-gradient(180deg, #4a7a8a 0%, #2a5a6a 100%); border-radius: 50% 50% 0 0; animation: fv-wave 5s ease-in-out infinite; }
.scn-further-variants-alice .candle { position:absolute; bottom:30%; left:20%; width:10px; height:35px; background: linear-gradient(180deg, #e8d4b0 0%, #c8b090 100%); border-radius: 3px; }
.scn-further-variants-alice .flame { position:absolute; bottom:55%; left:20%; width:8px; height:14px; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #e89030 50%, transparent 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; transform: translateX(1px); animation: fv-flame 2.5s ease-in-out infinite alternate; }
.scn-further-variants-alice .inkwell { position:absolute; bottom:25%; left:45%; width:14px; height:18px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 10% 10%; }
.scn-further-variants-alice .erasures { position:absolute; bottom:18%; left:35%; width:40px; height:10px; background: repeating-linear-gradient(45deg, rgba(0,0,0,.1) 0px, rgba(0,0,0,.1) 3px, transparent 3px, transparent 6px); border-radius: 1px; opacity:.3; animation: fv-erasures 20s linear infinite; }
@keyframes fv-wave { 0% { transform: translateY(0) scaleY(1); } 25% { transform: translateY(-1px) scaleY(1.2); } 50% { transform: translateY(0) scaleY(0.9); } 75% { transform: translateY(1px) scaleY(1.1); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes fv-flame { 0% { transform: translateX(1px) scaleY(1); opacity:.9; } 50% { transform: translateX(1px) scaleY(1.3) translateY(-1px); opacity:1; } 100% { transform: translateX(1px) scaleY(0.9) translateY(1px); opacity:.8; } }
@keyframes fv-erasures { 0% { background-position: 0 0; } 100% { background-position: 40px 0; } }

/* one block per scene id. Append to style.css. */

/* Scene 1: cruel-scorn-crazed-knight (dark, tragic) */

.scn-cruel-scorn-crazed-knight {
  background:
    linear-gradient(180deg, #0b0b1a 0%, #1a1533 30%, #2a2045 60%, #1f1a30 100%),
    radial-gradient(ellipse at 50% 90%, #3a2a4a 0%, transparent 70%);
}
.scn-cruel-scorn-crazed-knight .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #10102a 0%, #1a1a40 100%); animation: cs-sky 12s ease-in-out infinite alternate; }
.scn-cruel-scorn-crazed-knight .mountains { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 60% 40% 0 0 / 50% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); animation: cs-mountains 20s ease-in-out infinite alternate; }
.scn-cruel-scorn-crazed-knight .trees { position:absolute; bottom:35%; width:20%; height:40%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 30% 30% 0 0; box-shadow: inset -5px 0 10px rgba(0,0,0,.5); }
.scn-cruel-scorn-crazed-knight .trees.left { left:5%; transform: scaleX(-1); }
.scn-cruel-scorn-crazed-knight .trees.right { right:5%; }
.scn-cruel-scorn-crazed-knight .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; animation: cs-ground 8s ease-in-out infinite alternate; }
.scn-cruel-scorn-crazed-knight .knight { position:absolute; bottom:25%; left:40%; width:24px; height:50px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 20% 20% / 30% 30% 20% 20%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.7); animation: cs-knight 6s ease-in-out infinite; }
.scn-cruel-scorn-crazed-knight .fiend { position:absolute; bottom:30%; left:55%; width:30px; height:45px; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin: bottom center; box-shadow: 0 0 20px 6px #4a2a4a; animation: cs-fiend 4s ease-in-out infinite; }
.scn-cruel-scorn-crazed-knight .moon { position:absolute; top:10%; right:20%; width:40px; height:40px; background: radial-gradient(circle at 40% 40%, #d0d0e0 0%, #8080a0 100%); border-radius: 50%; box-shadow: 0 0 30px 15px rgba(128,128,160,.3); animation: cs-moon 30s linear infinite; }
.scn-cruel-scorn-crazed-knight .mist { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(30,20,40,.3) 0%, transparent 100%); filter: blur(8px); animation: cs-mist 15s ease-in-out infinite alternate; }

@keyframes cs-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes cs-mountains { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes cs-ground { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .95; } }
@keyframes cs-knight { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(-2deg); } 50% { transform: translateX(8px) rotate(2deg); } 75% { transform: translateX(12px) rotate(-1deg); } }
@keyframes cs-fiend { 0% { transform: scale(1) translateY(0); opacity: .8; } 50% { transform: scale(1.05) translateY(-4px); opacity: 1; } 100% { transform: scale(1) translateY(0); opacity: .8; } }
@keyframes cs-moon { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes cs-mist { 0% { opacity: .3; filter: blur(6px); } 50% { opacity: .6; filter: blur(10px); } 100% { opacity: .4; filter: blur(8px); } }


/* Scene 2: murderous-band-expiation (dramatic, dark) */

.scn-murderous-band-expiation {
  background:
    linear-gradient(180deg, #0e0e18 0%, #1a1a2a 40%, #2a1a1a 100%),
    radial-gradient(ellipse at 30% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-murderous-band-expiation .cave-bg { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a12 0%, #1a1a2a 50%, #2a1a1a 100%); animation: mb-cavebg 15s ease-in-out infinite alternate; }
.scn-murderous-band-expiation .cave-wall { position:absolute; top:0; width:30%; height:100%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 0 0 50% / 20% 0 0 80%; }
.scn-murderous-band-expiation .cave-wall.left { left:0; transform: scaleX(-1); }
.scn-murderous-band-expiation .cave-wall.right { right:0; }
.scn-murderous-band-expiation .fire { position:absolute; bottom:25%; left:35%; width:30px; height:40px; background: radial-gradient(circle at 50% 80%, #ffaa40 0%, #cc6620 40%, #884400 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px #ff8844; animation: mb-fire 1.5s ease-in-out infinite alternate; }
.scn-murderous-band-expiation .lady { position:absolute; bottom:28%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 20% 20% / 30% 30% 20% 20%; transform-origin: bottom center; animation: mb-lady 4s ease-in-out infinite; }
.scn-murderous-band-expiation .knight-down { position:absolute; bottom:20%; left:50%; width:50px; height:20px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform: rotate(-10deg); box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: mb-knight 6s ease-in-out infinite; }
.scn-murderous-band-expiation .blanket { position:absolute; bottom:18%; left:48%; width:60px; height:10px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: mb-blanket 8s ease-in-out infinite alternate; }
.scn-murderous-band-expiation .cave-opening { position:absolute; top:5%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 0 0 / 30% 30% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.8); animation: mb-opening 10s ease-in-out infinite alternate; }
.scn-murderous-band-expiation .stars { position:absolute; top:5%; left:40%; width:10px; height:10px; background: radial-gradient(circle, #d0d0e0 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 15px 5px rgba(200,200,220,.4); animation: mb-stars 5s ease-in-out infinite alternate; }

@keyframes mb-cavebg { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes mb-fire { 0% { transform: scale(1) rotate(0); opacity: .9; } 50% { transform: scale(1.1) rotate(3deg); opacity: 1; } 100% { transform: scale(1) rotate(-2deg); opacity: .95; } }
@keyframes mb-lady { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(1deg); } }
@keyframes mb-knight { 0% { transform: translateY(0) rotate(-10deg); } 50% { transform: translateY(-3px) rotate(-8deg); } 100% { transform: translateY(0) rotate(-10deg); } }
@keyframes mb-blanket { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes mb-opening { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes mb-stars { 0% { transform: scale(1); opacity: .5; } 50% { transform: scale(1.5); opacity: 1; } 100% { transform: scale(1); opacity: .6; } }


/* Scene 3: tenderest-strain-pity (sentimental, dusk) */

.scn-tenderest-strain-pity {
  background:
    linear-gradient(180deg, #ffaa66 0%, #dda055 30%, #aa7a44 60%, #553320 100%),
    radial-gradient(ellipse at 50% 100%, #aa7a44 0%, transparent 70%);
}
.scn-tenderest-strain-pity .dusk-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffcc88 0%, #dd8855 30%, #995533 100%); animation: ts-sky 15s ease-in-out infinite alternate; }
.scn-tenderest-strain-pity .hills { position:absolute; bottom:40%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a4a33 0%, #3a2a1a 100%); border-radius: 80% 20% 0 0 / 60% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: ts-hills 18s ease-in-out infinite alternate; }
.scn-tenderest-strain-pity .tree { position:absolute; bottom:50%; left:20%; width:40px; height:70px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 60% 60% 0 0 / 70% 70% 0 0; box-shadow: -5px 0 15px rgba(0,0,0,.3); animation: ts-tree 10s ease-in-out infinite alternate; }
.scn-tenderest-strain-pity .harp-player { position:absolute; bottom:30%; left:50%; width:30px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 20% 20% / 30% 30% 20% 20%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: ts-player 6s ease-in-out infinite; }
.scn-tenderest-strain-pity .harp { position:absolute; bottom:32%; left:48%; width:20px; height:40px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; transform: rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ts-harp 5s ease-in-out infinite; }
.scn-tenderest-strain-pity .listener { position:absolute; bottom:30%; left:35%; width:28px; height:48px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin: bottom center; animation: ts-listener 7s ease-in-out infinite; }
.scn-tenderest-strain-pity .glow { position:absolute; bottom:40%; left:45%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,200,100,.4) 0%, transparent 100%); border-radius: 50%; animation: ts-glow 8s ease-in-out infinite alternate; }
.scn-tenderest-strain-pity .cloud { position:absolute; top:15%; left:10%; width:80px; height:20px; background: linear-gradient(180deg, rgba(255,200,150,.5) 0%, rgba(255,200,150,.1) 100%); border-radius: 50%; filter: blur(6px); animation: ts-cloud 30s linear infinite; }

@keyframes ts-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes ts-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ts-tree { 0% { transform: rotate(0); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0); } }
@keyframes ts-player { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-3px) rotate(1deg); } }
@keyframes ts-harp { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes ts-listener { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ts-glow { 0% { opacity: .5; transform: scale(1); } 50% { opacity: .8; transform: scale(1.2); } 100% { opacity: .6; transform: scale(1); } }
@keyframes ts-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }


/* Scene 4: pity-blush-embrace-kiss (emotional, moonlight) */

.scn-pity-blush-embrace-kiss {
  background:
    linear-gradient(180deg, #0e1a2a 0%, #1a2a3a 40%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 10%, #4a6a8a 0%, transparent 70%);
}
.scn-pity-blush-embrace-kiss .moon-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 60%, #2a3a4a 100%); animation: pb-sky 12s ease-in-out infinite alternate; }
.scn-pity-blush-embrace-kiss .moon { position:absolute; top:8%; left:50%; width:50px; height:50px; background: radial-gradient(circle at 40% 40%, #d0d8e0 0%, #8890a0 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(136,144,160,.4); animation: pb-moon 25s linear infinite; }
.scn-pity-blush-embrace-kiss .stars { position:absolute; top:5%; left:20%; width:6px; height:6px; background: radial-gradient(circle, #e0e8f0 0%, transparent 100%); border-radius: 50%; box-shadow: 30px 20px 0 0 #e0e8f0, 60px 40px 0 0 #d0d8e0, -20px 30px 0 0 #e0e8f0; animation: pb-stars 6s ease-in-out infinite alternate; }
.scn-pity-blush-embrace-kiss .garden-arch { position:absolute; bottom:30%; left:25%; width:50%; height:50%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: pb-arch 20s ease-in-out infinite alternate; }
.scn-pity-blush-embrace-kiss .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 / 20% 30% 0 0; animation: pb-ground 8s ease-in-out infinite alternate; }
.scn-pity-blush-embrace-kiss .figure-a { position:absolute; bottom:28%; left:42%; width:22px; height:48px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 20% 20% / 30% 30% 20% 20%; transform-origin: bottom center; animation: pb-figure-a 6s ease-in-out infinite; }
.scn-pity-blush-embrace-kiss .figure-b { position:absolute; bottom:28%; left:48%; width:22px; height:48px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 20% 20% / 30% 30% 20% 20%; transform-origin: bottom center; animation: pb-figure-b 6s ease-in-out infinite; }
.scn-pity-blush-embrace-kiss .leaves { position:absolute; top:15%; left:30%; width:10px; height:10px; background: radial-gradient(circle, #4a7a4a 0%, transparent 100%); border-radius: 50%; box-shadow: 15px 10px 0 0 #5a8a5a, -10px 20px 0 0 #4a7a4a; animation: pb-leaves 9s ease-in-out infinite; }

@keyframes pb-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes pb-moon { 0% { transform: translateX(0); } 50% { transform: translateX(-8px); } 100% { transform: translateX(0); } }
@keyframes pb-stars { 0% { opacity: .4; } 50% { opacity: 1; } 100% { opacity: .5; } }
@keyframes pb-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes pb-ground { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes pb-figure-a { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(-2deg); } 50% { transform: translateX(4px) rotate(0); } 75% { transform: translateX(2px) rotate(2deg); } }
@keyframes pb-figure-b { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-2px) rotate(2deg); } 50% { transform: translateX(-4px) rotate(0); } 75% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes pb-leaves { 0% { transform: translateY(0) rotate(0); opacity: .6; } 50% { transform: translateY(-10px) rotate(30deg); opacity: 1; } 100% { transform: translateY(0) rotate(-30deg); opacity: .7; } }

/* skeltoniad-variants – calm dim interior */

.scn-skeltoniad-variants {
  background: linear-gradient(180deg, #3a2e2a 0%, #2a1f1c 40%, #1e1512 80%),
              radial-gradient(ellipse at 50% 100%, #4a3a32 0%, transparent 60%);
}
.scn-skeltoniad-variants .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4c3c34 0%, #2a1f1c 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-skeltoniad-variants .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1f1c 0%, #1a1210 100%);
  box-shadow: inset 0 12px 20px -6px rgba(0,0,0,0.6);
}
.scn-skeltoniad-variants .desk {
  position: absolute; bottom: 28%; left: 10%; width: 28%; height: 8%;
  background: linear-gradient(180deg, #6a5a4e 0%, #4a3a32 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: skv-desk 14s ease-in-out infinite;
}
.scn-skeltoniad-variants .book {
  position: absolute; bottom: 32%; left: 16%; width: 10%; height: 6%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 6% 6% 4% 4%;
  transform: rotate(-3deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: skv-book 8s ease-in-out infinite alternate;
}
.scn-skeltoniad-variants .trumpet {
  position: absolute; bottom: 30%; left: 40%; width: 14%; height: 4%;
  background: linear-gradient(135deg, #b89870 0%, #8a7050 50%, #6a5030 100%);
  border-radius: 40% 60% 80% 20% / 60% 80% 20% 40%;
  filter: blur(0.5px);
  animation: skv-trumpet 6s ease-in-out infinite alternate;
}
.scn-skeltoniad-variants .bed {
  position: absolute; bottom: 15%; right: 10%; width: 35%; height: 20%;
  background: linear-gradient(180deg, #5a4a3e 0%, #3a2a22 100%);
  border-radius: 8% 8% 20% 20%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-skeltoniad-variants .window {
  position: absolute; top: 12%; left: 50%; width: 24%; height: 20%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 20% 20% 8% 8% / 40% 40% 10% 10%;
  box-shadow: inset 0 0 30px rgba(100,150,200,0.2);
  animation: skv-window 12s ease-in-out infinite;
}
.scn-skeltoniad-variants .candle {
  position: absolute; bottom: 33%; left: 22%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #f0c080 0%, #c08040 50%, #a06030 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(200,120,40,0.5), 0 0 60px 20px rgba(200,120,40,0.2);
  animation: skv-candle 3s ease-in-out infinite alternate;
}
@keyframes skv-desk {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes skv-book {
  0% { transform: rotate(-3deg) scale(1); opacity: 0.9; }
  50% { transform: rotate(-1deg) scale(1.02); opacity: 1; }
  100% { transform: rotate(-3deg) scale(1); opacity: 0.9; }
}
@keyframes skv-trumpet {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(2px); }
  100% { transform: rotate(-2deg) translateX(-1px); }
}
@keyframes skv-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(100,150,200,0.1); }
  50% { opacity: 1; box-shadow: inset 0 0 40px rgba(100,150,200,0.3); }
  100% { opacity: 0.75; box-shadow: inset 0 0 25px rgba(100,150,200,0.15); }
}
@keyframes skv-candle {
  0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 25px 8px rgba(200,120,40,0.4); }
  50% { transform: scaleY(1.05) scaleX(0.95); box-shadow: 0 0 40px 15px rgba(200,120,40,0.6); }
  100% { transform: scaleY(0.95) scaleX(1.05); box-shadow: 0 0 30px 10px rgba(200,120,40,0.45); }
}

/* skeltoniad-poem-lines – tense dark */

.scn-skeltoniad-poem-lines {
  background: linear-gradient(180deg, #0f0a0a 0%, #1a1010 30%, #0a0505 70%),
              radial-gradient(ellipse at 40% 100%, #1a0a0a 0%, transparent 70%);
}
.scn-skeltoniad-poem-lines .bg-dark {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0c0808 0%, #1a0e0e 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
}
.scn-skeltoniad-poem-lines .floor-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #0a0505 0%, #000 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
}
.scn-skeltoniad-poem-lines .wall-crack {
  position: absolute; top: 20%; left: 30%; width: 2%; height: 30%;
  background: #2a1510;
  border-radius: 20% 80% 60% 40% / 30% 70% 40% 60%;
  transform: rotate(15deg);
  animation: skp-crack 5s ease-in-out infinite;
}
.scn-skeltoniad-poem-lines .clock {
  position: absolute; top: 8%; left: 55%; width: 16%; height: 20%;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 45% 45%;
  box-shadow: 0 0 20px rgba(100,60,20,0.3);
  animation: skp-clock 2s ease-in-out infinite;
}
.scn-skeltoniad-poem-lines .trumpet-angular {
  position: absolute; bottom: 25%; left: 20%; width: 18%; height: 6%;
  background: linear-gradient(135deg, #8a6040 0%, #5a3a20 50%, #3a2010 100%);
  clip-path: polygon(10% 20%, 90% 30%, 80% 80%, 20% 70%);
  filter: blur(1px);
  animation: skp-trumpet 1.5s ease-in-out infinite alternate;
}
.scn-skeltoniad-poem-lines .figure-silhouette {
  position: absolute; bottom: 15%; right: 20%; width: 16%; height: 40%;
  background: radial-gradient(ellipse at 50% 20%, #1a1210 0%, #000 70%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: skp-figure 3s ease-in-out infinite;
}
.scn-skeltoniad-poem-lines .light-source {
  position: absolute; bottom: 30%; left: 40%; width: 6%; height: 8%;
  background: radial-gradient(circle, #ffd060 0%, #c08020 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,200,80,0.5);
  animation: skp-light 0.8s ease-in-out infinite alternate;
}
.scn-skeltoniad-poem-lines .shadow-stretch {
  position: absolute; bottom: 10%; left: 20%; width: 20%; height: 30%;
  background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  transform: skewX(-20deg);
  animation: skp-shadow 4s ease-in-out infinite;
}
@keyframes skp-crack {
  0%, 100% { opacity: 0.5; transform: rotate(15deg) scaleY(1); }
  50% { opacity: 1; transform: rotate(17deg) scaleY(1.05); }
}
@keyframes skp-clock {
  0% { transform: rotate(0deg) scale(1); }
  25% { transform: rotate(2deg) scale(1.02); }
  50% { transform: rotate(-2deg) scale(1); }
  75% { transform: rotate(1deg) scale(0.98); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes skp-trumpet {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(3deg); }
  100% { transform: translateX(-3px) rotate(-2deg); }
}
@keyframes skp-figure {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(5px) rotate(2deg); }
  70% { transform: translateX(-8px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes skp-light {
  0% { box-shadow: 0 0 40px 10px rgba(255,200,80,0.3); opacity: 0.7; }
  50% { box-shadow: 0 0 80px 30px rgba(255,200,80,0.6); opacity: 1; }
  100% { box-shadow: 0 0 50px 15px rgba(255,200,80,0.35); opacity: 0.8; }
}
@keyframes skp-shadow {
  0%, 100% { transform: skewX(-20deg) translateY(0); opacity: 0.6; }
  50% { transform: skewX(-25deg) translateY(3px); opacity: 1; }
}

/* snowdrop-intro – calm dim interior */

.scn-snowdrop-intro {
  background: linear-gradient(180deg, #2c3a40 0%, #1c2830 40%, #0e161a 80%),
              radial-gradient(ellipse at 50% 120%, #3a4a50 0%, transparent 60%);
}
.scn-snowdrop-intro .bg-room {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a4a50 0%, #1c2830 100%);
  border-radius: 0 0 15% 15% / 0 0 10% 10%;
}
.scn-snowdrop-intro .window-arch {
  position: absolute; top: 8%; left: 30%; width: 40%; height: 35%;
  background: linear-gradient(180deg, #2a3a44 0%, #1a2a34 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 0 40px rgba(150,180,200,0.15);
  animation: si-window 10s ease-in-out infinite;
}
.scn-snowdrop-intro .snow-outside {
  position: absolute; top: 10%; left: 32%; width: 36%; height: 30%;
  background: linear-gradient(180deg, #d8e4ea 0%, #a8b8c4 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  filter: blur(4px);
  opacity: 0.6;
  animation: si-snow 20s linear infinite;
}
.scn-snowdrop-intro .windowsill {
  position: absolute; bottom: 35%; left: 30%; width: 40%; height: 4%;
  background: linear-gradient(180deg, #4a5a62 0%, #2a3a42 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-snowdrop-intro .pot {
  position: absolute; bottom: 28%; left: 42%; width: 16%; height: 14%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 8% 8% / 30% 30% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-snowdrop-intro .flower-droop {
  position: absolute; bottom: 38%; left: 46%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #e8f0f2 0%, #b0c8d0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: si-flower 6s ease-in-out infinite alternate;
}
.scn-snowdrop-intro .snowflakes-layer {
  position: absolute; top: 5%; left: 0; right: 0; height: 50%;
  background: radial-gradient(2px 2px at 10% 20%, rgba(255,255,255,0.3) 0%, transparent 100%),
              radial-gradient(1px 1px at 30% 50%, rgba(255,255,255,0.2) 0%, transparent 100%),
              radial-gradient(1.5px 1.5px at 60% 15%, rgba(255,255,255,0.25) 0%, transparent 100%),
              radial-gradient(2px 2px at 80% 60%, rgba(255,255,255,0.3) 0%, transparent 100%);
  animation: si-snowflakes 40s linear infinite;
  pointer-events: none;
}
.scn-snowdrop-intro .snowflakes-layer-2 {
  position: absolute; top: 5%; left: 0; right: 0; height: 50%;
  background: radial-gradient(1px 1px at 15% 10%, rgba(255,255,255,0.2) 0%, transparent 100%),
              radial-gradient(2px 2px at 45% 70%, rgba(255,255,255,0.25) 0%, transparent 100%),
              radial-gradient(1.5px 1.5px at 70% 30%, rgba(255,255,255,0.2) 0%, transparent 100%);
  animation: si-snowflakes2 55s linear infinite;
  animation-delay: -15s;
  pointer-events: none;
}
@keyframes si-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 30px rgba(150,180,200,0.1); }
  50% { opacity: 1; box-shadow: inset 0 0 50px rgba(150,180,200,0.3); }
  100% { opacity: 0.75; box-shadow: inset 0 0 35px rgba(150,180,200,0.15); }
}
@keyframes si-snow {
  0% { transform: translateY(0); opacity: 0.5; }
  50% { transform: translateY(8px); opacity: 0.7; }
  100% { transform: translateY(0); opacity: 0.5; }
}
@keyframes si-flower {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(1.03); }
  100% { transform: rotate(-5deg) scaleY(0.97); }
}
@keyframes si-snowflakes {
  0% { background-position: 0 0; }
  100% { background-position: 100% 200%; }
}
@keyframes si-snowflakes2 {
  0% { background-position: 0 0; }
  100% { background-position: -100% 150%; }
}

/* snowdrop-body – warm dawn */

.scn-snowdrop-body {
  background: linear-gradient(180deg, #f0dcc0 0%, #e8c898 20%, #c89060 50%, #6a4030 80%),
              radial-gradient(ellipse at 50% 80%, #f0d090 0%, transparent 70%);
}
.scn-snowdrop-body .bg-dawn {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f8e4c8 0%, #e0bc90 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
}
.scn-snowdrop-body .sun-horizon {
  position: absolute; bottom: 40%; left: 40%; width: 20%; height: 20%;
  background: radial-gradient(circle, #ffe8a0 0%, #f0c060 40%, transparent 70%);
  border-radius: 50%;
  animation: sb-sun 15s ease-in-out infinite alternate;
}
.scn-snowdrop-body .figure-stretch {
  position: absolute; bottom: 20%; left: 38%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: sb-figure 8s ease-in-out infinite;
}
.scn-snowdrop-body .snow-bed {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a8 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 12px 20px -6px rgba(0,0,0,0.2);
  animation: sb-snow 12s ease-in-out infinite;
}
.scn-snowdrop-body .flower-clump {
  position: absolute; bottom: 22%; left: 20%; width: 12%; height: 8%;
  background: radial-gradient(ellipse, #e8f0e0 0%, #b8c8b0 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  filter: blur(1px);
  animation: sb-flowers 6s ease-in-out infinite alternate;
}
.scn-snowdrop-body .laurel-branch {
  position: absolute; bottom: 28%; right: 15%; width: 25%; height: 10%;
  background: linear-gradient(135deg, #4a6a3a 0%, #2a4a1a 50%, #1a2a0a 100%);
  clip-path: polygon(10% 30%, 30% 20%, 50% 40%, 70% 10%, 90% 30%, 80% 60%, 60% 70%, 40% 60%, 20% 80%);
  animation: sb-laurel 10s ease-in-out infinite;
}
.scn-snowdrop-body .dewdrop {
  position: absolute; bottom: 30%; border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #ffffff 0%, #b0c8d0 100%);
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  animation: sb-dew 4s ease-in-out infinite;
}
.scn-snowdrop-body .dewdrop-1 {
  width: 3%; height: 3%; left: 22%; bottom: 34%;
  animation-delay: 0s;
}
.scn-snowdrop-body .dewdrop-2 {
  width: 2%; height: 2%; left: 50%; bottom: 32%;
  animation-delay: -1.5s;
}
.scn-snowdrop-body .dewdrop-3 {
  width: 2.5%; height: 2.5%; left: 70%; bottom: 36%;
  animation-delay: -3s;
}
@keyframes sb-sun {
  0% { transform: scale(0.95) translateY(0); opacity: 0.8; box-shadow: 0 0 40px 10px rgba(240,192,96,0.2); }
  50% { transform: scale(1.05) translateY(-5px); opacity: 1; box-shadow: 0 0 80px 30px rgba(240,192,96,0.4); }
  100% { transform: scale(0.98) translateY(2px); opacity: 0.85; box-shadow: 0 0 50px 15px rgba(240,192,96,0.25); }
}
@keyframes sb-figure {
  0% { transform: scaleY(1) rotate(0deg); }
  30% { transform: scaleY(1.08) rotate(3deg); }
  60% { transform: scaleY(1.02) rotate(-2deg); }
  100% { transform: scaleY(1) rotate(0deg); }
}
@keyframes sb-snow {
  0% { transform: translateY(0); opacity: 0.9; }
  50% { transform: translateY(-3px); opacity: 1; }
  100% { transform: translateY(0); opacity: 0.9; }
}
@keyframes sb-flowers {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.05); }
  100% { transform: rotate(-4deg) scale(0.95); }
}
@keyframes sb-laurel {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(4px); }
  100% { transform: rotate(-2deg) translateX(-3px); }
}
@keyframes sb-dew {
  0% { transform: scale(1) translateY(0); opacity: 0.8; }
  50% { transform: scale(1.2) translateY(-2px); opacity: 1; }
  100% { transform: scale(1) translateY(0); opacity: 0.8; }
}

/* dejection-variants */

.scn-dejection-variants {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 100%),
    radial-gradient(ellipse at 50% 100%, #4a4a5e 0%, transparent 100%);
}
.scn-dejection-variants .room {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 50%, #0e0e1a 100%);
  animation: dv-ambient 15s ease-in-out infinite alternate;
}
.scn-dejection-variants .window {
  position: absolute; left: 5%; top: 5%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #4a6a8e 0%, #2a4a6e 50%, #1a2a3e 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: dv-window 20s ease-in-out infinite alternate;
}
.scn-dejection-variants .desk {
  position: absolute; bottom: 8%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5);
  animation: dv-desk 12s ease-in-out infinite;
}
.scn-dejection-variants .candle {
  position: absolute; bottom: 25%; left: 45%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #ffd080 0%, #b08040 60%, #5a3010 100%);
  border-radius: 4px; box-shadow: 0 0 24px 8px #ffd060, 0 0 48px 16px rgba(255,208,96,.3);
  animation: dv-candle 3s ease-in-out infinite alternate;
}
.scn-dejection-variants .figure {
  position: absolute; bottom: 16%; left: 50%; width: 10%; height: 28%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: dv-figure 6s ease-in-out infinite;
}
.scn-dejection-variants .book {
  position: absolute; bottom: 10%; left: 55%; width: 12%; height: 8%;
  background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 2px; transform: rotate(-5deg); box-shadow: 2px 2px 6px rgba(0,0,0,.4);
  animation: dv-book 8s ease-in-out infinite alternate;
}
.scn-dejection-variants .shadow {
  position: absolute; bottom: 8%; left: 35%; right: 30%; height: 4%;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  animation: dv-shadow 10s ease-in-out infinite alternate;
}
@keyframes dv-ambient {
  0% { opacity: .9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.01); }
  100% { opacity: .85; transform: scale(1); }
}
@keyframes dv-window {
  0% { opacity: .7; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.2); }
  100% { opacity: .8; filter: brightness(0.9); }
}
@keyframes dv-desk {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes dv-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: .9; box-shadow: 0 0 20px 6px #ffd060; }
  30% { transform: scaleY(1.05) scaleX(0.98); opacity: 1; box-shadow: 0 0 28px 10px #ffd080; }
  60% { transform: scaleY(0.97) scaleX(1.02); opacity: .95; box-shadow: 0 0 22px 7px #ffd060; }
  100% { transform: scaleY(1) scaleX(1); opacity: .9; box-shadow: 0 0 18px 5px #c08040; }
}
@keyframes dv-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0); }
  25% { transform: translateX(-48%) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0); }
  75% { transform: translateX(-52%) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes dv-book {
  0% { transform: rotate(-5deg) translate(0); }
  50% { transform: rotate(-3deg) translate(2px, -1px); }
  100% { transform: rotate(-7deg) translate(-1px, 1px); }
}
@keyframes dv-shadow {
  0% { transform: scaleX(1); opacity: .6; }
  50% { transform: scaleX(1.1); opacity: .8; }
  100% { transform: scaleX(0.95); opacity: .5; }
}

/* the-picture-intro */

.scn-the-picture-intro {
  background:
    linear-gradient(180deg, #1a2a2a 0%, #2a3a3a 40%, #3a4a3a 100%),
    radial-gradient(ellipse at 50% 100%, #2a4a2a 0%, transparent 80%);
}
.scn-the-picture-intro .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a2a2a 0%, #2a3a2a 100%);
  animation: pi-sky 20s ease-in-out infinite alternate;
}
.scn-the-picture-intro .ground {
  position: absolute; bottom: 0; left: 0; right: 0; top: 50%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 40% 20% 0 0 / 60% 30% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.5);
  animation: pi-ground 25s ease-in-out infinite alternate;
}
.scn-the-picture-intro .tree-left {
  position: absolute; left: 8%; top: 5%; width: 6%; height: 70%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 10% 10% 0 0;
  transform: skewY(-3deg);
  animation: pi-tree 15s ease-in-out infinite alternate;
}
.scn-the-picture-intro .tree-right {
  position: absolute; right: 12%; top: 10%; width: 5%; height: 60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 10% 10% 0 0;
  transform: skewY(2deg);
  animation: pi-tree 18s ease-in-out infinite alternate-reverse;
}
.scn-the-picture-intro .path {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 50%, #2a2a1a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  transform: rotate(5deg);
  animation: pi-path 12s ease-in-out infinite;
}
.scn-the-picture-intro .figure-walk {
  position: absolute; bottom: 22%; left: 48%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pi-walk 3s ease-in-out infinite;
}
.scn-the-picture-intro .leaf {
  position: absolute; top: 30%; left: 20%; width: 3%; height: 2%;
  background: radial-gradient(circle, #5a6a3a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: pi-leaf 12s linear infinite;
}
.scn-the-picture-intro .leaf-delay {
  left: 70%; top: 25%;
  animation-delay: -5s;
  animation-duration: 15s;
}
@keyframes pi-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes pi-ground {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(2px) scaleY(0.98); }
}
@keyframes pi-tree {
  0% { transform: skewY(-3deg) scaleY(1); }
  50% { transform: skewY(-1deg) scaleY(1.01); }
  100% { transform: skewY(-5deg) scaleY(0.99); }
}
@keyframes pi-path {
  0% { transform: rotate(5deg) scaleX(1); }
  50% { transform: rotate(3deg) scaleX(1.05); }
  100% { transform: rotate(7deg) scaleX(0.95); }
}
@keyframes pi-walk {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(15px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(22px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(30px) translateY(0) rotate(0); }
}
@keyframes pi-leaf {
  0% { transform: translateY(0) rotate(0deg); opacity: 0; }
  10% { opacity: .8; }
  50% { transform: translateY(200px) rotate(180deg); opacity: .6; }
  90% { opacity: .4; }
  100% { transform: translateY(400px) rotate(360deg); opacity: 0; }
}

/* the-picture-body */

.scn-the-picture-body {
  background: 
    linear-gradient(180deg, #7a9a7a 0%, #c0d0b0 40%, #e0e8d0 100%),
    radial-gradient(ellipse at 50% 0%, #f0f8e0 0%, transparent 70%);
}
.scn-the-picture-body .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b0d0b0 0%, #d0e0c0 100%);
  animation: pb-sky 20s ease-in-out infinite alternate;
}
.scn-the-picture-body .sunbeam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 70%;
  background: linear-gradient(135deg, rgba(255,240,200,0.6) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: pb-beam 10s ease-in-out infinite alternate;
}
.scn-the-picture-body .tree-trunk {
  position: absolute; bottom: 20%; left: 50%; width: 20%; height: 60%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 60%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 10px 30px rgba(0,0,0,.4);
  animation: pb-trunk 18s ease-in-out infinite;
}
.scn-the-picture-body .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%);
  border-radius: 60% 40% 0 0 / 80% 50% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.2);
  animation: pb-ground 15s ease-in-out infinite alternate;
}
.scn-the-picture-body .figure-sit {
  position: absolute; bottom: 22%; left: 42%; width: 8%; height: 24%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 50% 50%;
  transform-origin: bottom center;
  animation: pb-sit 6s ease-in-out infinite;
}
.scn-the-picture-body .flower {
  position: absolute; bottom: 15%; left: 30%; width: 4%; height: 4%;
  background: radial-gradient(circle, #d0b070 0%, #a08050 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: pb-flower 8s ease-in-out infinite alternate;
}
.scn-the-picture-body .butterfly {
  position: absolute; top: 25%; left: 60%; width: 3%; height: 2%;
  background: radial-gradient(circle, #b08060 0%, #906040 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: pb-butterfly 12s linear infinite;
}
@keyframes pb-sky {
  0% { opacity: .85; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes pb-beam {
  0% { transform: rotate(-5deg) translateX(0); opacity: .7; }
  50% { transform: rotate(0deg) translateX(10px); opacity: 1; }
  100% { transform: rotate(5deg) translateX(-5px); opacity: .8; }
}
@keyframes pb-trunk {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes pb-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes pb-sit {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes pb-flower {
  0% { transform: scale(1) rotate(0); }
  50% { transform: scale(1.2) rotate(10deg); }
  100% { transform: scale(0.9) rotate(-5deg); }
}
@keyframes pb-butterfly {
  0% { transform: translate(0, 0) scale(1); }
  25% { transform: translate(30px, -20px) scale(1.1); }
  50% { transform: translate(60px, 0) scale(0.9); }
  75% { transform: translate(30px, 20px) scale(1.05); }
  100% { transform: translate(0, 0) scale(1); }
}

/* the-picture-variants */

.scn-the-picture-variants {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 100%),
    radial-gradient(circle at 50% 60%, #4a3a2a 0%, transparent 60%);
}
.scn-the-picture-variants .desk-surface {
  position: absolute; inset: 10% 5% 5% 5%;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 8px;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.6);
  animation: pv-surface 20s ease-in-out infinite alternate;
}
.scn-the-picture-variants .manuscript {
  position: absolute; top: 25%; left: 25%; right: 25%; bottom: 25%;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: pv-manuscript 15s ease-in-out infinite alternate;
}
.scn-the-picture-variants .inkwell {
  position: absolute; top: 30%; right: 20%; width: 8%; height: 8%;
  background: radial-gradient(circle, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  animation: pv-inkwell 12s ease-in-out infinite;
}
.scn-the-picture-variants .quill {
  position: absolute; top: 25%; right: 22%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #c0a070 0%, #806040 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  transform: rotate(15deg);
  transform-origin: bottom right;
  animation: pv-quill 8s ease-in-out infinite alternate;
}
.scn-the-picture-variants .candle-top {
  position: absolute; top: 40%; left: 30%; width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 30%, #ffe080 0%, #b07030 70%, #4a2010 100%);
  border-radius: 4px;
  box-shadow: 0 0 30px 12px #ffd060, 0 0 60px 24px rgba(255,208,96,.3);
  animation: pv-candle 3s ease-in-out infinite alternate;
}
.scn-the-picture-variants .shadow-ring {
  position: absolute; bottom: 20%; left: 28%; right: 28%; height: 4%;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%);
  animation: pv-shadow 10s ease-in-out infinite alternate;
}
.scn-the-picture-variants .page-curl {
  position: absolute; top: 25%; left: 30%; width: 8%; height: 30%;
  background: linear-gradient(135deg, #a08060 0%, #c8b090 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 80%);
  transform-origin: top left;
  animation: pv-curl 6s ease-in-out infinite alternate;
}
@keyframes pv-surface {
  0% { transform: scale(1); }
  50% { transform: scale(1.005); }
  100% { transform: scale(0.995); }
}
@keyframes pv-manuscript {
  0% { opacity: .9; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.05); }
  100% { opacity: .85; filter: brightness(0.95); }
}
@keyframes pv-inkwell {
  0% { transform: translate(0, 0); }
  50% { transform: translate(1px, -1px); }
  100% { transform: translate(-1px, 1px); }
}
@keyframes pv-quill {
  0% { transform: rotate(15deg) scaleY(1); }
  50% { transform: rotate(10deg) scaleY(1.05); }
  100% { transform: rotate(20deg) scaleY(0.95); }
}
@keyframes pv-candle {
  0% { transform: scale(1); opacity: .9; box-shadow: 0 0 24px 8px #ffd060; }
  30% { transform: scale(1.02); opacity: 1; box-shadow: 0 0 32px 12px #ffe080; }
  70% { transform: scale(0.98); opacity: .95; box-shadow: 0 0 20px 6px #c08040; }
  100% { transform: scale(1); opacity: .9; box-shadow: 0 0 28px 10px #d09050; }
}
@keyframes pv-shadow {
  0% { transform: scaleX(1); opacity: .5; }
  50% { transform: scaleX(1.1); opacity: .7; }
  100% { transform: scaleX(0.9); opacity: .4; }
}
@keyframes pv-curl {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(-5deg) scaleY(1.02); }
  100% { transform: rotate(5deg) scaleY(0.98); }
}

/* promise-spring-return – hopeful dawn */

.scn-promise-spring-return {
  background: linear-gradient(180deg, #f9d3b0 0%, #f2b8a0 20%, #c8a8c8 50%, #7080a0 100%),
              radial-gradient(ellipse at 50% 0%, #fed8b0 0%, transparent 60%);
}
.scn-promise-spring-return .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #ffe0c0 0%, #d0b0d0 60%, transparent 100%);
  animation: ps-sky 12s ease-in-out infinite alternate;
}
.scn-promise-spring-return .sun {
  position:absolute; bottom:55%; left:70%; width:50px; height:50px;
  background: radial-gradient(circle, #ffd080 0%, #ff9040 60%, transparent 80%);
  border-radius:50%;
  box-shadow: 0 0 50px 20px rgba(255,160,80,.5), 0 0 100px 40px rgba(255,200,100,.3);
  animation: ps-sun 8s ease-in-out infinite alternate;
}
.scn-promise-spring-return .hills-back {
  position:absolute; bottom:30%; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #a0c8a0 0%, #608860 100%);
  border-radius: 60% 40% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.2);
  animation: ps-hills 15s ease-in-out infinite alternate;
}
.scn-promise-spring-return .hills-front {
  position:absolute; bottom:15%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #80b080 0%, #406840 100%);
  border-radius: 50% 50% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: ps-hills 20s ease-in-out infinite alternate-reverse;
}
.scn-promise-spring-return .figure {
  position:absolute; bottom:25%; left:50%; width:20px; height:50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: ps-figure 6s ease-in-out infinite;
}
.scn-promise-spring-return .flower-left {
  position:absolute; bottom:22%; left:35%; width:12px; height:12px;
  background: radial-gradient(circle, #c8a0ff 20%, #9860d0 50%, transparent 70%);
  border-radius:50%;
  animation: ps-flower 5s ease-in-out infinite alternate;
}
.scn-promise-spring-return .flower-right {
  position:absolute; bottom:25%; right:30%; width:10px; height:10px;
  background: radial-gradient(circle, #ffb0d0 20%, #d06080 50%, transparent 70%);
  border-radius:50%;
  animation: ps-flower 7s ease-in-out infinite alternate-reverse;
}
@keyframes ps-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.7} }
@keyframes ps-sun { 0%{transform:scale(.9);box-shadow:0 0 40px 15px rgba(255,160,80,.4)} 50%{transform:scale(1.05);box-shadow:0 0 60px 25px rgba(255,200,100,.6)} 100%{transform:scale(.95);box-shadow:0 0 45px 20px rgba(255,160,80,.5)} }
@keyframes ps-hills { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(0)} }
@keyframes ps-figure { 0%{transform:translateX(-50%) rotate(-1deg)} 50%{transform:translateX(-50%) translateY(-2px) rotate(1deg)} 100%{transform:translateX(-50%) rotate(0)} }
@keyframes ps-flower { 0%{transform:scale(.8) rotate(-10deg)} 50%{transform:scale(1.1) rotate(5deg)} 100%{transform:scale(.9) rotate(10deg)} }

/* forget-me-not-variants – bright interior botanical */

.scn-forget-me-not-variants {
  background: linear-gradient(180deg, #f5f0e8 0%, #e8dcc8 100%),
              radial-gradient(ellipse at 50% 100%, #d0c8b8 0%, transparent 70%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.05);
}
.scn-forget-me-not-variants .table {
  position:absolute; bottom:0; left:5%; right:5%; height:18%;
  background: linear-gradient(180deg, #b89878 0%, #907058 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.15);
}
.scn-forget-me-not-variants .pot {
  position:absolute; bottom:18%; left:50%; width:60px; height:70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c87040 0%, #a05830 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 5% 5%;
  box-shadow: 0 4px 10px rgba(0,0,0,.2);
}
.scn-forget-me-not-variants .stem {
  position:absolute; bottom:45%; left:50%; width:6px; height:50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a9a3a 0%, #3a7a2a 100%);
  border-radius: 3px;
  animation: fg-stem 6s ease-in-out infinite;
}
.scn-forget-me-not-variants .leaf-left {
  position:absolute; bottom:55%; left:45%; width:30px; height:12px;
  background: linear-gradient(180deg, #5a9a3a 0%, #3a7a2a 100%);
  border-radius: 50% 0 50% 0 / 100% 0 100% 0;
  transform: rotate(30deg);
  transform-origin: right center;
  animation: fg-leaf 8s ease-in-out infinite alternate;
}
.scn-forget-me-not-variants .leaf-right {
  position:absolute; bottom:60%; right:45%; width:28px; height:10px;
  background: linear-gradient(180deg, #5a9a3a 0%, #3a7a2a 100%);
  border-radius: 0 50% 0 50% / 0 100% 0 100%;
  transform: rotate(-25deg);
  transform-origin: left center;
  animation: fg-leaf 10s ease-in-out infinite alternate-reverse;
}
.scn-forget-me-not-variants .flower-head {
  position:absolute; bottom:72%; left:50%; width:40px; height:40px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 50%, #ffd700 5%, #4a7cbf 10%, #4a7cbf 30%, #2a5c9f 50%, #1a3c7f 70%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.15);
  animation: fg-flower 5s ease-in-out infinite alternate;
}
.scn-forget-me-not-variants .flower-eye {
  position:absolute; bottom:74%; left:50%; width:10px; height:10px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe040 0%, #ffb000 100%);
  border-radius: 50%;
  animation: fg-flower 5s ease-in-out infinite alternate;
}
@keyframes fg-stem { 0%{transform:translateX(-50%) rotate(-2deg)} 50%{transform:translateX(-50%) rotate(2deg)} 100%{transform:translateX(-50%) rotate(-1deg)} }
@keyframes fg-leaf { 0%{transform:rotate(30deg) scaleY(1)} 50%{transform:rotate(35deg) scaleY(1.1)} 100%{transform:rotate(28deg) scaleY(.95)} }
@keyframes fg-flower { 0%{transform:translateX(-50%) scale(.95)} 50%{transform:translateX(-50%) scale(1.05)} 100%{transform:translateX(-50%) scale(.98)} }

/* thought-blencartha-winds – awe moonlit mountain */

.scn-thought-blencartha-winds {
  background: linear-gradient(180deg, #0a0a20 0%, #1a1a3a 30%, #2a2a4a 60%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 30%, #3a3a5a 0%, transparent 70%);
}
.scn-thought-blencartha-winds .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 50%, transparent 100%);
  animation: bl-sky 15s ease-in-out infinite alternate;
}
.scn-thought-blencartha-winds .moon {
  position:absolute; top:12%; left:50%; width:50px; height:50px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e8e8f0 0%, #c0c0d0 60%, #9090b0 100%);
  border-radius:50%;
  box-shadow: 0 0 40px 15px rgba(200,200,230,.4), 0 0 80px 30px rgba(200,200,230,.15);
  animation: bl-moon 10s ease-in-out infinite alternate;
}
.scn-thought-blencartha-winds .mt-back {
  position:absolute; bottom:30%; left:10%; right:10%; height:35%;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 50%, #0a0a1a 100%);
  border-radius: 30% 40% 0 0 / 60% 70% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
  animation: bl-mt 20s ease-in-out infinite alternate;
}
.scn-thought-blencartha-winds .mt-front {
  position:absolute; bottom:18%; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 80%, #050510 100%);
  border-radius: 20% 50% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: bl-mt 25s ease-in-out infinite alternate-reverse;
}
.scn-thought-blencartha-winds .cloud {
  position:absolute; top:20%; left:30%; width:80px; height:20px;
  background: linear-gradient(180deg, rgba(200,200,230,.3) 0%, rgba(200,200,230,.05) 100%);
  border-radius:50%;
  filter: blur(6px);
  animation: bl-cloud 40s linear infinite;
}
.scn-thought-blencartha-winds .wind-streak-a {
  position:absolute; top:35%; left:-20%; width:150%; height:2px;
  background: linear-gradient(90deg, transparent 0%, rgba(200,220,255,.3) 20%, rgba(200,220,255,.6) 50%, transparent 80%);
  animation: bl-wind 8s linear infinite;
}
.scn-thought-blencartha-winds .wind-streak-b {
  position:absolute; top:50%; left:-10%; width:120%; height:1.5px;
  background: linear-gradient(90deg, transparent 0%, rgba(200,220,255,.2) 30%, rgba(200,220,255,.5) 60%, transparent 90%);
  animation: bl-wind 12s linear infinite 2s;
}
@keyframes bl-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.7} }
@keyframes bl-moon { 0%{transform:translateX(-50%) scale(.95);box-shadow:0 0 35px 12px rgba(200,200,230,.3)} 50%{transform:translateX(-50%) scale(1.02);box-shadow:0 0 50px 20px rgba(200,200,230,.5)} 100%{transform:translateX(-50%) scale(.98);box-shadow:0 0 40px 15px rgba(200,200,230,.4)} }
@keyframes bl-mt { 0%{transform:translateY(0) scaleX(1)} 50%{transform:translateY(-3px) scaleX(1.01)} 100%{transform:translateY(0) scaleX(1)} }
@keyframes bl-cloud { 0%{transform:translateX(-80px)} 100%{transform:translateX(120vw)} }
@keyframes bl-wind { 0%{transform:translateX(0)} 100%{transform:translateX(120vw)} }

/* force-waterfall-reflection – contemplative moonlit waterfall */

.scn-force-waterfall-reflection {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 30%, #0a0a1a 70%, #050510 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a4a 0%, transparent 60%);
}
.scn-force-waterfall-reflection .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #151528 0%, #2a2a4a 50%, transparent 100%);
  animation: wf-sky 12s ease-in-out infinite alternate;
}
.scn-force-waterfall-reflection .moon {
  position:absolute; top:10%; left:50%; width:40px; height:40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e0e0f0 0%, #b0b0d0 60%, #8080b0 100%);
  border-radius:50%;
  box-shadow: 0 0 30px 10px rgba(200,200,230,.4), 0 0 60px 25px rgba(200,200,230,.15);
  animation: wf-moon 10s ease-in-out infinite alternate;
}
.scn-force-waterfall-reflection .cliff-left {
  position:absolute; bottom:20%; left:0; width:30%; height:60%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 80%);
  border-radius: 0 30% 0 0 / 0 50% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,.5);
}
.scn-force-waterfall-reflection .cliff-right {
  position:absolute; bottom:20%; right:0; width:30%; height:55%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 80%);
  border-radius: 30% 0 0 0 / 50% 0 0 0;
  box-shadow: inset 10px 0 20px rgba(0,0,0,.5);
}
.scn-force-waterfall-reflection .waterfall {
  position:absolute; bottom:35%; left:45%; width:10%; height:40%;
  background: linear-gradient(180deg, rgba(200,220,255,.4) 0%, rgba(200,220,255,.8) 40%, rgba(200,220,255,.3) 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  box-shadow: 0 10px 30px rgba(200,220,255,.2);
  animation: wf-fall 4s ease-in-out infinite alternate;
}
.scn-force-waterfall-reflection .pool {
  position:absolute; bottom:0; left:10%; right:10%; height:20%;
  background: linear-gradient(180deg, rgba(20,20,50,.8) 0%, rgba(10,10,30,.9) 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
  overflow: hidden;
}
.scn-force-waterfall-reflection .moon-reflect {
  position:absolute; bottom:8%; left:50%; width:20px; height:20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(200,200,230,.5) 0%, rgba(200,200,230,.05) 70%);
  border-radius:50%;
  animation: wf-reflect 8s ease-in-out infinite alternate;
}
.scn-force-waterfall-reflection .mist {
  position:absolute; bottom:18%; left:35%; right:35%; height:12%;
  background: linear-gradient(180deg, rgba(200,220,255,.15) 0%, rgba(200,220,255,.02) 100%);
  border-radius: 50%;
  filter: blur(12px);
  animation: wf-mist 15s ease-in-out infinite alternate;
}
@keyframes wf-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.7} }
@keyframes wf-moon { 0%{transform:translateX(-50%) scale(.95);box-shadow:0 0 25px 8px rgba(200,200,230,.3)} 50%{transform:translateX(-50%) scale(1.02);box-shadow:0 0 40px 15px rgba(200,200,230,.5)} 100%{transform:translateX(-50%) scale(.98);box-shadow:0 0 30px 10px rgba(200,200,230,.4)} }
@keyframes wf-fall { 0%{transform:translateY(0);opacity:.8} 50%{transform:translateY(-5px);opacity:1} 100%{transform:translateY(3px);opacity:.7} }
@keyframes wf-reflect { 0%{transform:translateX(-50%) scaleY(.5) translateY(0)} 50%{transform:translateX(-50%) scaleY(.7) translateY(2px)} 100%{transform:translateX(-50%) scaleY(.6) translateY(-1px)} }
@keyframes wf-mist { 0%{transform:translateY(0) scaleX(1);opacity:.6} 50%{transform:translateY(-3px) scaleX(1.1);opacity:.8} 100%{transform:translateY(0) scaleX(1);opacity:.5} }

.scn-cottage-pride-humility {
  background: 
    linear-gradient(135deg, #2b1e14 0%, #3a2a1c 50%, #1e140c 100%),
    radial-gradient(ellipse at 70% 60%, #4a3a28 0%, transparent 60%);
}
.scn-cottage-pride-humility .cph-wall {
  position: absolute; inset: 0; background: linear-gradient(0deg, #1e140c 0%, #2b1e14 60%, #3a2a1c 100%); z-index: 1;
}
.scn-cottage-pride-humility .cph-window {
  position: absolute; top: 20%; left: 55%; width: 30%; height: 35%; background: linear-gradient(180deg, #c8b88a 0%, #a89878 40%, #7a6a50 100%); border: 4px solid #4a3a28; border-radius: 4px; box-shadow: inset 0 0 20px rgba(200,184,138,0.3); animation: cph-glow 4s ease-in-out infinite alternate; z-index: 2;
}
.scn-cottage-pride-humility .cph-bookshelf {
  position: absolute; bottom: 10%; left: 10%; width: 35%; height: 30%; background: repeating-linear-gradient(90deg, #5a4a38 0px, #5a4a38 8px, #4a3a28 8px, #4a3a28 16px); border-radius: 2px; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); z-index: 3;
}
.scn-cottage-pride-humility .cph-figure-bowing {
  position: absolute; bottom: 12%; left: 40%; width: 20px; height: 50px; background: radial-gradient(ellipse at 50% 20%, #3a2a1c 0%, #1e140c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: cph-bow 6s ease-in-out infinite; z-index: 4;
}
.scn-cottage-pride-humility .cph-devil-peep {
  position: absolute; top: 5%; right: 5%; width: 30px; height: 40px; background: #1a1008; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: inset 0 0 8px #0a0502; clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 80%, 0 100%); animation: cph-peep 8s ease-in-out infinite; z-index: 5;
}
.scn-cottage-pride-humility .cph-lamp {
  position: absolute; top: 15%; left: 20%; width: 12px; height: 12px; background: radial-gradient(circle, #e8c878 0%, #b89840 60%, #4a3a28 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #b89840, 0 0 40px 12px rgba(184,152,64,0.4); animation: cph-lamp-pulse 3s ease-in-out infinite alternate; z-index: 6;
}
@keyframes cph-glow { 0% { opacity: 0.7; box-shadow: inset 0 0 10px rgba(200,184,138,0.2); } 50% { opacity: 1; box-shadow: inset 0 0 30px rgba(200,184,138,0.5); } 100% { opacity: 0.8; box-shadow: inset 0 0 15px rgba(200,184,138,0.3); } }
@keyframes cph-bow { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-5px) rotate(20deg); } 50% { transform: translateX(0) rotate(-5deg); } 75% { transform: translateX(5px) rotate(15deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cph-peep { 0% { transform: translate(0, 0) scale(1); } 30% { transform: translate(10px, -5px) scale(0.9); } 60% { transform: translate(0, 0) scale(1); } 80% { transform: translate(-5px, 5px) scale(1.1); } 100% { transform: translate(0, 0) scale(1); } }
@keyframes cph-lamp-pulse { 0% { transform: scale(1); box-shadow: 0 0 15px 4px #b89840, 0 0 30px 8px rgba(184,152,64,0.3); } 50% { transform: scale(1.1); box-shadow: 0 0 25px 8px #e8c878, 0 0 50px 16px rgba(232,200,120,0.5); } 100% { transform: scale(1); box-shadow: 0 0 15px 4px #b89840, 0 0 30px 8px rgba(184,152,64,0.3); } }

.scn-pig-swimming-own-throat {
  background: 
    linear-gradient(180deg, #87CEEB 0%, #FFDAB9 40%, #98FB98 100%),
    radial-gradient(ellipse at 50% 100%, #FFDAB9 0%, transparent 70%);
}
.scn-pig-swimming-own-throat .ps-sky {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #87CEEB 0%, #FFDAB9 100%); animation: ps-sky-shift 20s ease-in-out infinite; z-index: 1;
}
.scn-pig-swimming-own-throat .ps-river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #4a90d9 0%, #1c5a9c 40%, #0a3a6a 100%); z-index: 2;
}
.scn-pig-swimming-own-throat .ps-bank {
  position: absolute; bottom: 40%; left: 10%; width: 60%; height: 10%; background: linear-gradient(180deg, #6b8e23 0%, #3a5a10 100%); border-radius: 40% 60% 0 0; z-index: 3;
}
.scn-pig-swimming-own-throat .ps-pig {
  position: absolute; bottom: 45%; left: 40%; width: 40px; height: 25px; background: radial-gradient(ellipse at 50% 50%, #f5ccb8 0%, #d4957a 80%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ps-pig-swim 3s ease-in-out infinite; z-index: 4;
}
.scn-pig-swimming-own-throat .ps-pig::before {
  content: ''; position: absolute; top: -8px; left: 10px; width: 6px; height: 8px; background: #d4957a; border-radius: 50% 50% 0 0; transform: rotate(10deg);
}
.scn-pig-swimming-own-throat .ps-pig::after {
  content: ''; position: absolute; top: -8px; right: 10px; width: 6px; height: 8px; background: #d4957a; border-radius: 50% 50% 0 0; transform: rotate(-10deg);
}
.scn-pig-swimming-own-throat .ps-devil {
  position: absolute; bottom: 36%; left: 15%; width: 25px; height: 40px; background: #1a1008; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 80%, 0 100%); animation: ps-devil-grin 6s ease-in-out infinite; z-index: 5;
}
.scn-pig-swimming-own-throat .ps-wave-1, .scn-pig-swimming-own-throat .ps-wave-2 {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.3) 0%, transparent 70%); border-radius: 50%; animation: ps-wave 4s ease-in-out infinite; z-index: 6;
}
.scn-pig-swimming-own-throat .ps-wave-2 {
  bottom: 5%; height: 10%; animation-delay: -2s; opacity: 0.6;
}
@keyframes ps-sky-shift { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ps-pig-swim { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ps-devil-grin { 0% { transform: scaleX(1); } 30% { transform: scaleX(1.2) rotate(5deg); } 60% { transform: scaleX(0.9) rotate(-5deg); } 100% { transform: scaleX(1) rotate(0); } }
@keyframes ps-wave { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(20px) scaleY(1.2); } 100% { transform: translateX(0) scaleY(1); } }

.scn-turnkey-fetter-unfetter {
  background: 
    linear-gradient(180deg, #2a221a 0%, #1e160e 30%, #0a0705 100%),
    radial-gradient(ellipse at 50% 0%, #4a3a28 0%, transparent 70%);
}
.scn-turnkey-fetter-unfetter .tf-wall {
  position: absolute; inset: 0 20% 0 0; background: linear-gradient(90deg, #3a2e22 0%, #2a1e14 100%); z-index: 1;
}
.scn-turnkey-fetter-unfetter .tf-floor {
  position: absolute; bottom: 0; left: 0; right: 20%; height: 15%; background: linear-gradient(0deg, #1a120c 0%, #2a1e14 100%); z-index: 2;
}
.scn-turnkey-fetter-unfetter .tf-bars {
  position: absolute; top: 0; bottom: 15%; left: 0; right: 20%; background: repeating-linear-gradient(0deg, #4a3a28 0px, #4a3a28 6px, transparent 6px, transparent 12px); box-shadow: inset 0 0 10px rgba(0,0,0,0.8); z-index: 3;
}
.scn-turnkey-fetter-unfetter .tf-turnkey {
  position: absolute; bottom: 15%; left: 10%; width: 25px; height: 55px; background: radial-gradient(ellipse at 50% 20%, #3a2e22 0%, #1a120c 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: tf-turnkey-arm 4s ease-in-out infinite; z-index: 4;
}
.scn-turnkey-fetter-unfetter .tf-prisoner {
  position: absolute; bottom: 15%; left: 60%; width: 22px; height: 50px; background: radial-gradient(ellipse at 50% 20%, #2a1e14 0%, #0a0705 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tf-prisoner-struggle 5s ease-in-out infinite; z-index: 5;
}
.scn-turnkey-fetter-unfetter .tf-chain {
  position: absolute; bottom: 35%; left: 35%; width: 30%; height: 4px; background: #5a4a38; border-radius: 2px; animation: tf-chain-rattle 3s ease-in-out infinite; z-index: 6;
}
.scn-turnkey-fetter-unfetter .tf-lantern {
  position: absolute; top: 10%; left: 30%; width: 14px; height: 20px; background: radial-gradient(circle, #e8c878 0%, #b89840 60%, #4a3a28 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 30px 8px #b89840, 0 0 60px 16px rgba(184,152,64,0.4); animation: tf-lantern-swing 6s ease-in-out infinite; z-index: 7;
}
@keyframes tf-turnkey-arm { 0% { transform: rotate(0deg); } 25% { transform: rotate(15deg) translateX(5px); } 50% { transform: rotate(-10deg) translateX(-3px); } 75% { transform: rotate(10deg) translateX(2px); } 100% { transform: rotate(0deg); } }
@keyframes tf-prisoner-struggle { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-5px) rotate(5deg); } 40% { transform: translateY(0) rotate(-3deg); } 60% { transform: translateY(-3px) rotate(4deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tf-chain-rattle { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(-5px) rotate(-2deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tf-lantern-swing { 0% { transform: rotate(-5deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(-3deg); } 75% { transform: rotate(4deg); } 100% { transform: rotate(-5deg); } }

.scn-methodist-meeting-flag {
  background: 
    linear-gradient(180deg, #1e1410 0%, #2a1e18 30%, #0e0a08 100%),
    radial-gradient(ellipse at 50% 0%, #3a2a20 0%, transparent 70%);
}
.scn-methodist-meeting-flag .mm-bg {
  position: absolute; inset: 0; background: linear-gradient(0deg, #1a120e 0%, #2a1e18 50%, #3a2a20 100%); z-index: 1;
}
.scn-methodist-meeting-flag .mm-pew {
  position: absolute; bottom: 10%; left: 5%; width: 40%; height: 15%; background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 100%); border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); z-index: 2;
}
.scn-methodist-meeting-flag .mm-woman {
  position: absolute; bottom: 25%; left: 20%; width: 20px; height: 50px; background: radial-gradient(ellipse at 50% 20%, #3a2a1c 0%, #1a120c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mm-woman-lean 4s ease-in-out infinite; z-index: 3;
}
.scn-methodist-meeting-flag .mm-flag {
  position: absolute; bottom: 45%; left: 25%; width: 8px; height: 20px; background: #5e1a1d; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 80%); animation: mm-flag-wave 3s ease-in-out infinite; z-index: 4;
}
.scn-methodist-meeting-flag .mm-devil {
  position: absolute; top: 20%; right: 10%; width: 30px; height: 45px; background: #1a1008; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 80%, 0 100%); animation: mm-devil-nod 5s ease-in-out infinite; z-index: 5;
}
.scn-methodist-meeting-flag .mm-window {
  position: absolute; top: 5%; left: 50%; width: 20%; height: 30%; background: linear-gradient(135deg, #6a4a3a 0%, #4a3a28 50%, #2a1e14 100%); border: 3px solid #3a2a20; border-radius: 6px; box-shadow: inset 0 0 20px rgba(100,80,60,0.4); z-index: 6;
}
.scn-methodist-meeting-flag .mm-light-ray {
  position: absolute; top: 10%; left: 55%; width: 5%; height: 80%; background: linear-gradient(180deg, rgba(200,180,150,0.2) 0%, rgba(200,180,150,0) 100%); transform: rotate(10deg); animation: mm-ray-shift 8s ease-in-out infinite; z-index: 7;
}
@keyframes mm-woman-lean { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(3deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mm-flag-wave { 0% { transform: rotate(0deg); } 25% { transform: rotate(-10deg); } 50% { transform: rotate(5deg); } 75% { transform: rotate(-5deg); } 100% { transform: rotate(0deg); } }
@keyframes mm-devil-nod { 0% { transform: rotate(0deg); } 20% { transform: rotate(10deg); } 40% { transform: rotate(-5deg); } 60% { transform: rotate(8deg); } 100% { transform: rotate(0deg); } }
@keyframes mm-ray-shift { 0% { opacity: 0.3; transform: rotate(8deg); } 50% { opacity: 0.7; transform: rotate(12deg); } 100% { opacity: 0.4; transform: rotate(8deg); } }

.scn-to-mary-pridham-blessing {
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #5a3a1a 100%), radial-gradient(ellipse at 50% 100%, #7a4a2a 0%, transparent 70%);
}
.scn-to-mary-pridham-blessing .interior-wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #4a2a12 0%, #2a1a0a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.6); }
.scn-to-mary-pridham-blessing .window { position: absolute; top: 18%; left: 70%; width: 40px; height: 50px; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border: 3px solid #3a2a1a; border-radius: 4px; box-shadow: 0 0 12px rgba(74,90,106,.3); animation: tmb-window 8s ease-in-out infinite alternate; }
.scn-to-mary-pridham-blessing .hearth-glow { position: absolute; bottom: 10%; left: 20%; width: 120px; height: 120px; background: radial-gradient(circle, #ffa040 0%, #8a4a20 60%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: tmb-hearth 4s ease-in-out infinite alternate; }
.scn-to-mary-pridham-blessing .figure { position: absolute; bottom: 28%; left: 45%; width: 36px; height: 60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tmb-figure 6s ease-in-out infinite; }
.scn-to-mary-pridham-blessing .chair { position: absolute; bottom: 26%; left: 40%; width: 50px; height: 30px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-to-mary-pridham-blessing .book { position: absolute; bottom: 38%; left: 47%; width: 14px; height: 20px; background: linear-gradient(135deg, #8a6a3a 0%, #6a4a1a 100%); border-radius: 2px; transform: rotate(-15deg); animation: tmb-book 10s ease-in-out infinite; }
.scn-to-mary-pridham-blessing .dust-motes { position: absolute; inset: 0; background: radial-gradient(circle, rgba(255,200,150,.15) 1px, transparent 1px); background-size: 80px 80px; animation: tmb-dust 30s linear infinite; }
@keyframes tmb-window { 0% { opacity: .6; } 50% { opacity: 1; box-shadow: 0 0 20px rgba(74,90,106,.5); } 100% { opacity: .7; } }
@keyframes tmb-hearth { 0% { transform: scale(.9); opacity: .7; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(.95); opacity: .8; } }
@keyframes tmb-figure { 0% { transform: rotate(-1deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(1px); } 75% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes tmb-book { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-3px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes tmb-dust { 0% { background-position: 0 0; } 100% { background-position: 80px 80px; } }

.scn-alice-du-clos-intro {
  background: linear-gradient(180deg, #5a1a0a 0%, #7a2a0a 30%, #2a1a2a 100%), radial-gradient(ellipse at 50% 0%, #9a3a1a 0%, transparent 60%);
}
.scn-alice-du-clos-intro .dawn-sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #8a2a1a 0%, #4a1a0a 50%, #1a0a1a 100%); animation: aci-sky 10s ease-in-out infinite alternate; }
.scn-alice-du-clos-intro .hills { position: absolute; bottom: 30%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: aci-hills 15s ease-in-out infinite; }
.scn-alice-du-clos-intro .dew-grass { position: absolute; bottom: 30%; left: 20%; width: 60%; height: 10%; background: repeating-linear-gradient(90deg, transparent 0px, transparent 8px, rgba(0,20,0,.4) 8px, rgba(0,20,0,.4) 10px); filter: blur(1px); }
.scn-alice-du-clos-intro .figure-julian { position: absolute; bottom: 32%; left: 35%; width: 28px; height: 50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: aci-julian 5s ease-in-out infinite; }
.scn-alice-du-clos-intro .cape { position: absolute; bottom: 33%; left: 32%; width: 40px; height: 45px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 60% 40% 40% / 30% 50% 50% 50%; transform-origin: top center; animation: aci-cape 4s ease-in-out infinite alternate; }
.scn-alice-du-clos-intro .shadow-path { position: absolute; bottom: 22%; left: 30%; width: 80px; height: 4px; background: linear-gradient(90deg, rgba(0,0,0,.6) 0%, transparent 100%); border-radius: 50%; transform: rotate(-20deg); animation: aci-shadow 6s ease-in-out infinite; }
.scn-alice-du-clos-intro .bird { position: absolute; top: 12%; left: 60%; width: 12px; height: 8px; background: radial-gradient(circle at 30% 50%, #1a1a2a 0%, transparent 100%); filter: blur(1px); animation: aci-bird 12s linear infinite; }
@keyframes aci-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes aci-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes aci-julian { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-3px); } 50% { transform: rotate(-1deg) translateY(1px); } 75% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes aci-cape { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(10deg) scaleX(1.1); } 100% { transform: rotate(-5deg) scaleX(.95); } }
@keyframes aci-shadow { 0% { transform: translateX(0) rotate(-20deg); opacity: .6; } 50% { transform: translateX(10px) rotate(-18deg); opacity: .8; } 100% { transform: translateX(0) rotate(-20deg); opacity: .6; } }
@keyframes aci-bird { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-30px) translateY(-10px); } 100% { transform: translateX(60px) translateY(5px); } }

.scn-alice-du-clos-maid {
  background: linear-gradient(180deg, #3a4a5a 0%, #5a6a7a 40%, #8a9aba 100%), radial-gradient(ellipse at 70% 30%, #b0c0d0 0%, transparent 70%);
}
.scn-alice-du-clos-maid .garden-bower { position: absolute; bottom: 40%; left: 15%; width: 70%; height: 50%; background: linear-gradient(180deg, transparent 0%, rgba(20,40,20,.6) 100%); border-radius: 60% 60% 20% 20% / 80% 80% 10% 10%; box-shadow: inset 0 0 30px rgba(0,20,0,.3); animation: acm-bower 12s ease-in-out infinite; }
.scn-alice-du-clos-maid .maid { position: absolute; bottom: 30%; left: 40%; width: 30px; height: 55px; background: linear-gradient(180deg, #e8e8f0 0%, #c0c8d8 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,.2); animation: acm-maid 5s ease-in-out infinite; }
.scn-alice-du-clos-maid .dress { position: absolute; bottom: 26%; left: 38%; width: 40px; height: 30px; background: linear-gradient(180deg, #d0d8e8 0%, #a0b0c8 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: top center; animation: acm-dress 6s ease-in-out infinite alternate; }
.scn-alice-du-clos-maid .book { position: absolute; bottom: 42%; left: 44%; width: 16px; height: 24px; background: linear-gradient(135deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 2px; transform: rotate(10deg); animation: acm-book 8s ease-in-out infinite; }
.scn-alice-du-clos-maid .morning-star { position: absolute; top: 8%; left: 30%; width: 8px; height: 8px; background: radial-gradient(circle, #fff0c0 0%, #c0a060 100%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(255,240,192,.6); animation: acm-star 3s ease-in-out infinite alternate; }
.scn-alice-du-clos-maid .vine { position: absolute; bottom: 55%; left: 20%; width: 60%; height: 15%; background: linear-gradient(180deg, transparent 0%, rgba(30,60,30,.5) 100%); border-radius: 0 0 50% 50%; filter: blur(2px); animation: acm-vine 15s ease-in-out infinite; }
.scn-alice-du-clos-maid .dew-drops { position: absolute; bottom: 28%; left: 30%; width: 100%; height: 10%; background: radial-gradient(circle, rgba(200,220,255,.3) 2px, transparent 2px); background-size: 20px 20px; animation: acm-dew 20s linear infinite; }
@keyframes acm-bower { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes acm-maid { 0% { transform: rotate(-1deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(1px); } 75% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes acm-dress { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes acm-book { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-4px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes acm-star { 0% { opacity: .7; box-shadow: 0 0 20px 4px rgba(255,240,192,.4); } 50% { opacity: 1; box-shadow: 0 0 40px 10px rgba(255,240,192,.8); } 100% { opacity: .8; box-shadow: 0 0 25px 6px rgba(255,240,192,.5); } }
@keyframes acm-vine { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes acm-dew { 0% { background-position: 0 0; } 100% { background-position: 40px 40px; } }

.scn-alice-du-clos-reply {
  background: linear-gradient(180deg, #4a1a0a 0%, #7a2a0a 40%, #2a1a2a 100%), radial-gradient(ellipse at 50% 0%, #9a3a1a 0%, transparent 60%);
}
.scn-alice-du-clos-reply .dawn-sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #7a2a1a 0%, #3a1a0a 50%, #1a0a1a 100%); animation: acr-sky 10s ease-in-out infinite alternate; }
.scn-alice-du-clos-reply .field { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%); border-radius: 40% 60% 0 0 / 30% 50% 0 0; }
.scn-alice-du-clos-reply .lady { position: absolute; bottom: 30%; left: 40%; 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: acr-lady 4s ease-in-out infinite; }
.scn-alice-du-clos-reply .traitor { position: absolute; bottom: 28%; left: 55%; width: 28px; height: 48px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: acr-traitor 6s ease-in-out infinite; }
.scn-alice-du-clos-reply .spear { position: absolute; bottom: 32%; left: 58%; width: 4px; height: 60px; background: linear-gradient(180deg, #6a5a2a 0%, #3a2a0a 100%); border-radius: 50%; transform: rotate(15deg); transform-origin: bottom center; box-shadow: 0 0 8px rgba(106,90,42,.5); animation: acr-spear 5s ease-in-out infinite alternate; }
.scn-alice-du-clos-reply .shadow { position: absolute; bottom: 10%; left: 35%; width: 60px; height: 15%; background: linear-gradient(90deg, rgba(0,0,0,.5) 0%, transparent 100%); border-radius: 50%; transform: rotate(-10deg); animation: acr-shadow 7s ease-in-out infinite; }
.scn-alice-du-clos-reply .bird-flock { position: absolute; top: 5%; left: 50%; width: 40px; height: 20px; background: radial-gradient(circle at 20% 50%, #1a1a2a 3px, transparent 3px), radial-gradient(circle at 50% 30%, #1a1a2a 3px, transparent 3px), radial-gradient(circle at 80% 60%, #1a1a2a 3px, transparent 3px); background-size: 20px 20px; filter: blur(1px); animation: acr-flock 15s linear infinite; }
@keyframes acr-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes acr-lady { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-3px); } 50% { transform: rotate(-1deg) translateY(2px); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes acr-traitor { 0% { transform: rotate(1deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-2px); } 50% { transform: rotate(1deg) translateY(1px); } 75% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes acr-spear { 0% { transform: rotate(15deg); } 50% { transform: rotate(12deg); } 100% { transform: rotate(18deg); } }
@keyframes acr-shadow { 0% { transform: translateX(0) rotate(-10deg); opacity: .5; } 50% { transform: translateX(10px) rotate(-8deg); opacity: .8; } 100% { transform: translateX(0) rotate(-10deg); opacity: .5; } }
@keyframes acr-flock { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-40px) translateY(-10px); } 100% { transform: translateX(60px) translateY(5px); } }

.scn-tom-bless-epitaph-intro {
  background:
    linear-gradient(180deg, #1f1410 0%, #0d0907 40%, #0a0604 100%),
    radial-gradient(ellipse at 50% 60%, #3a2218 0%, transparent 60%);
}
.scn-tom-bless-epitaph-intro .bg-deep {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 20%, #2a1a12 0%, transparent 70%);
  animation: tbe-ambient 10s ease-in-out infinite alternate;
}
.scn-tom-bless-epitaph-intro .wall {
  position: absolute; inset: 20% 10% 0 10%;
  background: linear-gradient(180deg, #2a1c14 0%, #1a0e0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.7);
  animation: tbe-wallpulse 8s ease-in-out infinite;
}
.scn-tom-bless-epitaph-intro .table {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #4a2e1e 0%, #2e1a10 100%);
  border-radius: 2px 2px 8px 8px;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.8);
  transform: perspective(600px) rotateX(8deg);
  animation: tbe-table 12s ease-in-out infinite;
}
.scn-tom-bless-epitaph-intro .candle {
  position: absolute; bottom: 26%; left: 48%; width: 12px; height: 40px;
  margin-left: -6px;
  background: linear-gradient(180deg, #d4b07a 0%, #8a6030 60%, #3a2010 100%);
  border-radius: 6px 6px 3px 3px;
  box-shadow: 0 0 20px 6px #c87a3a, 0 0 40px 12px rgba(200,122,58,0.4);
  transform-origin: bottom center;
  animation: tbe-candle 1.2s ease-in-out infinite;
}
.scn-tom-bless-epitaph-intro .figure {
  position: absolute; bottom: 20%; left: 42%; width: 40px; height: 80px;
  margin-left: -20px;
  background: linear-gradient(135deg, #1a110e 0%, #0d0805 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: -6px 0 20px rgba(0,0,0,0.9);
  transform-origin: bottom center;
  animation: tbe-figure 6s ease-in-out infinite alternate;
}
.scn-tom-bless-epitaph-intro .book {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 10px;
  margin-left: -30px;
  background: linear-gradient(180deg, #c8a870 0%, #9a7850 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(20deg);
  animation: tbe-book 7s ease-in-out infinite;
}
.scn-tom-bless-epitaph-intro .shadow {
  position: absolute; bottom: 18%; left: 30%; width: 120px; height: 60px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 70%);
  transform-origin: bottom center;
  animation: tbe-shadow 5s ease-in-out infinite alternate;
}
.scn-tom-bless-epitaph-intro .dust {
  position: absolute; top: 30%; left: 20%; width: 4px; height: 4px;
  background: rgba(220,180,140,0.6);
  border-radius: 50%;
  filter: blur(1px);
  box-shadow: 12px 30px 0 rgba(220,180,140,0.3), 40px 60px 0 rgba(220,180,140,0.2), 70px 20px 0 rgba(220,180,140,0.4);
  animation: tbe-dust 12s linear infinite;
}
@keyframes tbe-ambient {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes tbe-wallpulse {
  0%, 100% { filter: brightness(1); }
  50% { filter: brightness(0.8); }
}
@keyframes tbe-table {
  0% { transform: perspective(600px) rotateX(8deg) translateY(0); }
  50% { transform: perspective(600px) rotateX(9deg) translateY(-1px); }
  100% { transform: perspective(600px) rotateX(8deg) translateY(0); }
}
@keyframes tbe-candle {
  0% { transform: scaleY(1) rotate(0deg); filter: brightness(1); }
  15% { transform: scaleY(1.05) rotate(-1deg); filter: brightness(1.2); }
  30% { transform: scaleY(0.95) rotate(1deg); filter: brightness(0.8); }
  45% { transform: scaleY(1.02) rotate(-0.5deg); filter: brightness(1.1); }
  60% { transform: scaleY(1) rotate(0.5deg); filter: brightness(0.9); }
  75% { transform: scaleY(1.04) rotate(-0.8deg); filter: brightness(1.3); }
  100% { transform: scaleY(1) rotate(0deg); filter: brightness(1); }
}
@keyframes tbe-figure {
  0% { transform: rotate(-1deg) translateX(0); }
  50% { transform: rotate(1deg) translateX(2px); }
  100% { transform: rotate(-1deg) translateX(0); }
}
@keyframes tbe-book {
  0% { transform: perspective(400px) rotateX(20deg) translateY(0); }
  50% { transform: perspective(400px) rotateX(17deg) translateY(-2px); }
  100% { transform: perspective(400px) rotateX(20deg) translateY(0); }
}
@keyframes tbe-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.6; }
  50% { transform: scaleX(1.1) scaleY(0.9); opacity: 0.9; }
  100% { transform: scaleX(1) scaleY(1); opacity: 0.7; }
}
@keyframes tbe-dust {
  0% { transform: translate(0, 0); opacity: 0.3; }
  25% { transform: translate(20px, -15px); opacity: 0.7; }
  50% { transform: translate(45px, -5px); opacity: 0.4; }
  75% { transform: translate(20px, 10px); opacity: 0.6; }
  100% { transform: translate(0, 0); opacity: 0.3; }
}

.scn-tom-bless-epitaph-continued { background: linear-gradient(180deg, #1a1210 0%, #2a1a15 40%, #1a0e0a 100%), radial-gradient(ellipse at 50% 60%, #3a2018 0%, transparent 70%); }
.scn-tom-bless-epitaph-continued .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0e0806 0%, #1a0e0a 100%); }
.scn-tom-bless-epitaph-continued .wall { position:absolute; bottom:30%; left:5%; width:90%; height:70%; background: repeating-linear-gradient(90deg, #2a1810 0px, #1e100a 20px, #2a1810 30px, #1e100a 45px); border-radius: 4% 4% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,.6); }
.scn-tom-bless-epitaph-continued .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a0e0a 0%, #2a1810 50%, #3a2018 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; }
.scn-tom-bless-epitaph-continued .torch-pole { position:absolute; bottom:30%; left:20%; width:8px; height:90px; background: linear-gradient(90deg, #4a2a1a, #2a1810); border-radius: 2px; transform-origin: bottom center; animation: tbe-pole 4s ease-in-out infinite; }
.scn-tom-bless-epitaph-continued .torch { position:absolute; bottom:calc(30% + 90px); left:20%; width:12px; height:30px; margin-left:-2px; background: radial-gradient(ellipse 50% 80% at 50% 30%, #ffa040 0%, #c06020 50%, transparent 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px #c06020, 0 0 60px 20px rgba(192,96,32,.4); animation: tbe-flame 0.6s ease-in-out infinite; }
.scn-tom-bless-epitaph-continued .figure { position:absolute; bottom:30%; left:50%; width:20px; height:60px; margin-left:-10px; background: linear-gradient(180deg, #0a0604 0%, #1a0e0a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: tbe-figure 6s ease-in-out infinite; }
.scn-tom-bless-epitaph-continued .shadow { position:absolute; bottom:30%; left:50%; width:40px; height:50px; margin-left:-20px; background: rgba(0,0,0,.4); border-radius: 60% 60% 10% 10%; transform-origin: bottom center; animation: tbe-shadow 6s ease-in-out infinite; filter: blur(4px); }
@keyframes tbe-pole { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(-1deg); } 75% { transform: rotate(1deg); } }
@keyframes tbe-flame { 0% { transform: scaleY(1) translateY(0); opacity:.8; } 20% { transform: scaleY(1.1) translateY(-1px); opacity:1; } 40% { transform: scaleY(0.95) translateY(1px); opacity:.7; } 60% { transform: scaleY(1.05) translateY(-1px); opacity:.9; } 80% { transform: scaleY(1) translateY(0); opacity:.85; } 100% { transform: scaleY(1) translateY(0); opacity:.8; } }
@keyframes tbe-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(0.5deg); } 50% { transform: translateY(0) rotate(-0.3deg); } 75% { transform: translateY(-1px) rotate(0.8deg); } }
@keyframes tbe-shadow { 0%,100% { transform: translateX(0) skewX(0); } 25% { transform: translateX(3px) skewX(2deg); } 50% { transform: translateX(-1px) skewX(-1deg); } 75% { transform: translateX(4px) skewX(3deg); } }

.scn-tom-bless-epitaph-conclusion { 
  background: 
    linear-gradient(180deg, #1a1a12 0%, #2a2218 30%, #3a2a1a 60%, #1a120a 100%),
    radial-gradient(ellipse at 40% 70%, #4a3a2a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-tom-bless-epitaph-conclusion .wall { 
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #2a2218 0%, #1a150e 50%, #221a12 100%);
  opacity: 0.8;
}
.scn-tom-bless-epitaph-conclusion .window { 
  position: absolute; top: 12%; left: 55%; width: 30%; height: 40%; 
  background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 50%, #0a0a1a 100%);
  border-radius: 2px; 
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: tbe-window 8s ease-in-out infinite alternate;
}
.scn-tom-bless-epitaph-conclusion .curtain-left,
.scn-tom-bless-epitaph-conclusion .curtain-right { 
  position: absolute; top: 10%; height: 45%; width: 10%; 
  background: linear-gradient(180deg, #3a1a12 0%, #1a0a06 100%);
  border-radius: 0 4px 4px 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.6);
}
.scn-tom-bless-epitaph-conclusion .curtain-left { left: 50%; transform-origin: top left; animation: tbe-curtain 12s ease-in-out infinite alternate; }
.scn-tom-bless-epitaph-conclusion .curtain-right { left: calc(50% + 30%); transform-origin: top right; border-radius: 4px 0 0 4px; box-shadow: -4px 0 12px rgba(0,0,0,0.6); animation: tbe-curtain 12s ease-in-out infinite alternate-reverse; }
.scn-tom-bless-epitaph-conclusion .desk { 
  position: absolute; bottom: 28%; left: 20%; width: 60%; height: 12%; 
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 2px; 
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
}
.scn-tom-bless-epitaph-conclusion .figure { 
  position: absolute; bottom: 34%; left: 40%; width: 14%; height: 28%; 
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; 
  transform-origin: bottom center; 
  animation: tbe-figure 3s ease-in-out infinite;
}
.scn-tom-bless-epitaph-conclusion .candle { 
  position: absolute; bottom: 40%; left: 46%; width: 2%; height: 6%; 
  background: linear-gradient(180deg, #b08040 0%, #604020 100%);
  border-radius: 20% 20% 10% 10%; 
  box-shadow: 0 0 20px 8px #d09050, 0 0 40px 16px rgba(200,130,60,0.4); 
  animation: tbe-candle 1.5s ease-in-out infinite;
}
.scn-tom-bless-epitaph-conclusion .inkwell { 
  position: absolute; bottom: 36%; left: 42%; width: 3%; height: 4%; 
  background: radial-gradient(circle, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20%; 
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-tom-bless-epitaph-conclusion .paper { 
  position: absolute; bottom: 34%; left: 44%; width: 8%; height: 5%; 
  background: linear-gradient(135deg, #e0d8c8 0%, #c8b898 100%);
  border-radius: 1px; 
  transform: rotate(-5deg); 
  box-shadow: 0 1px 3px rgba(0,0,0,0.3);
  animation: tbe-paper 6s ease-in-out infinite;
}
@keyframes tbe-window { 
  0% { opacity: 0.6; box-shadow: inset 0 0 30px rgba(0,0,0,0.9); } 
  50% { opacity: 0.9; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); } 
  100% { opacity: 0.7; box-shadow: inset 0 0 25px rgba(0,0,0,0.8); } 
}
@keyframes tbe-curtain { 
  0% { transform: scaleX(1); } 
  50% { transform: scaleX(1.05); } 
  100% { transform: scaleX(0.95); } 
}
@keyframes tbe-figure { 
  0% { transform: translateY(0) rotate(0deg); } 
  30% { transform: translateY(-2px) rotate(1deg); } 
  50% { transform: translateY(0) rotate(-1deg); } 
  70% { transform: translateY(-1px) rotate(0deg); } 
  100% { transform: translateY(0) rotate(1deg); } 
}
@keyframes tbe-candle { 
  0% { box-shadow: 0 0 20px 8px #d09050, 0 0 40px 16px rgba(200,130,60,0.4); transform: scaleY(1); } 
  25% { box-shadow: 0 0 25px 10px #e0a060, 0 0 50px 20px rgba(200,130,60,0.5); transform: scaleY(1.02); } 
  50% { box-shadow: 0 0 18px 6px #c08040, 0 0 35px 12px rgba(200,130,60,0.3); transform: scaleY(0.98); } 
  75% { box-shadow: 0 0 22px 9px #d09050, 0 0 45px 18px rgba(200,130,60,0.45); transform: scaleY(1.01); } 
  100% { box-shadow: 0 0 20px 8px #d09050, 0 0 40px 16px rgba(200,130,60,0.4); transform: scaleY(1); } 
}
@keyframes tbe-paper { 
  0% { transform: rotate(-5deg) translateY(0); } 
  50% { transform: rotate(-3deg) translateY(-1px); } 
  100% { transform: rotate(-6deg) translateY(0); } 
}

.scn-tom-bless-epitaph-editorial {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1f18 70%, #1a0f0a 100%),
              radial-gradient(ellipse at 50% 20%, #3a2a1e 0%, transparent 60%);
}
.scn-tom-bless-epitaph-editorial .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,8,16,.8) 0%, transparent 40%, rgba(0,0,0,.6) 100%); }
.scn-tom-bless-epitaph-editorial .desk {
  position:absolute; bottom:8%; left:10%; right:10%; height:18%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -6px 18px rgba(0,0,0,.7);
}
.scn-tom-bless-epitaph-editorial .books {
  position:absolute; bottom:8%; left:14%; width:30%; height:12%;
  background: repeating-linear-gradient(90deg, #5a3a1a 0px, #5a3a1a 6px, #4a2a0a 6px, #4a2a0a 10px);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,.5);
  animation: si2-books 6s ease-in-out infinite;
}
.scn-tom-bless-epitaph-editorial .candle {
  position:absolute; bottom:26%; left:48%; width:8px; height:28px;
  background: linear-gradient(0deg, #c8a050 0%, #d4b060 60%, #f0d080 100%);
  border-radius: 3px 3px 2px 2px;
  box-shadow: 0 0 40px 12px #d4a050, 0 0 80px 20px rgba(212,160,80,.3);
  animation: si2-candle 2s ease-in-out infinite alternate;
}
.scn-tom-bless-epitaph-editorial .figure {
  position:absolute; bottom:8%; right:20%; width:24%; height:40%;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si2-figure 4s ease-in-out infinite;
}
.scn-tom-bless-epitaph-editorial .shadow {
  position:absolute; bottom:8%; left:40%; width:30%; height:6%;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  filter: blur(4px);
  animation: si2-shadow 5s ease-in-out infinite alternate;
}
.scn-tom-bless-epitaph-editorial .window {
  position:absolute; top:8%; left:8%; width:18%; height:22%;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2e 100%),
              radial-gradient(circle at 50% 40%, #4a4a6a 0%, transparent 70%);
  border: 4px solid #1a1a0e;
  border-radius: 4px;
  box-shadow: inset 0 0 12px rgba(0,0,0,.8);
  animation: si2-window 8s ease-in-out infinite;
}
@keyframes si2-books {
  0%,100% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.01); }
}
@keyframes si2-candle {
  0% { box-shadow: 0 0 30px 8px #d4a050, 0 0 60px 15px rgba(212,160,80,.2); opacity:.9; transform: scaleY(1); }
  50% { box-shadow: 0 0 50px 12px #ffc060, 0 0 100px 25px rgba(255,192,96,.3); opacity:1; transform: scaleY(1.02); }
  100% { box-shadow: 0 0 35px 10px #c89040, 0 0 70px 18px rgba(200,144,64,.25); opacity:.95; transform: scaleY(.98); }
}
@keyframes si2-figure {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-2px) rotate(-1deg) translateY(-1px); }
  60% { transform: translateX(1px) rotate(1deg) translateY(0); }
  100% { transform: translateX(-1px) rotate(-.5deg) translateY(1px); }
}
@keyframes si2-shadow {
  0% { transform: translateX(0) scaleX(1); opacity:.4; }
  50% { transform: translateX(4px) scaleX(1.1); opacity:.6; }
  100% { transform: translateX(-2px) scaleX(.95); opacity:.5; }
}
@keyframes si2-window {
  0%,100% { opacity:.6; filter: brightness(.8); }
  50% { opacity:1; filter: brightness(1.1); }
}

.scn-hymn-chamouni-body{background:linear-gradient(180deg,#4a2c5e 0%,#d48a6a 30%,#f0c080 60%,#ffdbb0 100%),radial-gradient(ellipse at 50% 0%,#ffdbb0 0%,transparent 70%);}
.scn-hymn-chamouni-body .sky{position:absolute;inset:0 0 50% 0;background:linear-gradient(180deg,#4a2c5e 0%,transparent 100%);animation:hcb-sky 12s ease-in-out infinite alternate}
.scn-hymn-chamouni-body .sun{position:absolute;top:15%;left:60%;width:60px;height:60px;background:radial-gradient(circle,#ffe0a0 0%,#f0b060 50%,transparent 70%);border-radius:50%;box-shadow:0 0 40px 20px rgba(240,176,96,.6);animation:hcb-sun 8s ease-in-out infinite alternate}
.scn-hymn-chamouni-body .mountains{position:absolute;bottom:35%;left:0;right:0;height:30%;background:linear-gradient(180deg,#3a2a4a 0%,#2a1a3a 100%);border-radius:60% 40% 0 0;box-shadow:inset 0 5px 15px rgba(0,0,0,.5);animation:hcb-mountains 15s ease-in-out infinite alternate}
.scn-hymn-chamouni-body .mist{position:absolute;bottom:45%;left:10%;right:10%;height:15%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);filter:blur(8px);animation:hcb-mist 20s ease-in-out infinite alternate}
.scn-hymn-chamouni-body .valley{position:absolute;bottom:30%;left:0;right:0;height:25%;background:linear-gradient(180deg,#2a4a3a 0%,#1a2a1a 100%);border-radius:30% 70% 0 0;box-shadow:inset 0 3px 10px rgba(0,0,0,.3);animation:hcb-valley 18s ease-in-out infinite alternate}
.scn-hymn-chamouni-body .glow{position:absolute;bottom:40%;left:50%;width:200px;height:200px;transform:translate(-50%,50%);background:radial-gradient(circle,rgba(255,219,176,.4) 0%,transparent 70%);animation:hcb-glow 6s ease-in-out infinite alternate}
@keyframes hcb-sky{0%{opacity:.8}50%{opacity:1}100%{opacity:.7}}@keyframes hcb-sun{0%{transform:translate(0,0) scale(.9)}50%{transform:translate(5px,-3px) scale(1.1)}100%{transform:translate(0,0) scale(.95)}}@keyframes hcb-mountains{0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}@keyframes hcb-mist{0%{opacity:.3;transform:translateX(0)}50%{opacity:.6;transform:translateX(10px)}100%{opacity:.4;transform:translateX(-5px)}}@keyframes hcb-valley{0%{opacity:.9}50%{opacity:1}100%{opacity:.85}}@keyframes hcb-glow{0%{opacity:.5;transform:scale(.8)}50%{opacity:.8;transform:scale(1.2)}100%{opacity:.6;transform:scale(.9)}}

.scn-hymn-chamouni-variants{background:linear-gradient(180deg,#2a1a1a 0%,#4a3020 30%,#3a2a1a 70%,#1a0e0a 100%),radial-gradient(ellipse at 50% 100%,#4a3020 0%,transparent 70%);}
.scn-hymn-chamouni-variants .wall{position:absolute;inset:0;background:linear-gradient(90deg,#2a1a1a 0%,#3a2a1a 50%,#2a1a1a 100%);animation:hcv-wall 20s ease-in-out infinite alternate}
.scn-hymn-chamouni-variants .desk{position:absolute;bottom:20%;left:20%;right:20%;height:40%;background:linear-gradient(180deg,#4a3020 0%,#2a1a0a 100%);border-radius:4% 4% 0 0;box-shadow:0 -4px 10px rgba(0,0,0,.5);animation:hcv-desk 15s ease-in-out infinite alternate}
.scn-hymn-chamouni-variants .candle{position:absolute;bottom:45%;left:50%;width:8px;height:30px;transform:translateX(-50%);background:linear-gradient(180deg,#b08040 0%,#6a4a2a 100%);border-radius:2px;box-shadow:0 0 6px rgba(176,128,64,.3);animation:hcv-candle 4s ease-in-out infinite alternate}
.scn-hymn-chamouni-variants .flame{position:absolute;bottom:50%;left:50%;width:6px;height:12px;transform:translateX(-50%);background:radial-gradient(circle,#ffd060 0%,#e08020 50%,transparent 70%);border-radius:50%;box-shadow:0 0 12px 6px rgba(224,128,32,.6),0 0 24px 12px rgba(224,128,32,.3);animation:hcv-flame 2s ease-in-out infinite alternate}
.scn-hymn-chamouni-variants .manuscript{position:absolute;bottom:30%;left:35%;right:35%;height:10%;background:linear-gradient(180deg,#8a6a4a 0%,#6a4a2a 100%);border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.4);animation:hcv-manuscript 12s ease-in-out infinite alternate}
.scn-hymn-chamouni-variants .shadow{position:absolute;bottom:20%;left:30%;right:30%;height:20%;background:linear-gradient(180deg,#1a0e0a 0%,transparent 100%);opacity:.6;animation:hcv-shadow 8s ease-in-out infinite alternate}
@keyframes hcv-wall{0%{opacity:.9}50%{opacity:1}100%{opacity:.8}}@keyframes hcv-desk{0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}@keyframes hcv-candle{0%{transform:translateX(-50%) scaleY(1)}50%{transform:translateX(-50%) scaleY(1.02)}100%{transform:translateX(-50%) scaleY(.98)}}@keyframes hcv-flame{0%{transform:translateX(-50%) scale(.9);opacity:.8}50%{transform:translateX(-50%) scale(1.1);opacity:1}100%{transform:translateX(-50%) scale(.95);opacity:.85}}@keyframes hcv-manuscript{0%{opacity:.8}50%{opacity:1}100%{opacity:.75}}@keyframes hcv-shadow{0%{opacity:.5}50%{opacity:.7}100%{opacity:.4}}

.scn-good-great-man-intro{background:linear-gradient(180deg,#1a1210 0%,#3a2a20 40%,#2a1a12 80%,#0e0a08 100%),radial-gradient(ellipse at 50% 80%,#3a2a20 0%,transparent 70%);}
.scn-good-great-man-intro .wall{position:absolute;inset:0;background:linear-gradient(180deg,#2a1a12 0%,#1a1210 100%);animation:ggi-wall 25s ease-in-out infinite alternate}
.scn-good-great-man-intro .desk{position:absolute;bottom:15%;left:10%;right:10%;height:40%;background:linear-gradient(180deg,#4a3020 0%,#2a1a0a 100%);border-radius:3% 3% 0 0;box-shadow:0 -2px 8px rgba(0,0,0,.6);animation:ggi-desk 18s ease-in-out infinite alternate}
.scn-good-great-man-intro .figure{position:absolute;bottom:18%;left:35%;width:20px;height:40px;background:linear-gradient(180deg,#1a1210 0%,#0e0a08 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom center;animation:ggi-figure 4s ease-in-out infinite alternate}
.scn-good-great-man-intro .lamp{position:absolute;bottom:45%;left:55%;width:10px;height:20px;transform:translateX(-50%);background:linear-gradient(180deg,#8a6a4a 0%,#4a3020 100%);border-radius:3px;box-shadow:0 0 10px 2px rgba(200,160,80,.4);animation:ggi-lamp 6s ease-in-out infinite alternate}
.scn-good-great-man-intro .paper{position:absolute;bottom:25%;left:40%;right:30%;height:8%;background:linear-gradient(180deg,#8a7a5a 0%,#6a5a3a 100%);border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.3);animation:ggi-paper 10s ease-in-out infinite alternate}
.scn-good-great-man-intro .inkwell{position:absolute;bottom:30%;left:50%;width:8px;height:10px;transform:translateX(-50%);background:radial-gradient(circle,#1a1210 0%,#0e0a08 100%);border-radius:50%;animation:ggi-inkwell 8s ease-in-out infinite alternate}
@keyframes ggi-wall{0%{opacity:.9}50%{opacity:1}100%{opacity:.8}}@keyframes ggi-desk{0%{transform:translateY(0)}50%{transform:translateY(-1px)}100%{transform:translateY(0)}}@keyframes ggi-figure{0%{transform:translateX(0) rotate(-2deg)}50%{transform:translateX(2px) rotate(1deg)}100%{transform:translateX(0) rotate(-1deg)}}@keyframes ggi-lamp{0%{transform:translateX(-50%) scaleY(1);opacity:.9}50%{transform:translateX(-50%) scaleY(1.05);opacity:1}100%{transform:translateX(-50%) scaleY(.98);opacity:.85}}@keyframes ggi-paper{0%{opacity:.8}50%{opacity:1}100%{opacity:.7}}@keyframes ggi-inkwell{0%{opacity:.7}50%{opacity:.9}100%{opacity:.6}}

.scn-good-great-man-variants{background:linear-gradient(180deg,#1a1410 0%,#3a2a20 40%,#2a1a12 80%,#0e0a08 100%),radial-gradient(ellipse at 50% 20%,#3a2a20 0%,transparent 70%);}
.scn-good-great-man-variants .shelf{position:absolute;bottom:30%;left:5%;right:5%;height:45%;background:linear-gradient(180deg,#4a3020 0%,#2a1a0a 100%);border-radius:2px 2px 0 0;box-shadow:0 -3px 8px rgba(0,0,0,.5);animation:ggv-shelf 20s ease-in-out infinite alternate}
.scn-good-great-man-variants .books{position:absolute;bottom:32%;left:10%;right:10%;height:35%;background:linear-gradient(90deg,#6a4a3a 0%,#8a5a4a 20%,#5a3a2a 40%,#7a4a3a 60%,#4a2a1a 80%,#6a3a2a 100%);border-radius:2px;box-shadow:0 2px 6px rgba(0,0,0,.4);animation:ggv-books 25s ease-in-out infinite alternate}
.scn-good-great-man-variants .window{position:absolute;top:10%;left:30%;right:30%;height:30%;background:linear-gradient(180deg,#2a2020 0%,#4a3a3a 100%);border-radius:5% 5% 0 0;box-shadow:inset 0 0 10px #0e0a08;animation:ggv-window 15s ease-in-out infinite alternate}
.scn-good-great-man-variants .light{position:absolute;top:12%;left:32%;right:32%;height:25%;background:linear-gradient(180deg,rgba(200,180,160,.3) 0%,transparent 100%);filter:blur(6px);animation:ggv-light 8s ease-in-out infinite alternate}
.scn-good-great-man-variants .dust{position:absolute;top:15%;left:20%;right:20%;height:5%;background:linear-gradient(90deg,transparent,rgba(200,180,160,.1),transparent);filter:blur(4px);animation:ggv-dust 30s linear infinite}
.scn-good-great-man-variants .frame{position:absolute;top:10%;left:28%;right:28%;height:32%;border:2px solid #2a1a12;border-radius:5% 5% 0 0;box-shadow:0 0 0 1px #0e0a08;animation:ggv-frame 12s ease-in-out infinite alternate}
@keyframes ggv-shelf{0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}@keyframes ggv-books{0%{opacity:.9}50%{opacity:1}100%{opacity:.85}}@keyframes ggv-window{0%{opacity:.7}50%{opacity:.9}100%{opacity:.6}}@keyframes ggv-light{0%{opacity:.3;transform:scale(1)}50%{opacity:.5;transform:scale(1.1)}100%{opacity:.2;transform:scale(.9)}}@keyframes ggv-dust{0%{transform:translateX(0);opacity:.1}25%{transform:translateX(15px);opacity:.2}50%{transform:translateX(30px);opacity:.15}75%{transform:translateX(15px);opacity:.1}100%{transform:translateX(0);opacity:.05}}@keyframes ggv-frame{0%{opacity:.8}50%{opacity:1}100%{opacity:.7}}

.scn-boccaccio-unfolds { background: linear-gradient(180deg, #f9d976 0%, #e6b350 40%, #c98a3a 100%), radial-gradient(ellipse at 50% 20%, #ffe8a0 0%, transparent 60%); }
.scn-boccaccio-unfolds .sky { position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #ffddaa 0%, #fce4b8 50%, #e8c176 100%); animation: bu-sky 12s ease-in-out infinite alternate; }
.scn-boccaccio-unfolds .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, #7a9a4a 0%, #4a6a2a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: bu-ground 15s ease-in-out infinite alternate; }
.scn-boccaccio-unfolds .rill { position: absolute; bottom: 32%; left: 25%; width: 50%; height: 8px; background: linear-gradient(90deg, transparent 0%, #6ab8d0 30%, #8ad4e8 50%, #6ab8d0 70%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: bu-rill 8s ease-in-out infinite; }
.scn-boccaccio-unfolds .flower-a { position: absolute; bottom: 38%; left: 35%; width: 20px; height: 20px; background: radial-gradient(circle at 50% 50%, #f08080 0%, #c8553d 60%, #a0461a 100%); border-radius: 50%; box-shadow: 0 0 10px 2px rgba(200,85,61,.4); animation: bu-flower 5s ease-in-out infinite; }
.scn-boccaccio-unfolds .flower-b { position: absolute; bottom: 40%; right: 30%; width: 16px; height: 16px; background: radial-gradient(circle at 50% 50%, #f0c0a0 0%, #d09060 60%, #b07040 100%); border-radius: 50%; animation: bu-flower 6s ease-in-out infinite 1s; }
.scn-boccaccio-unfolds .figure { position: absolute; bottom: 30%; left: 50%; width: 28px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bu-figure 9s ease-in-out infinite; }
.scn-boccaccio-unfolds .gems { position: absolute; bottom: 34%; left: 45%; width: 6px; height: 6px; background: radial-gradient(circle, #ffffff 0%, #d0e0f0 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(255,255,255,.5), 0 0 16px 4px rgba(200,220,255,.3); animation: bu-gems 3s ease-in-out infinite alternate; }
@keyframes bu-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes bu-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes bu-rill { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
@keyframes bu-flower { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(8deg) scale(1.05); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes bu-figure { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes bu-gems { 0% { opacity: .3; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .5; transform: scale(0.9); } }

.scn-dian-vest { background: linear-gradient(180deg, #fcdb9e 0%, #e8c176 40%, #c09050 100%), radial-gradient(ellipse at 50% 30%, #ffe6b0 0%, transparent 50%); }
.scn-dian-vest .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #fbd28c 0%, #ffe6b0 50%, #f0c880 100%); animation: dv-sky 14s ease-in-out infinite alternate; }
.scn-dian-vest .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #7a9a4a 0%, #3a5a2a 100%); border-radius: 30% 70% 0 0 / 20% 50% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,.4); animation: dv-ground 12s ease-in-out infinite alternate; }
.scn-dian-vest .vine-left { position: absolute; bottom: 20%; left: 10%; width: 20px; height: 80%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%), repeating-linear-gradient(0deg, #4a6a2a 0px, #4a6a2a 4px, transparent 4px, transparent 8px); background-blend-mode: normal; background-size: 100% 100%, 8px 8px; border-radius: 10px; animation: dv-vine 10s ease-in-out infinite; }
.scn-dian-vest .vine-right { position: absolute; bottom: 20%; right: 10%; width: 20px; height: 80%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%), repeating-linear-gradient(0deg, #4a6a2a 0px, #4a6a2a 4px, transparent 4px, transparent 8px); background-blend-mode: normal; background-size: 100% 100%, 8px 8px; border-radius: 10px; animation: dv-vine 10s ease-in-out infinite 1.5s; }
.scn-dian-vest .maid { position: absolute; bottom: 22%; left: 50%; width: 24px; height: 55px; transform: translateX(-50%); background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 10px rgba(255,255,200,.3); animation: dv-maid 4s ease-in-out infinite; }
.scn-dian-vest .satyr { position: absolute; bottom: 24%; right: 22%; width: 20px; height: 35px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%; transform: rotate(15deg); animation: dv-satyr 3s ease-in-out infinite alternate; }
@keyframes dv-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes dv-ground { 0% { transform: translateY(1px); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes dv-vine { 0% { transform: rotate(0deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes dv-maid { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes dv-satyr { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-4px); } 100% { transform: rotate(15deg) translateY(0); } }

.scn-editorial-garden { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #3a3a4a 100%), radial-gradient(ellipse at 50% 80%, #4a4a5a 0%, transparent 70%); }
.scn-editorial-garden .bg-room { position: absolute; inset: 0; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); animation: eg-room 20s ease-in-out infinite alternate; }
.scn-editorial-garden .window { position: absolute; top: 15%; left: 25%; width: 50%; height: 60%; background: linear-gradient(180deg, #1a2a3a 0%, #3a5a6a 40%, #4a6a7a 100%); border-radius: 10px; box-shadow: inset 0 0 20px #0a0a0a; animation: eg-window 30s linear infinite; }
.scn-editorial-garden .window-frame { position: absolute; top: 13%; left: 23%; width: 54%; height: 64%; border: 4px solid #5a4a3a; border-radius: 12px; box-shadow: 0 0 0 2px #3a2a1a; background: transparent; pointer-events: none; animation: none; }
.scn-editorial-garden .table { position: absolute; bottom: 10%; left: 15%; right: 15%; height: 8%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-editorial-garden .book { position: absolute; bottom: 14%; left: 40%; width: 30px; height: 40px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 2px 2px 6px rgba(0,0,0,.3); animation: eg-book 6s ease-in-out infinite; }
.scn-editorial-garden .candle { position: absolute; bottom: 18%; left: 55%; width: 8px; height: 25px; background: linear-gradient(180deg, #e8d8b0 0%, #c0a87a 100%); border-radius: 2px 2px 0 0; }
.scn-editorial-garden .glow { position: absolute; bottom: 18%; left: 55%; width: 30px; height: 30px; transform: translate(-50%, -50%); background: radial-gradient(circle, #f0d080 0%, #e0b060 30%, transparent 70%); border-radius: 50%; animation: eg-glow 3s ease-in-out infinite alternate; }
@keyframes eg-room { 0% { opacity: .9; } 50% { opacity: .7; } 100% { opacity: .9; } }
@keyframes eg-window { 0% { background-position: 0% 0%; } 100% { background-position: 0% -100%; } }
@keyframes eg-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes eg-glow { 0% { opacity: .6; transform: translate(-50%, -50%) scale(0.9); } 50% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); } 100% { opacity: .7; transform: translate(-50%, -50%) scale(1); } }

.scn-note-on-boccaccio { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 100%), radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 60%); }
.scn-note-on-boccaccio .bg-dim { position: absolute; inset: 0; background: linear-gradient(135deg, #1a1a1a 0%, #2a2a2a 100%); animation: nb-bg 20s ease-in-out infinite alternate; }
.scn-note-on-boccaccio .table { position: absolute; bottom: 8%; left: 10%; right: 10%; height: 10%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-note-on-boccaccio .book { position: absolute; bottom: 14%; left: 35%; width: 80px; height: 50px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 2px; transform: rotate(2deg); box-shadow: 2px 2px 8px rgba(0,0,0,.4); animation: nb-book 10s ease-in-out infinite; }
.scn-note-on-boccaccio .note { position: absolute; bottom: 24%; left: 55%; width: 20px; height: 12px; background: #f0e0c0; border-radius: 1px; transform: rotate(-10deg); box-shadow: 1px 1px 4px rgba(0,0,0,.3); animation: nb-note 7s ease-in-out infinite alternate; }
.scn-note-on-boccaccio .child { position: absolute; bottom: 12%; right: 20%; width: 20px; height: 30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: nb-child 4s ease-in-out infinite; }
.scn-note-on-boccaccio .flower1 { position: absolute; bottom: 16%; right: 30%; width: 10px; height: 10px; background: radial-gradient(circle at 50% 50%, #f0a080 0%, #c06040 60%, #803020 100%); border-radius: 50%; box-shadow: 0 0 6px rgba(192,96,64,.4); animation: nb-flower 5s ease-in-out infinite; }
.scn-note-on-boccaccio .flower2 { position: absolute; bottom: 14%; right: 26%; width: 8px; height: 8px; background: radial-gradient(circle at 50% 50%, #f0c0a0 0%, #d09060 60%, #b07040 100%); border-radius: 50%; animation: nb-flower 5s ease-in-out infinite 1s; }
@keyframes nb-bg { 0% { opacity: .8; } 50% { opacity: .6; } 100% { opacity: .8; } }
@keyframes nb-book { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes nb-note { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes nb-child { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes nb-flower { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(10deg); } 100% { transform: scale(1) rotate(0deg); } }

/* ─── Scene: tears-grateful-people-final ─── */

.scn-tears-grateful-people-final {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a14 50%, #1e0e0a 100%),
              radial-gradient(ellipse at 40% 60%, #3a2a1e 0%, transparent 70%);
}
.scn-tears-grateful-people-final .room-bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1e1410 0%, #2a1e18 50%, #1a100e 100%);
  animation: tgp-room 12s ease-in-out infinite alternate;
}
.scn-tears-grateful-people-final .window-frame {
  position: absolute; left: 10%; top: 20%; width: 30%; height: 50%;
  background: linear-gradient(135deg, #4a3a30 0%, #2a1e18 100%);
  border-radius: 4% 4% 6% 6%; box-shadow: inset 0 0 30px rgba(0,0,0,.6);
  animation: tgp-frame 14s ease-in-out infinite;
}
.scn-tears-grateful-people-final .window-sky {
  position: absolute; left: 14%; top: 24%; width: 22%; height: 42%;
  background: linear-gradient(180deg, #3a4060 0%, #283050 40%, #101828 100%);
  border-radius: 2%; box-shadow: inset 0 0 60px rgba(20,40,80,.5);
  animation: tgp-skydim 20s ease-in-out infinite alternate;
}
.scn-tears-grateful-people-final .kneeling-figure {
  position: absolute; bottom: 18%; left: 45%; width: 28px; height: 44px;
  background: linear-gradient(180deg, #1a1a20 0%, #0e0e12 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: tgp-kneel 6s ease-in-out infinite;
}
.scn-tears-grateful-people-final .scion-branch {
  position: absolute; bottom: 35%; right: 12%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #3a2015 0%, #1e0e08 100%);
  border-radius: 0 40% 30% 30% / 0 60% 50% 50%;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  animation: tgp-branch 9s ease-in-out infinite alternate;
}
.scn-tears-grateful-people-final .tear-drop {
  position: absolute; width: 6px; height: 10px; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  background: radial-gradient(circle at 30% 20%, #a8d8ff 0%, #5090c0 100%);
  opacity: .7;
}
.scn-tears-grateful-people-final .tear1 {
  left: 42%; top: 30%; animation: tgp-tear1 3s ease-in-out infinite;
}
.scn-tears-grateful-people-final .tear2 {
  left: 48%; top: 25%; animation: tgp-tear2 3.7s ease-in-out infinite 1.5s;
}
.scn-tears-grateful-people-final .balm-glow {
  position: absolute; bottom: 20%; left: 50%; width: 14px; height: 14px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle, #ffddaa 0%, #cc8844 60%, transparent 100%);
  box-shadow: 0 0 40px 12px rgba(204,136,68,.4);
  animation: tgp-balm 5s ease-in-out infinite alternate;
}
@keyframes tgp-room { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .75 } }
@keyframes tgp-frame { 0%,100% { transform: translateY(0) } 33% { transform: translateY(-2px) } 66% { transform: translateY(1px) } }
@keyframes tgp-skydim { 0% { opacity: .6; filter: brightness(.8) } 50% { opacity: .9; filter: brightness(1) } 100% { opacity: .5; filter: brightness(.7) } }
@keyframes tgp-kneel { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tgp-branch { 0% { transform: rotate(-2deg) scaleY(1) } 50% { transform: rotate(3deg) scaleY(1.02) } 100% { transform: rotate(-1deg) scaleY(1) } }
@keyframes tgp-tear1 { 0% { opacity: .7; transform: translateY(0) } 30% { opacity: 1; transform: translateY(8px) } 60% { opacity: .9; transform: translateY(14px) } 100% { opacity: .5; transform: translateY(20px) } }
@keyframes tgp-tear2 { 0% { opacity: .5; transform: translateY(0) } 30% { opacity: .9; transform: translateY(-6px) } 60% { opacity: 1; transform: translateY(-12px) } 100% { opacity: .6; transform: translateY(-18px) } }
@keyframes tgp-balm { 0% { opacity: .6; transform: translate(-50%,0) scale(.9) } 50% { opacity: 1; transform: translate(-50%,-2px) scale(1.1) } 100% { opacity: .7; transform: translate(-50%,0) scale(.95) } }

/* ─── Scene: youth-and-age-breeze ─── */

.scn-youth-and-age-breeze {
  background: linear-gradient(180deg, #87CEEB 0%, #b0d4f1 30%, #e2f0fa 60%, #ffffff 100%),
              radial-gradient(ellipse at 70% 80%, #f0e68c 0%, transparent 70%);
}
.scn-youth-and-age-breeze .sky {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #aad0f0 0%, #d8ecff 100%);
  animation: yab-sky 15s ease-in-out infinite alternate;
}
.scn-youth-and-age-breeze .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7cb342 0%, #558b2f 50%, #3e6b1e 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  animation: yab-grass 20s ease-in-out infinite alternate;
}
.scn-youth-and-age-breeze .tree-blossom {
  position: absolute; bottom: 25%; left: 20%; width: 120px; height: 140px;
  background: radial-gradient(ellipse at 50% 30%, #ffb7c5 0%, #ff8fab 40%, #c46a7d 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px rgba(255,183,197,.3);
  animation: yab-tree 18s ease-in-out infinite;
}
.scn-youth-and-age-breeze .youth-figure {
  position: absolute; bottom: 10%; left: 45%; width: 34px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: yab-youth 8s ease-in-out infinite;
}
.scn-youth-and-age-breeze .bee {
  position: absolute; top: 35%; left: 30%; width: 12px; height: 8px;
  background: radial-gradient(circle, #ffd54f 40%, #333 60%);
  border-radius: 50%;
  animation: yab-bee 10s ease-in-out infinite;
}
.scn-youth-and-age-breeze .breeze-line {
  position: absolute; top: 20%; left: -10%; width: 120%; height: 2px;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.5) 20%, transparent 40%);
  border-radius: 50%;
  animation: yab-breeze 25s linear infinite;
}
.scn-youth-and-age-breeze .house-distant {
  position: absolute; bottom: 28%; right: 8%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 10px rgba(0,0,0,.2);
  animation: yab-house 30s ease-in-out infinite alternate;
}
.scn-youth-and-age-breeze .wildflower {
  position: absolute; bottom: 15%; left: 70%; width: 8px; height: 12px;
  background: radial-gradient(circle, #fff176 0%, #f9a825 100%);
  border-radius: 50%;
  animation: yab-flower 7s ease-in-out infinite alternate;
}
@keyframes yab-sky { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes yab-grass { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes yab-tree { 0% { transform: rotate(0) scale(1) } 25% { transform: rotate(3deg) scale(1.02) } 50% { transform: rotate(-2deg) scale(1) } 75% { transform: rotate(1deg) scale(1.01) } 100% { transform: rotate(0) scale(1) } }
@keyframes yab-youth { 0% { transform: translateY(0) rotate(0) } 33% { transform: translateY(-2px) rotate(2deg) } 66% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes yab-bee { 0% { transform: translate(0,0) } 20% { transform: translate(20px,-10px) } 40% { transform: translate(40px,0) } 60% { transform: translate(20px,10px) } 80% { transform: translate(0,-5px) } 100% { transform: translate(0,0) } }
@keyframes yab-breeze { 0% { transform: translateX(0) opacity:0 } 10% { opacity:.7 } 90% { opacity:.7 } 100% { transform: translateX(1200px) opacity:0 } }
@keyframes yab-house { 0% { opacity: .9; transform: translateY(0) } 50% { opacity: 1; transform: translateY(-1px) } 100% { opacity: .8; transform: translateY(1px) } }
@keyframes yab-flower { 0% { opacity: .7; transform: scale(.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .8; transform: scale(.9) } }

/* ─── Scene: youth-and-age-wistful ─── */

.scn-youth-and-age-wistful {
  background: linear-gradient(180deg, #fdf6e3 0%, #f5e6ca 40%, #e6d5b8 100%),
              radial-gradient(ellipse at 50% 30%, #ffe0b2 0%, transparent 70%);
}
.scn-youth-and-age-wistful .garden-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8b9a6e 0%, #5a7040 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  animation: yaw-ground 16s ease-in-out infinite alternate;
}
.scn-youth-and-age-wistful .shelter-tree {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 180px;
  background: linear-gradient(180deg, #5d4037 0%, #3e2723 100%);
  border-radius: 20% 20% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px rgba(0,0,0,.4);
  animation: yaw-trunk 20s ease-in-out infinite;
}
.scn-youth-and-age-wistful .tree-canopy {
  position: absolute; bottom: 55%; left: 18%; width: 180px; height: 120px;
  background: radial-gradient(ellipse at 50% 30%, #81c784 0%, #4caf50 50%, #2e7d32 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px rgba(76,175,80,.3);
  animation: yaw-canopy 18s ease-in-out infinite alternate;
}
.scn-youth-and-age-wistful .swing {
  position: absolute; bottom: 28%; left: 35%; width: 4px; height: 50px;
  background: #5d4037;
  border-radius: 2px;
  transform-origin: top center;
  animation: yaw-swing 5s ease-in-out infinite;
}
.scn-youth-and-age-wistful .figure-seated {
  position: absolute; bottom: 15%; left: 40%; width: 32px; height: 44px;
  background: linear-gradient(180deg, #1a1a3e 0%, #0e0e2a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: yaw-figure 10s ease-in-out infinite;
}
.scn-youth-and-age-wistful .flower1 {
  position: absolute; bottom: 20%; right: 28%; width: 10px; height: 12px;
  background: radial-gradient(circle, #fff176 0%, #fdd835 100%);
  border-radius: 50%;
  animation: yaw-flower1 6s ease-in-out infinite alternate;
}
.scn-youth-and-age-wistful .flower2 {
  position: absolute; bottom: 16%; right: 38%; width: 8px; height: 10px;
  background: radial-gradient(circle, #f48fb1 0%, #d81b60 100%);
  border-radius: 50%;
  animation: yaw-flower2 7s ease-in-out infinite alternate 1s;
}
.scn-youth-and-age-wistful .butterfly {
  position: absolute; top: 30%; left: 50%; width: 14px; height: 10px;
  background: radial-gradient(circle, #ff8a65 0%, #ff5722 60%, transparent 100%);
  border-radius: 50%;
  clip-path: polygon(0% 50%, 100% 0%, 100% 100%);
  animation: yaw-butterfly 12s ease-in-out infinite;
}
@keyframes yaw-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes yaw-trunk { 0% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(1deg) scaleY(1.02) } 100% { transform: rotate(-1deg) scaleY(1) } }
@keyframes yaw-canopy { 0% { transform: rotate(0) scale(1) } 33% { transform: rotate(2deg) scale(1.03) } 66% { transform: rotate(-1deg) scale(.98) } 100% { transform: rotate(0) scale(1) } }
@keyframes yaw-swing { 0% { transform: rotate(-8deg) } 25% { transform: rotate(8deg) } 50% { transform: rotate(-6deg) } 75% { transform: rotate(6deg) } 100% { transform: rotate(-8deg) } }
@keyframes yaw-figure { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes yaw-flower1 { 0% { opacity: .6; transform: scale(.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .7; transform: scale(.9) } }
@keyframes yaw-flower2 { 0% { opacity: .7; transform: scale(.9) rotate(0) } 50% { opacity: 1; transform: scale(1.1) rotate(10deg) } 100% { opacity: .8; transform: scale(.95) rotate(0) } }
@keyframes yaw-butterfly { 0% { transform: translate(0,0) rotate(0) } 25% { transform: translate(30px,-10px) rotate(20deg) } 50% { transform: translate(60px,0) rotate(-10deg) } 75% { transform: translate(30px,10px) rotate(15deg) } 100% { transform: translate(0,0) rotate(0) } }

/* ─── Scene: youth-and-age-thought ─── */

.scn-youth-and-age-thought {
  background: linear-gradient(180deg, #f5deb3 0%, #e6cba5 30%, #d4b68a 70%, #c19a6b 100%),
              radial-gradient(ellipse at 60% 50%, #ffe4b5 0%, transparent 70%);
}
.scn-youth-and-age-thought .room-interior {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2a1a 0%, #2a1e14 100%);
  animation: yat-room 20s ease-in-out infinite alternate;
}
.scn-youth-and-age-thought .wide-window {
  position: absolute; left: 20%; top: 15%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #f0e6d0 0%, #d4c4a0 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 40px rgba(0,0,0,.3);
  animation: yat-window 16s ease-in-out infinite;
}
.scn-youth-and-age-thought .morning-light {
  position: absolute; left: 22%; top: 18%; width: 56%; height: 34%;
  background: radial-gradient(ellipse at 30% 50%, #ffe082 0%, transparent 80%);
  opacity: .4;
  animation: yat-morning 12s ease-in-out infinite alternate;
}
.scn-youth-and-age-thought .evening-shadow {
  position: absolute; left: 22%; top: 18%; width: 56%; height: 34%;
  background: radial-gradient(ellipse at 70% 50%, #7b4a3a 0%, transparent 80%);
  opacity: .3;
  animation: yat-evening 18s ease-in-out infinite alternate;
}
.scn-youth-and-age-thought .reading-table {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #6d4c41 0%, #4e342e 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 6px 16px rgba(0,0,0,.5);
  animation: yat-table 14s ease-in-out infinite;
}
.scn-youth-and-age-thought .open-book {
  position: absolute; bottom: 20%; left: 44%; width: 12%; height: 10%;
  background: linear-gradient(135deg, #f5f5f0 0%, #d7ccc8 50%, #bcaaa4 100%);
  border-radius: 4% 4% 10% 10%;
  box-shadow: 0 0 10px rgba(0,0,0,.2);
  animation: yat-book 10s ease-in-out infinite alternate;
}
.scn-youth-and-age-thought .candle {
  position: absolute; bottom: 18%; left: 55%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #ffcc80 0%, #ffb74d 50%, #795548 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(255,183,77,.6);
  animation: yat-candle 5s ease-in-out infinite alternate;
}
.scn-youth-and-age-thought .figures-youth-age {
  position: absolute; bottom: 8%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(90deg, #1a1a3e 0%, #2a2a4e 50%, #1a1a3e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  clip-path: polygon(10% 30%, 90% 30%, 80% 100%, 20% 100%);
  animation: yat-figures 15s ease-in-out infinite alternate;
}
@keyframes yat-room { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes yat-window { 0% { transform: translateY(0) } 33% { transform: translateY(-3px) } 66% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes yat-morning { 0% { opacity: .3; transform: scale(.95) } 50% { opacity: .6; transform: scale(1.05) } 100% { opacity: .4; transform: scale(1) } }
@keyframes yat-evening { 0% { opacity: .2; transform: scale(1) } 50% { opacity: .5; transform: scale(.9) } 100% { opacity: .3; transform: scale(1) } }
@keyframes yat-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes yat-book { 0% { transform: rotate(-2deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(-1deg) scaleY(1) } }
@keyframes yat-candle { 0% { opacity: .8; transform: rotate(0) scaleY(1) } 25% { opacity: 1; transform: rotate(-2deg) scaleY(1.05) } 50% { opacity: .9; transform: rotate(2deg) scaleY(1.02) } 75% { opacity: 1; transform: rotate(-1deg) scaleY(1.03) } 100% { opacity: .8; transform: rotate(0) scaleY(1) } }
@keyframes yat-figures { 0% { opacity: .6; transform: translateY(0) scaleY(1) } 50% { opacity: .9; transform: translateY(-2px) scaleY(1.02) } 100% { opacity: .7; transform: translateY(0) scaleY(1) } }

/* scene: concert-room-textual-variants */

.scn-concert-room-textual-variants { background: linear-gradient(180deg, #f5e6c8 0%, #d9b88a 100%), radial-gradient(ellipse at 50% 30%, #fff3d0 0%, transparent 60%); }
.scn-concert-room-textual-variants .window { position:absolute; top:10%; left:10%; width:40%; height:50%; background: linear-gradient(180deg, #c9e8f0 0%, #add8e6 100%); border-radius:5px; box-shadow:inset -2px -2px 8px rgba(0,0,0,0.1),0 0 20px rgba(173,216,230,0.3); animation:cr-window 6s ease-in-out infinite alternate; }
.scn-concert-room-textual-variants .piano { position:absolute; bottom:10%; left:20%; width:35%; height:15%; background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 50%, #3a2a1a 100%); border-radius:5px 5px 0 0; box-shadow:0 4px 10px rgba(0,0,0,0.3); animation:cr-piano 8s ease-in-out infinite; }
.scn-concert-room-textual-variants .figure { position:absolute; bottom:15%; left:55%; width:12%; height:40%; background: linear-gradient(180deg, #2c1a1a 0%, #1a0e0e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:cr-figure 3s ease-in-out infinite alternate; }
.scn-concert-room-textual-variants .music-stand { position:absolute; bottom:20%; left:38%; width:8%; height:20%; background: linear-gradient(180deg, #8b5a2b 0%, #5a3a1a 100%); border-radius:2px; transform:rotate(-5deg); animation:cr-stand 5s ease-in-out infinite alternate; }
.scn-concert-room-textual-variants .candle { position:absolute; bottom:25%; left:33%; width:2%; height:6%; background: linear-gradient(180deg, #f0d060 0%, #d08040 100%); border-radius:50% 50% 0 0; box-shadow:0 0 15px 5px #f0d060; animation:cr-candle 2s ease-in-out infinite alternate; }
.scn-concert-room-textual-variants .sheet { position:absolute; bottom:28%; left:60%; width:10%; height:15%; background:#fff; border-radius:2px; opacity:0.7; transform:rotate(10deg); animation:cr-sheet 4s ease-in-out infinite; }
@keyframes cr-window { 0% { opacity:0.8; } 50% { opacity:1; box-shadow:0 0 30px #add8e6; } 100% { opacity:0.85; } }
@keyframes cr-piano { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.02); } 100% { transform:scaleY(0.98); } }
@keyframes cr-figure { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-5px) rotate(2deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes cr-stand { 0% { transform:rotate(-5deg); } 50% { transform:rotate(0deg); } 100% { transform:rotate(5deg); } }
@keyframes cr-candle { 0% { opacity:0.7; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.1); } 100% { opacity:0.8; transform:scaleY(0.9); } }
@keyframes cr-sheet { 0% { transform:rotate(10deg) translateY(0); } 50% { transform:rotate(15deg) translateY(-2px); } 100% { transform:rotate(5deg) translateY(0); } }

/* scene: westphalian-song-translation */

.scn-westphalian-song-translation { background: linear-gradient(180deg, #f7e9d7 0%, #e8d1b5 100%), radial-gradient(ellipse at 50% 20%, #ffe8c0 0%, transparent 70%); }
.scn-westphalian-song-translation .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #b58a6a 0%, #8a6040 100%); }
.scn-westphalian-song-translation .table { position:absolute; bottom:15%; left:30%; width:30%; height:8%; background: linear-gradient(90deg, #6a4a2a 0%, #8a6a4a 50%, #6a4a2a 100%); border-radius:5px; box-shadow:0 4px 8px rgba(0,0,0,0.3); animation:ws-table 6s ease-in-out infinite; }
.scn-westphalian-song-translation .fireplace { position:absolute; bottom:10%; left:10%; width:20%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:10px 10px 0 0; animation:ws-fire 5s ease-in-out infinite alternate; }
.scn-westphalian-song-translation .dancer-a { position:absolute; bottom:12%; left:35%; width:10%; height:30%; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:ws-dancer 2s ease-in-out infinite; }
.scn-westphalian-song-translation .dancer-b { position:absolute; bottom:12%; left:50%; width:10%; height:30%; background: linear-gradient(180deg, #2a6a4a 0%, #1a4a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:ws-dancer 2s ease-in-out infinite reverse; }
.scn-westphalian-song-translation .bunting { position:absolute; top:10%; left:0; right:0; height:5%; background: repeating-linear-gradient(90deg, #c8553d 0%, #c8553d 5%, transparent 5%, transparent 10%, #2a6a4a 10%, #2a6a4a 15%, transparent 15%, transparent 20%, #e0a040 20%, #e0a040 25%, transparent 25%, transparent 30%); border-radius:50% 50% 0 0; animation:ws-bunting 12s linear infinite; }
.scn-westphalian-song-translation .mug { position:absolute; bottom:18%; left:32%; width:5%; height:10%; background: linear-gradient(180deg, #d0c090 0%, #b09870 100%); border-radius:10% 10% 30% 30%; animation:ws-mug 4s ease-in-out infinite alternate; }
@keyframes ws-table { 0% { transform:scaleX(1); } 50% { transform:scaleX(0.98); } 100% { transform:scaleX(1.02); } }
@keyframes ws-fire { 0% { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); } 50% { background: linear-gradient(180deg, #ff8c00 0%, #ff4500 100%); box-shadow:0 0 20px #ff4500; } 100% { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); } }
@keyframes ws-dancer { 0% { transform:translateY(0) rotate(-5deg); } 25% { transform:translateY(-10px) rotate(5deg); } 50% { transform:translateY(0) rotate(-5deg); } 75% { transform:translateY(-10px) rotate(5deg); } 100% { transform:translateY(0) rotate(-5deg); } }
@keyframes ws-bunting { 0% { transform:translateX(0); } 100% { transform:translateX(-10%); } }
@keyframes ws-mug { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-3px) rotate(-5deg); } 100% { transform:translateY(0) rotate(3deg); } }

/* scene: hexameters-psalm-strength */

.scn-hexameters-psalm-strength { background: linear-gradient(180deg, #e8dcc8 0%, #c4b59a 100%), radial-gradient(ellipse at 50% 80%, #fff7e0 0%, transparent 60%); }
.scn-hexameters-psalm-strength .arch-left { position:absolute; top:0; left:0; width:30%; height:80%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:0 0 50% 0; }
.scn-hexameters-psalm-strength .arch-right { position:absolute; top:0; right:0; width:30%; height:80%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:0 0 0 50%; }
.scn-hexameters-psalm-strength .stained-glass { position:absolute; top:20%; left:30%; width:40%; height:40%; background: linear-gradient(135deg, #4a7a9a 0%, #6a9aba 50%, #4a7a9a 100%), radial-gradient(circle at 50% 50%, #ffd700 0%, transparent 70%); border-radius:50% 50% 0 0; animation:hp-glass 10s ease-in-out infinite alternate; }
.scn-hexameters-psalm-strength .altar { position:absolute; bottom:15%; left:40%; width:20%; height:10%; background: linear-gradient(180deg, #8b7355 0%, #6b5335 100%); border-radius:5px; box-shadow:0 4px 10px rgba(0,0,0,0.3); }
.scn-hexameters-psalm-strength .figure-kneeling { position:absolute; bottom:12%; left:45%; width:10%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:hp-kneel 4s ease-in-out infinite alternate; }
.scn-hexameters-psalm-strength .candle { position:absolute; bottom:20%; left:38%; width:2%; height:8%; background: linear-gradient(180deg, #f0d060 0%, #d08040 100%); border-radius:50% 50% 0 0; box-shadow:0 0 15px 5px #f0d060; animation:hp-candle 3s ease-in-out infinite alternate; }
.scn-hexameters-psalm-strength .river { position:absolute; bottom:5%; left:0; right:0; height:15%; background: linear-gradient(90deg, #5a8a9a 0%, #7aabba 50%, #5a8a9a 100%); opacity:0.5; animation:hp-river 8s linear infinite; }
@keyframes hp-glass { 0% { background: linear-gradient(135deg, #4a7a9a 0%, #6a9aba 50%, #4a7a9a 100%), radial-gradient(circle at 50% 50%, #ffd700 0%, transparent 70%); } 50% { background: linear-gradient(135deg, #6a9aba 0%, #8abaca 50%, #6a9aba 100%), radial-gradient(circle at 50% 50%, #ffcc00 0%, transparent 80%); } 100% { background: linear-gradient(135deg, #4a7a9a 0%, #6a9aba 50%, #4a7a9a 100%), radial-gradient(circle at 50% 50%, #ffd700 0%, transparent 70%); } }
@keyframes hp-kneel { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-3px) rotate(0deg); } 100% { transform:translateY(0) rotate(2deg); } }
@keyframes hp-candle { 0% { opacity:0.7; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.15); } 100% { opacity:0.8; transform:scaleY(0.95); } }
@keyframes hp-river { 0% { background-position:0 0; } 100% { background-position:100% 0; } }

/* scene: psalm-desolations-battle-cease */

.scn-psalm-desolations-battle-cease { background: linear-gradient(180deg, #6a7b8c 0%, #4a5b6c 100%), radial-gradient(ellipse at 50% 60%, #8a9bab 0%, transparent 70%); }
.scn-psalm-desolations-battle-cease .mist-bg { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 50%, rgba(200,210,220,0.3) 0%, transparent 70%); animation:pd-mist 20s ease-in-out infinite alternate; }
.scn-psalm-desolations-battle-cease .altar-rock { position:absolute; bottom:20%; left:40%; width:20%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:30% 30% 10% 10%; }
.scn-psalm-desolations-battle-cease .spear-broken { position:absolute; bottom:25%; left:35%; width:4%; height:30%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:2px; transform:rotate(45deg); animation:pd-spear 6s ease-in-out infinite alternate; }
.scn-psalm-desolations-battle-cease .figure-kneel { position:absolute; bottom:12%; left:45%; width:12%; height:28%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:pd-figure 5s ease-in-out infinite alternate; }
.scn-psalm-desolations-battle-cease .ray-light { position:absolute; top:0; left:30%; width:40%; height:30%; background: linear-gradient(180deg, rgba(255,230,180,0.4) 0%, transparent 100%); border-radius:50%; filter:blur(10px); animation:pd-ray 8s ease-in-out infinite alternate; }
.scn-psalm-desolations-battle-cease .clouds { position:absolute; top:5%; left:0; right:0; height:30%; background: repeating-linear-gradient(90deg, rgba(100,110,120,0.3) 0%, rgba(100,110,120,0.3) 20%, transparent 20%, transparent 30%); animation:pd-clouds 30s linear infinite; }
@keyframes pd-mist { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.3; } }
@keyframes pd-spear { 0% { transform:rotate(45deg) translateX(0); } 50% { transform:rotate(30deg) translateX(5px); } 100% { transform:rotate(45deg) translateX(0); } }
@keyframes pd-figure { 0% { transform:translateY(0) rotate(-3deg); } 50% { transform:translateY(-5px) rotate(0deg); } 100% { transform:translateY(0) rotate(3deg); } }
@keyframes pd-ray { 0% { opacity:0.3; transform:scale(0.8); } 50% { opacity:0.6; transform:scale(1.1); } 100% { opacity:0.4; transform:scale(0.9); } }
@keyframes pd-clouds { 0% { background-position:0 0; } 100% { background-position:-100% 0; } }

.scn-lines-berengarius-courage { background: linear-gradient(180deg, #1a0a2a 0%, #0d0a1a 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%); }
.scn-lines-berengarius-courage .bg-dark { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 30%, rgba(30,20,10,0.5) 0%, transparent 70%); animation: bc-sway 20s ease-in-out infinite alternate; }
.scn-lines-berengarius-courage .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 0 0 10% 10% / 0 0 5% 5%; }
.scn-lines-berengarius-courage .window-glow { position:absolute; top:15%; left:30%; width:80px; height:100px; background: radial-gradient(circle, #d4a050 0%, transparent 70%); box-shadow: 0 0 40px 20px rgba(212,160,80,0.5); animation: bc-glow 4s ease-in-out infinite alternate; border-radius: 10% / 20%; }
.scn-lines-berengarius-courage .figure { position:absolute; bottom:30%; left:45%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bc-figure 6s ease-in-out infinite; }
.scn-lines-berengarius-courage .trophy { position:absolute; bottom:30%; left:60%; width:20px; height:30px; background: linear-gradient(180deg, #b08040 0%, #805020 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 10px rgba(200,160,80,0.3); animation: bc-trophy 8s ease-in-out infinite; }
@keyframes bc-sway { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.02); } 100% { opacity:0.8; transform: scale(1); } }
@keyframes bc-glow { 0% { opacity:0.7; box-shadow: 0 0 30px 15px rgba(212,160,80,0.4); } 50% { opacity:1; box-shadow: 0 0 60px 30px rgba(212,160,80,0.7); } 100% { opacity:0.7; box-shadow: 0 0 30px 15px rgba(212,160,80,0.4); } }
@keyframes bc-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(10px) translateY(0) rotate(-1deg); } 75% { transform: translateX(5px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes bc-trophy { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }

.scn-epitaphium-testamentarium { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%); }
.scn-epitaphium-testamentarium .bg-room { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, rgba(60,40,20,0.4) 0%, transparent 70%); animation: et-drift 15s ease-in-out infinite alternate; }
.scn-epitaphium-testamentarium .desk { position:absolute; bottom:15%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 5% 5% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: et-desk 10s ease-in-out infinite; }
.scn-epitaphium-testamentarium .candle { position:absolute; bottom:30%; left:40%; width:8px; height:30px; background: linear-gradient(180deg, #e8d0a0 0%, #c8a060 100%); border-radius: 50% 50% 20% 20%; animation: et-candle 6s ease-in-out infinite; }
.scn-epitaphium-testamentarium .flame { position:absolute; bottom:60%; left:40%; width:10px; height:20px; background: radial-gradient(ellipse, #f0e080 0%, #d0a030 50%, transparent 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 20px 10px rgba(240,224,128,0.6); animation: et-flame 3s ease-in-out infinite alternate; }
.scn-epitaphium-testamentarium .paper { position:absolute; bottom:18%; left:55%; width:40px; height:30px; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 3%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); transform: rotate(5deg); animation: et-paper 8s ease-in-out infinite; }
.scn-epitaphium-testamentarium .inkwell { position:absolute; bottom:28%; left:30%; width:12px; height:12px; background: radial-gradient(circle, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: et-ink 12s ease-in-out infinite; }
@keyframes et-drift { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:0.95; transform: scale(1.01); } 100% { opacity:0.8; transform: scale(1); } }
@keyframes et-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes et-candle { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes et-flame { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.2); } 100% { opacity:0.8; transform: scaleY(1); } }
@keyframes et-paper { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(6deg) translateY(-1px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes et-ink { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(1); } }

.scn-improvisatore-drawing-room { background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, transparent 70%); }
.scn-improvisatore-drawing-room .bg-room { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(80,60,40,0.3) 0%, transparent 70%); animation: dr-ambient 20s ease-in-out infinite alternate; }
.scn-improvisatore-drawing-room .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; }
.scn-improvisatore-drawing-room .piano-body { position:absolute; bottom:25%; left:10%; width:150px; height:80px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: dr-piano 12s ease-in-out infinite; }
.scn-improvisatore-drawing-room .piano-lid { position:absolute; bottom:70%; left:10%; width:150px; height:30px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%); border-radius: 10% 10% 0 0; transform: rotateX(30deg); transform-origin: bottom; animation: dr-lid 15s ease-in-out infinite; }
.scn-improvisatore-drawing-room .stool { position:absolute; bottom:25%; left:35%; width:30px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 0 0; transform: translateX(-50%); animation: dr-stool 8s ease-in-out infinite; }
.scn-improvisatore-drawing-room .window { position:absolute; top:10%; right:10%; width:80px; height:120px; background: radial-gradient(ellipse, #c06040 0%, transparent 70%); border-radius: 10%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 30px rgba(100,60,40,0.3); animation: dr-window 6s ease-in-out infinite alternate; }
.scn-improvisatore-drawing-room .curtain { position:absolute; top:10%; right:10%; width:100px; height:120px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); clip-path: polygon(0 0, 20% 0, 20% 100%, 0 100%); border-radius: 5%; animation: dr-curtain 14s ease-in-out infinite; }
@keyframes dr-ambient { 0% { opacity:0.8; } 50% { opacity:0.95; } 100% { opacity:0.8; } }
@keyframes dr-piano { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes dr-lid { 0% { transform: rotateX(30deg); } 50% { transform: rotateX(35deg); } 100% { transform: rotateX(30deg); } }
@keyframes dr-stool { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes dr-window { 0% { opacity:0.6; box-shadow: 0 0 20px rgba(150,80,40,0.3); } 50% { opacity:0.9; box-shadow: 0 0 40px rgba(150,80,40,0.6); } 100% { opacity:0.6; box-shadow: 0 0 20px rgba(150,80,40,0.3); } }
@keyframes dr-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }

.scn-improvisatore-elder-brother { background: linear-gradient(180deg, #2a2a1a 0%, #3a3a2a 50%, #1a1a0a 100%), radial-gradient(ellipse at 50% 70%, #4a4a3a 0%, transparent 60%); }
.scn-improvisatore-elder-brother .bg-dark { position:absolute; inset:0; background: radial-gradient(ellipse at 70% 40%, rgba(40,40,30,0.5) 0%, transparent 70%); animation: eb-drift 20s ease-in-out infinite alternate; }
.scn-improvisatore-elder-brother .window-frame { position:absolute; top:10%; left:30%; width:120px; height:150px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: eb-frame 15s ease-in-out infinite; }
.scn-improvisatore-elder-brother .vine-left { position:absolute; top:20%; left:25%; width:20px; height:120px; background: linear-gradient(180deg, #3a5a2a 0%, #2a4a1a 100%); border-radius: 50% 50% 10% 10% / 30% 30% 10% 10%; transform: rotate(-20deg); transform-origin: top; animation: eb-vine-l 8s ease-in-out infinite alternate; }
.scn-improvisatore-elder-brother .vine-right { position:absolute; top:20%; right:25%; width:20px; height:120px; background: linear-gradient(180deg, #3a5a2a 0%, #2a4a1a 100%); border-radius: 50% 50% 10% 10% / 30% 30% 10% 10%; transform: rotate(20deg); transform-origin: top; animation: eb-vine-r 8s ease-in-out infinite alternate; }
.scn-improvisatore-elder-brother .leaves { position:absolute; top:30%; left:20%; width:10px; height:10px; background: radial-gradient(circle, #5a8a4a 0%, #3a6a2a 100%); border-radius: 50%; box-shadow: 0 0 6px rgba(60,90,40,0.3); animation: eb-leaves 12s ease-in-out infinite; }
.scn-improvisatore-elder-brother .lamp { position:absolute; top:40%; left:55%; width:15px; height:15px; background: radial-gradient(circle, #e0b060 0%, #c08040 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 10px rgba(200,128,64,0.5); animation: eb-lamp 5s ease-in-out infinite alternate; }
@keyframes eb-drift { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.02); opacity:0.95; } 100% { transform: scale(1); opacity:0.8; } }
@keyframes eb-frame { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes eb-vine-l { 0% { transform: rotate(-20deg) scaleY(1); } 50% { transform: rotate(-22deg) scaleY(1.02); } 100% { transform: rotate(-20deg) scaleY(1); } }
@keyframes eb-vine-r { 0% { transform: rotate(20deg) scaleY(1); } 50% { transform: rotate(22deg) scaleY(1.02); } 100% { transform: rotate(20deg) scaleY(1); } }
@keyframes eb-leaves { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(3px, -2px) scale(1.1); } 100% { transform: translate(0, 0) scale(1); } }
@keyframes eb-lamp { 0% { opacity:0.7; box-shadow: 0 0 15px 5px rgba(200,128,64,0.4); } 50% { opacity:1; box-shadow: 0 0 30px 15px rgba(200,128,64,0.7); } 100% { opacity:0.7; box-shadow: 0 0 15px 5px rgba(200,128,64,0.4); } }

.scn-to-lady-offended-souls { background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%), radial-gradient(ellipse at 50% 0%, #5a3a22 0%, transparent 60%); }
.scn-to-lady-offended-souls .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); }
.scn-to-lady-offended-souls .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a2a10 0%, #2a1808 100%); border-radius: 0 0 50% 50%/20% 20% 0 0; }
.scn-to-lady-offended-souls .table { position:absolute; bottom:20%; left:30%; width:120px; height:20px; background: #5a3a1a; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); transform: rotate(-2deg); }
.scn-to-lady-offended-souls .candle-glow { position:absolute; bottom:38%; left:38%; width:8px; height:8px; background: radial-gradient(circle, #ffd080 0%, #c08040 50%, transparent 70%); border-radius:50%; animation: tlo-candle 2s ease-in-out infinite alternate; }
.scn-to-lady-offended-souls .lady { position:absolute; bottom:15%; left:55%; width:40px; height:80px; background: linear-gradient(180deg, #2a1a10 0%, #1a0e04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tlo-lady 3s ease-in-out infinite; }
.scn-to-lady-offended-souls .poet { position:absolute; bottom:15%; left:20%; width:50px; height:70px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tlo-poet 4s ease-in-out infinite; }
.scn-to-lady-offended-souls .book { position:absolute; bottom:22%; left:33%; width:30px; height:8px; background: #4a3020; border-radius: 2px; transform: rotate(-10deg); }
.scn-to-lady-offended-souls .inkwell { position:absolute; bottom:25%; left:40%; width:12px; height:14px; background: #1a1a2a; border-radius: 50%; box-shadow: 0 0 4px rgba(200,150,100,0.5); animation: tlo-ink 2s ease-in-out infinite alternate; }
@keyframes tlo-candle { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.8; transform: scale(0.9); } }
@keyframes tlo-lady { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-3deg); } }
@keyframes tlo-poet { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes tlo-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

.scn-reason-loves-blindness { background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%), radial-gradient(ellipse at 50% 0%, #3a3a5a 0%, transparent 60%); }
.scn-reason-loves-blindness .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); }
.scn-reason-loves-blindness .window { position:absolute; top:10%; left:30%; width:100px; height:120px; background: radial-gradient(ellipse at center, #6a8ab0 0%, #2a4a6a 100%); border:4px solid #4a4a5a; border-radius: 8px; animation: rlb-window 8s ease-in-out infinite alternate; }
.scn-reason-loves-blindness .figure-body { position:absolute; bottom:15%; left:40%; width:40px; height:70px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rlb-body 4s ease-in-out infinite; }
.scn-reason-loves-blindness .figure-head { position:absolute; bottom:62%; left:42%; width:30px; height:30px; background: radial-gradient(circle, #4a3a4a 0%, #2a1a2a 100%); border-radius: 50%; box-shadow: 0 0 0 4px #2a1a2a; animation: rlb-head 4s ease-in-out infinite; }
.scn-reason-loves-blindness .heart { position:absolute; bottom:35%; left:55%; width:20px; height:18px; background: radial-gradient(circle at 50% 40%, #c8553d 0%, #a0461a 100%); transform: rotate(45deg) scale(1); border-radius: 50% 50% 0 0; animation: rlb-heart 2s ease-in-out infinite; }
.scn-reason-loves-blindness .ground { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20% 20% 0 0; }
.scn-reason-loves-blindness .quiver { position:absolute; bottom:20%; left:25%; width:10px; height:30px; background: #5a3a2a; border-radius: 20%; transform: rotate(15deg); animation: rlb-quiver 3s ease-in-out infinite alternate; }
@keyframes rlb-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes rlb-body { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg) translateX(2px); } 100% { transform: rotate(-3deg); } }
@keyframes rlb-head { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes rlb-heart { 0% { transform: rotate(45deg) scale(1); } 50% { transform: rotate(45deg) scale(1.15); } 100% { transform: rotate(45deg) scale(0.95); } }
@keyframes rlb-quiver { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }

.scn-suicides-argument { background: linear-gradient(180deg, #0a0a0a 0%, #050505 100%), radial-gradient(ellipse at 50% 20%, #1a0a0a 0%, transparent 70%); }
.scn-suicides-argument .bg-void { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a0a 0%, #000000 100%); }
.scn-suicides-argument .floor { position:absolute; bottom:0; left:0; right:0; height:10%; background: #0a0a0a; box-shadow: 0 -2px 4px rgba(0,0,0,0.8); }
.scn-suicides-argument .chair { position:absolute; bottom:10%; left:40%; width:80px; height:60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.9); transform: rotate(-1deg); animation: sa-chair 8s ease-in-out infinite alternate; }
.scn-suicides-argument .figure-sitting { position:absolute; bottom:20%; left:45%; width:30px; height:60px; background: linear-gradient(180deg, #1c1c1c 0%, #0e0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sa-figure 6s ease-in-out infinite; }
.scn-suicides-argument .noose { position:absolute; top:0; left:50%; width:4px; height:40%; background: #2a2a2a; transform: translateX(-50%); border-radius: 0 0 50% 50%; animation: sa-noose 8s ease-in-out infinite; }
.scn-suicides-argument .candle-glow { position:absolute; bottom:25%; left:30%; width:6px; height:6px; background: radial-gradient(circle, #6a3a1a 0%, #2a1a0a 50%, transparent 70%); border-radius:50%; animation: sa-candle 4s ease-in-out infinite alternate; }
.scn-suicides-argument .letter { position:absolute; bottom:22%; left:32%; width:16px; height:12px; background: #3a2a1a; border-radius: 2px; transform: rotate(-15deg); animation: sa-letter 6s ease-in-out infinite alternate; }
@keyframes sa-chair { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes sa-figure { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes sa-noose { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes sa-candle { 0% { opacity:0.6; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.7; transform: scale(0.9); } }
@keyframes sa-letter { 0% { transform: translateY(0) rotate(-15deg); } 50% { transform: translateY(-1px) rotate(-10deg); } 100% { transform: translateY(0) rotate(-15deg); } }

.scn-time-real-imaginary { background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%), radial-gradient(ellipse at 50% 0%, #3a3a5a 0%, transparent 60%); }
.scn-time-real-imaginary .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a3a 0%, #0e0e2a 100%); }
.scn-time-real-imaginary .window-scene { position:absolute; top:10%; left:20%; width:160px; height:120px; background: linear-gradient(180deg, #8a9aaa 0%, #4a6a8a 100%); border: 4px solid #4a4a6a; border-radius: 8px; overflow:hidden; animation: tri-window 12s ease-in-out infinite alternate; }
.scn-time-real-imaginary .child-sis { position:absolute; bottom:30%; left:25%; width:20px; height:40px; background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tri-sis 4s linear infinite; }
.scn-time-real-imaginary .child-bro { position:absolute; bottom:30%; left:55%; width:22px; height:42px; background: linear-gradient(180deg, #5a5a7a 0%, #3a3a5a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tri-bro 4s linear infinite reverse; }
.scn-time-real-imaginary .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); }
.scn-time-real-imaginary .clock { position:absolute; top:10%; right:15%; width:40px; height:40px; border: 4px solid #5a5a7a; border-radius: 50%; background: radial-gradient(circle, #2a2a4a 0%, #1a1a3a 100%); animation: tri-clock 10s linear infinite; }
@keyframes tri-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes tri-sis { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(10px) translateY(-2px); } 50% { transform: translateX(20px) translateY(0); } 75% { transform: translateX(10px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes tri-bro { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(-10px) translateY(-2px); } 50% { transform: translateX(-20px) translateY(0); } 75% { transform: translateX(-10px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes tri-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

.scn-folk-song-imitation { background: linear-gradient(180deg, #0b0b2e 0%, #1a1a4e 40%, #2a2a5e 100%), radial-gradient(ellipse at 90% 20%, #f0e0a0 0%, transparent 60%); width:100%; height:100%; position:relative; overflow:hidden; }
.scn-folk-song-imitation .sky { position:absolute; inset:0; background: linear-gradient(180deg, #0b0b2e 0%, #1a1a4e 100%); }
.scn-folk-song-imitation .moon { position:absolute; top:15%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #f0e0a0 0%, #d0c080 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(240,224,160,0.5); animation: fsi-moon 6s ease-in-out infinite alternate; }
.scn-folk-song-imitation .stars { position:absolute; top:5%; left:5%; width:2px; height:2px; background:#fff; border-radius:50%; box-shadow: 15px 20px #fff, 30px 40px #fff, 50px 10px #fff, 70px 60px #fff, 90px 30px #fff, 110px 70px #fff, 130px 15px #fff, 160px 50px #fff, 180px 80px #fff; animation: fsi-twinkle 4s ease-in-out infinite; }
.scn-folk-song-imitation .mountains { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%); border-radius: 60% 40% 0 0 / 100% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); animation: fsi-mtn 12s ease-in-out infinite alternate; }
.scn-folk-song-imitation .figure { position:absolute; bottom:25%; left:30%; width:16px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fsi-fig 5s ease-in-out infinite; }
.scn-folk-song-imitation .lantern { position:absolute; bottom:28%; left:28%; width:8px; height:8px; background: radial-gradient(circle, #d09050 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 5px rgba(208,144,80,0.6); animation: fsi-lantern 3s ease-in-out infinite alternate; }
.scn-folk-song-imitation .cloud { position:absolute; top:35%; left:-10%; width:60px; height:12px; background: linear-gradient(180deg, rgba(200,200,220,0.2) 0%, rgba(200,200,220,0.05) 100%); border-radius:50%; filter:blur(4px); animation: fsi-cloud 30s linear infinite; }
@keyframes fsi-moon { 0% { transform: translateY(0); opacity:.8; } 50% { transform: translateY(-5px); opacity:1; } 100% { transform: translateY(0); opacity:.85; } }
@keyframes fsi-twinkle { 0% { opacity:.3; } 50% { opacity:1; } 100% { opacity:.4; } }
@keyframes fsi-mtn { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes fsi-fig { 0% { transform: rotate(-2deg); } 25% { transform: rotate(1deg) translateX(3px); } 50% { transform: rotate(-1deg) translateX(-2px); } 100% { transform: rotate(0); } }
@keyframes fsi-lantern { 0% { opacity:.7; box-shadow: 0 0 15px 3px rgba(208,144,80,0.4); } 50% { opacity:1; box-shadow: 0 0 30px 8px rgba(208,144,80,0.7); } 100% { opacity:.8; box-shadow: 0 0 20px 5px rgba(208,144,80,0.5); } }
@keyframes fsi-cloud { 0% { transform: translateX(-60px); } 50% { transform: translateX(50vw); } 100% { transform: translateX(120vw); } }

.scn-home-sick-longing { background: linear-gradient(180deg, #1a1510 0%, #2a2018 40%, #3a2a20 100%), radial-gradient(ellipse at 80% 50%, #4a3a30 0%, transparent 80%); width:100%; height:100%; position:relative; overflow:hidden; }
.scn-home-sick-longing .wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1510 0%, #2a2018 100%); }
.scn-home-sick-longing .window { position:absolute; top:15%; left:30%; width:40%; height:50%; background: linear-gradient(180deg, #0b0b2e 0%, #1a1a4e 100%); border: 4px solid #3a2a20; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: hsl-window 8s ease-in-out infinite alternate; }
.scn-home-sick-longing .stars { position:absolute; top:20%; left:35%; width:2px; height:2px; background:#fff; border-radius:50%; box-shadow: 10px 15px #fff, 25px 30px #fff, 40px 10px #fff, 60px 50px #fff, 80px 25px #fff, 100px 60px #fff, 120px 35px #fff, 140px 15px #fff; animation: hsl-twinkle 5s ease-in-out infinite; }
.scn-home-sick-longing .figure { position:absolute; bottom:10%; left:42%; width:18px; height:40px; background: linear-gradient(180deg, #2a2020 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hsl-fig 4s ease-in-out infinite; }
.scn-home-sick-longing .candle { position:absolute; bottom:15%; left:48%; width:6px; height:8px; background: linear-gradient(180deg, #d09050 0%, #a06030 100%); border-radius: 2px; box-shadow: 0 0 15px 5px rgba(208,144,80,0.4); animation: hsl-candle 3s ease-in-out infinite alternate; }
.scn-home-sick-longing .curtain { position:absolute; top:15%; left:30%; width:5%; height:50%; background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 100%); border-radius: 0 4px 4px 0; animation: hsl-curtain 6s ease-in-out infinite; }
@keyframes hsl-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes hsl-twinkle { 0% { opacity:0.2; } 50% { opacity:1; } 100% { opacity:0.3; } }
@keyframes hsl-fig { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hsl-candle { 0% { transform: scaleY(1) rotate(0); } 50% { transform: scaleY(0.8) rotate(2deg); } 100% { transform: scaleY(1) rotate(-1deg); } }
@keyframes hsl-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }

.scn-ballad-of-love-waiting { background: linear-gradient(180deg, #1a1210 0%, #2a1e18 40%, #3a2a20 100%), radial-gradient(ellipse at 20% 50%, #4a3a30 0%, transparent 80%); width:100%; height:100%; position:relative; overflow:hidden; }
.scn-ballad-of-love-waiting .wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1210 0%, #2a1e18 100%); }
.scn-ballad-of-love-waiting .door { position:absolute; bottom:0; left:30%; width:30%; height:80%; background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 100%); border-radius: 8px 8px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: blw-door 10s ease-in-out infinite alternate; }
.scn-ballad-of-love-waiting .figure { position:absolute; bottom:10%; left:40%; width:20px; height:36px; background: linear-gradient(180deg, #2a2020 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: blw-fig 6s ease-in-out infinite; }
.scn-ballad-of-love-waiting .table { position:absolute; bottom:10%; left:35%; width:40px; height:8px; background: linear-gradient(180deg, #4a3a30 0%, #3a2a20 100%); border-radius: 2px; box-shadow: 0 2px 5px rgba(0,0,0,0.5); }
.scn-ballad-of-love-waiting .candle { position:absolute; bottom:20%; left:38%; width:6px; height:10px; background: linear-gradient(180deg, #d09050 0%, #a06030 100%); border-radius: 2px; box-shadow: 0 0 20px 5px rgba(208,144,80,0.4); animation: blw-candle 4s ease-in-out infinite alternate; }
.scn-ballad-of-love-waiting .window { position:absolute; top:15%; right:15%; width:20%; height:30%; background: linear-gradient(180deg, #0b0b2e 0%, #1a1a4e 100%); border: 3px solid #3a2a20; border-radius: 4px; box-shadow: inset 0 0 15px rgba(0,0,0,0.8); animation: blw-window 7s ease-in-out infinite alternate; }
@keyframes blw-door { 0% { transform: rotateY(0); } 50% { transform: rotateY(10deg); } 100% { transform: rotateY(0); } }
@keyframes blw-fig { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes blw-candle { 0% { opacity:0.6; box-shadow: 0 0 10px 3px rgba(208,144,80,0.3); } 50% { opacity:1; box-shadow: 0 0 30px 8px rgba(208,144,80,0.7); } 100% { opacity:0.7; box-shadow: 0 0 15px 5px rgba(208,144,80,0.4); } }
@keyframes blw-window { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }

.scn-album-brocken-insertion { background: linear-gradient(180deg, #a0d0a0 0%, #70b070 40%, #408040 100%), radial-gradient(ellipse at 30% 80%, #90c090 0%, transparent 70%); width:100%; height:100%; position:relative; overflow:hidden; }
.scn-album-brocken-insertion .sky { position:absolute; inset:0; background: linear-gradient(180deg, #90c090 0%, #70b070 100%); animation: abi-sky 10s ease-in-out infinite alternate; }
.scn-album-brocken-insertion .tree-back { position:absolute; top:0; left:5%; width:30%; height:100%; background: linear-gradient(180deg, #307030 0%, #205020 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; animation: abi-tree 15s ease-in-out infinite alternate; }
.scn-album-brocken-insertion .tree-fore { position:absolute; bottom:0; right:10%; width:25%; height:80%; background: linear-gradient(180deg, #408040 0%, #206020 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; animation: abi-tree 18s ease-in-out infinite alternate-reverse; }
.scn-album-brocken-insertion .brook { position:absolute; bottom:20%; left:0; right:0; height:10%; background: linear-gradient(180deg, #80c0a0 0%, #60a080 100%); border-radius: 0 0 50% 50% / 0 0 20% 20%; animation: abi-brook 5s linear infinite; }
.scn-album-brocken-insertion .moss { position:absolute; bottom:25%; left:15%; width:40px; height:20px; background: radial-gradient(ellipse, #70b060 0%, #408030 100%); border-radius: 50%; box-shadow: 0 5px 10px rgba(0,0,0,0.3); animation: abi-moss 4s ease-in-out infinite; }
.scn-album-brocken-insertion .light-rays { position:absolute; top:0; left:20%; width:10%; height:100%; background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%); transform: rotate(20deg); animation: abi-rays 8s ease-in-out infinite alternate; }
@keyframes abi-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes abi-tree { 0% { transform: rotateZ(0); } 50% { transform: rotateZ(2deg); } 100% { transform: rotateZ(0); } }
@keyframes abi-brook { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes abi-moss { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes abi-rays { 0% { opacity:0.3; transform: rotate(20deg) translateX(0); } 50% { opacity:0.6; transform: rotate(25deg) translateX(5px); } 100% { opacity:0.4; transform: rotate(20deg) translateX(0); } }

.scn-hexameters-letter-note {
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a88a 100%), radial-gradient(ellipse at 80% 20%, #f0e0c0 0%, transparent 60%);
}
.scn-hexameters-letter-note .wall { position:absolute; inset:0; background: linear-gradient(90deg, #c8b898 0%, #d8c8a8 50%, #c0b090 100%); }
.scn-hexameters-letter-note .bookshelf { position:absolute; top:10%; left:5%; width:20%; height:45%; background: linear-gradient(180deg, #8c7a6a 0%, #6c5a4a 100%); border-radius:4px; box-shadow: inset 0 0 8px rgba(0,0,0,.3); animation: hex-shelf 20s ease-in-out infinite alternate; }
.scn-hexameters-letter-note .desk { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a09070 0%, #807050 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.4); }
.scn-hexameters-letter-note .paper { position:absolute; bottom:20%; left:35%; width:30%; height:15%; background: linear-gradient(135deg, #f8f0e0 0%, #e8d8c0 100%); border-radius:2px; transform: rotate(-2deg); box-shadow: 2px 4px 8px rgba(0,0,0,.2); animation: hex-paper 6s ease-in-out infinite alternate; }
.scn-hexameters-letter-note .inkwell { position:absolute; bottom:25%; left:25%; width:12px; height:16px; background: radial-gradient(circle, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: hex-ink 4s ease-in-out infinite; }
.scn-hexameters-letter-note .quill { position:absolute; bottom:30%; left:23%; width:4px; height:40px; background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 50%, #a08060 100%); border-radius: 50% 50% 0 0; transform: rotate(-15deg); transform-origin: bottom center; animation: hex-quill 3s ease-in-out infinite alternate; }
.scn-hexameters-letter-note .window { position:absolute; top:5%; right:15%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 30%, #fff8e0 0%, #d0c8a0 70%, #a09870 100%); border-radius:8px; box-shadow: inset 0 0 20px rgba(255,248,224,.4); animation: hex-window 8s ease-in-out infinite alternate; }
@keyframes hex-shelf { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes hex-paper { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes hex-ink { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes hex-quill { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) translateY(-3px) } 100% { transform: rotate(-15deg) } }
@keyframes hex-window { 0% { opacity:0.8; box-shadow: inset 0 0 10px rgba(255,248,224,.2) } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(255,248,224,.6) } 100% { opacity:0.85; box-shadow: inset 0 0 15px rgba(255,248,224,.3) } }

.scn-hymn-to-earth-mother {
  background: linear-gradient(180deg, #6a4a7a 0%, #b07868 40%, #e0a060 70%, #f0d090 100%), radial-gradient(ellipse at 30% 50%, #f0d090 0%, transparent 60%);
}
.scn-hymn-to-earth-mother .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #7a5a8a 0%, #b08070 50%, #d0a060 100%); animation: hym-sky 15s ease-in-out infinite alternate; }
.scn-hymn-to-earth-mother .sun { position:absolute; bottom:45%; left:20%; width:60px; height:60px; background: radial-gradient(circle, #ffe080 0%, #f0a040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 10px #f0a040; animation: hym-sun 20s ease-in-out infinite; }
.scn-hymn-to-earth-mother .earth-mother { position:absolute; bottom:30%; left:30%; width:40%; height:50%; background: radial-gradient(ellipse 130% 100% at 50% 100%, #6a5a4a 0%, #4a3a2a 80%); border-radius: 60% 60% 40% 40% / 80% 80% 50% 50%; box-shadow: 0 0 30px rgba(74,58,42,.3); animation: hym-mother 12s ease-in-out infinite alternate; }
.scn-hymn-to-earth-mother .child-1 { position:absolute; bottom:28%; left:38%; width:8%; height:18%; background: radial-gradient(ellipse 100% 100% at 50% 100%, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: hym-child 5s ease-in-out infinite; }
.scn-hymn-to-earth-mother .child-2 { position:absolute; bottom:30%; right:40%; width:7%; height:15%; background: radial-gradient(ellipse 100% 100% at 50% 100%, #6a5a4a 0%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: hym-child 6s ease-in-out infinite reverse; }
.scn-hymn-to-earth-mother .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; }
.scn-hymn-to-earth-mother .grass { position:absolute; bottom:30%; left:10%; width:100%; height:10%; background: repeating-linear-gradient(90deg, transparent, transparent 8px, #6a8a4a 8px, #6a8a4a 10px); opacity:0.6; animation: hym-grass 8s linear infinite; }
@keyframes hym-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes hym-sun { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 30px 5px #f0a040 } 50% { transform: translateY(-5px) scale(1.05); box-shadow: 0 0 50px 15px #f0a040 } 100% { transform: translateY(0) scale(1) } }
@keyframes hym-mother { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes hym-child { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes hym-grass { 0% { background-position: 0 0 } 100% { background-position: 20px 0 } }

.scn-hymn-friendship-offering-note {
  background: linear-gradient(180deg, #d0b898 0%, #b8a080 100%), radial-gradient(ellipse at 70% 10%, #f0e0c0 0%, transparent 70%);
}
.scn-hymn-friendship-offering-note .wall { position:absolute; inset:0; background: linear-gradient(90deg, #c0a888 0%, #d0b898 50%, #b8a080 100%); }
.scn-hymn-friendship-offering-note .bookshelf { position:absolute; top:10%; left:5%; width:20%; height:50%; background: linear-gradient(180deg, #8a7260 0%, #6a5240 100%); border-radius:4px; box-shadow: inset 0 0 10px rgba(0,0,0,.3); animation: frd-shelf 25s ease-in-out infinite alternate; }
.scn-hymn-friendship-offering-note .desk { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #a09070 0%, #807050 100%); border-radius: 15% 15% 0 0 / 25% 25% 0 0; }
.scn-hymn-friendship-offering-note .open-book { position:absolute; bottom:20%; left:50%; transform: translateX(-50%); width:25%; height:12%; background: linear-gradient(135deg, #f0e0c0 0%, #e0c8a0 100%); border-radius: 4px 4px 8px 8px / 2px 2px 4px 4px; box-shadow: 0 4px 10px rgba(0,0,0,.2); animation: frd-book 7s ease-in-out infinite; }
.scn-hymn-friendship-offering-note .quill { position:absolute; bottom:28%; left:38%; width:4px; height:35px; background: linear-gradient(180deg, #e8d0b0 0%, #c0a080 50%, #a08060 100%); border-radius: 50% 50% 0 0; transform: rotate(-10deg); transform-origin: bottom; animation: frd-quill 3s ease-in-out infinite alternate; }
.scn-hymn-friendship-offering-note .inkwell { position:absolute; bottom:24%; left:35%; width:14px; height:18px; background: radial-gradient(circle, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: frd-ink 5s ease-in-out infinite; }
.scn-hymn-friendship-offering-note .candle { position:absolute; bottom:30%; right:30%; width:8px; height:30px; background: linear-gradient(180deg, #f0e0a0 0%, #c0a060 100%); border-radius: 2px; box-shadow: 0 0 20px 4px #f0c080; animation: frd-candle 4s ease-in-out infinite alternate; }
@keyframes frd-shelf { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes frd-book { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes frd-quill { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(-10deg) } }
@keyframes frd-ink { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes frd-candle { 0% { opacity:0.7; box-shadow: 0 0 10px 2px #f0c080 } 50% { opacity:1; box-shadow: 0 0 30px 8px #f0c080 } 100% { opacity:0.8; box-shadow: 0 0 15px 4px #f0c080 } }

.scn-spirits-of-noon-murmur {
  background: linear-gradient(180deg, #87ceeb 0%, #98d8c8 50%, #a0e0b0 100%), radial-gradient(ellipse at 80% 20%, #fff4c0 0%, transparent 60%);
}
.scn-spirits-of-noon-murmur .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0e0e0 0%, #d0f0e0 100%); animation: spi-sky 10s ease-in-out infinite alternate; }
.scn-spirits-of-noon-murmur .sunlight { position:absolute; top:10%; right:20%; width:80px; height:80px; background: radial-gradient(circle, #fff4c0 0%, #f0e080 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px #f0e080; animation: spi-sun 15s ease-in-out infinite; }
.scn-spirits-of-noon-murmur .tree-trunk { position:absolute; bottom:40%; left:35%; width:12%; height:40%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: inset -4px 0 8px rgba(0,0,0,.3); }
.scn-spirits-of-noon-murmur .tree-hair { position:absolute; top:5%; left:20%; width:60%; height:40%; background: radial-gradient(ellipse 120% 100% at 50% 100%, #4a8a3a 0%, #3a6a2a 70%, transparent 100%); border-radius: 50% 50% 40% 40%; filter: blur(2px); animation: spi-hair 8s ease-in-out infinite alternate; }
.scn-spirits-of-noon-murmur .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #6a9a5a 0%, #4a7a3a 100%); border-radius: 40% 60% 0 0 / 60% 50% 0 0; }
.scn-spirits-of-noon-murmur .dapple-1 { position:absolute; top:30%; left:15%; width:40px; height:40px; background: radial-gradient(circle, #ffe080 0%, transparent 80%); border-radius:50%; filter: blur(4px); animation: spi-dapple 12s ease-in-out infinite; }
.scn-spirits-of-noon-murmur .dapple-2 { position:absolute; top:45%; right:30%; width:30px; height:30px; background: radial-gradient(circle, #fff0a0 0%, transparent 80%); border-radius:50%; filter: blur(3px); animation: spi-dapple 18s ease-in-out infinite reverse; }
@keyframes spi-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes spi-sun { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.03) } 100% { transform: translateY(0) scale(1) } }
@keyframes spi-hair { 0% { transform: translateY(0) scale(1) rotate(-2deg) } 50% { transform: translateY(-5px) scale(1.02) rotate(2deg) } 100% { transform: translateY(0) scale(1) rotate(-2deg) } }
@keyframes spi-dapple { 0% { opacity:0.3; transform: translateX(0) } 50% { opacity:0.7; transform: translateX(8px) } 100% { opacity:0.3; transform: translateX(0) } }

.scn-improvisatore-hope-finds { background: linear-gradient(180deg, #2a2430 0%, #1f1b2a 50%, #151220 100%), radial-gradient(ellipse at 70% 40%, #3a2e40 0%, transparent 70%); }
.scn-improvisatore-hope-finds .bg { position:absolute; inset:0; background:#1f1b2a; opacity:.7; animation:hf-bg 8s ease-in-out infinite alternate; }
.scn-improvisatore-hope-finds .wall { position:absolute; bottom:0; left:0; right:0; height:100%; background: linear-gradient(180deg, transparent 0%, #1f1b2a 60%, #151220 100%); border-radius:20% 20% 0 0 / 10% 10% 0 0; opacity:.8; }
.scn-improvisatore-hope-finds .window-frame { position:absolute; top:20%; left:60%; width:100px; height:130px; background:linear-gradient(180deg, #3a2e40 0%, #2a2430 100%); border:4px solid #2a2430; border-radius:8px; transform:translateX(-50%); animation:hf-frame 12s ease-in-out infinite alternate; }
.scn-improvisatore-hope-finds .window-glow { position:absolute; top:22%; left:60%; width:80px; height:110px; transform:translateX(-50%); background:radial-gradient(ellipse, #d4a574 0%, transparent 70%); box-shadow:0 0 40px 20px #d4a574; opacity:.6; animation:hf-glow 4s ease-in-out infinite alternate; }
.scn-improvisatore-hope-finds .figure { position:absolute; bottom:25%; left:40%; width:20px; height:40px; background:linear-gradient(180deg, #1f1b2a 0%, #0d0a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:hf-figure 6s ease-in-out infinite; }
.scn-improvisatore-hope-finds .candle { position:absolute; bottom:20%; left:55%; width:8px; height:20px; background:#8b7355; border-radius:2px; }
.scn-improvisatore-hope-finds .flame { position:absolute; bottom:21%; left:55%; width:10px; height:14px; transform:translateX(-1px); background:radial-gradient(ellipse, #ffd700 0%, #ff8c00 70%, transparent 100%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow:0 0 12px 6px #ff8c00; animation:hf-flame 0.5s ease-in-out infinite alternate; }
@keyframes hf-bg { 0% { opacity:.7 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes hf-frame { 0% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-50%) scale(1.02) } 100% { transform:translateX(-50%) scale(1) } }
@keyframes hf-glow { 0% { opacity:.4; box-shadow:0 0 30px 15px #d4a574 } 50% { opacity:.7; box-shadow:0 0 60px 30px #d4a574 } 100% { opacity:.5; box-shadow:0 0 40px 20px #d4a574 } }
@keyframes hf-figure { 0% { transform:translateY(0) rotate(-1deg) } 50% { transform:translateY(-2px) rotate(1deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes hf-flame { 0% { transform:scaleY(1) translateY(0) } 50% { transform:scaleY(1.2) translateY(-1px) } 100% { transform:scaleY(0.8) translateY(1px) } }

.scn-improvisatore-answer-fancy { background: linear-gradient(180deg, #1a1a2e 0%, #16213e 40%, #0f3460 100%), radial-gradient(ellipse at 50% 30%, #1a1a2e 0%, transparent 70%); }
.scn-improvisatore-answer-fancy .bg { position:absolute; inset:0; background:#16213e; opacity:.6; animation:af-bg 10s ease-in-out infinite alternate; }
.scn-improvisatore-answer-fancy .desk { position:absolute; bottom:10%; left:10%; right:10%; height:20%; background:linear-gradient(180deg, #4a3b32 0%, #2a1f1a 100%); border-radius:4px; box-shadow:0 -4px 12px rgba(0,0,0,.5); }
.scn-improvisatore-answer-fancy .lamp { position:absolute; bottom:30%; left:30%; width:6px; height:30px; background:#8b7355; border-radius:2px; animation:af-lamp-glow 4s ease-in-out infinite alternate; }
.scn-improvisatore-answer-fancy .figure { position:absolute; bottom:15%; left:45%; width:24px; height:45px; background:linear-gradient(180deg, #1f1b2a 0%, #0d0a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:af-figure 8s ease-in-out infinite; }
.scn-improvisatore-answer-fancy .fancy-orb { position:absolute; top:25%; left:70%; width:30px; height:30px; background:radial-gradient(circle, #7f7fff 0%, #4a4aff 50%, transparent 100%); border-radius:50%; box-shadow:0 0 40px 20px #4a4aff; opacity:.7; animation:af-orb 12s ease-in-out infinite; }
.scn-improvisatore-answer-fancy .shadow { position:absolute; bottom:8%; left:20%; width:60%; height:4px; background:rgba(0,0,0,.4); border-radius:50%; filter:blur(2px); animation:af-shadow 6s ease-in-out infinite; }
@keyframes af-bg { 0% { opacity:.6 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes af-lamp-glow { 0% { box-shadow:0 0 8px 2px #ffd700; } 50% { box-shadow:0 0 16px 8px #ffd700; } 100% { box-shadow:0 0 10px 4px #ffd700; } }
@keyframes af-figure { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-1px) rotate(1deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes af-orb { 0% { transform:translateY(0) scale(1) rotate(0) } 25% { transform:translateY(-10px) scale(1.1) rotate(15deg) } 50% { transform:translateY(-5px) scale(0.9) rotate(-10deg) } 75% { transform:translateY(-15px) scale(1.05) rotate(20deg) } 100% { transform:translateY(0) scale(1) rotate(0) } }
@keyframes af-shadow { 0% { opacity:.3; width:60% } 50% { opacity:.6; width:70% } 100% { opacity:.4; width:55% } }

.scn-improvisatore-answer-sickly { background: linear-gradient(180deg, #2a2520 0%, #1f1a17 40%, #151210 100%), radial-gradient(ellipse at 30% 50%, #3a3530 0%, transparent 70%); }
.scn-improvisatore-answer-sickly .bg { position:absolute; inset:0; background:#1f1a17; opacity:.8; animation:as-bg 12s ease-in-out infinite alternate; }
.scn-improvisatore-answer-sickly .bed-frame { position:absolute; bottom:5%; left:15%; right:15%; height:30%; background:linear-gradient(180deg, #4a3b32 0%, #2a1f1a 100%); border-radius:10px 10px 4px 4px; box-shadow:0 4px 12px rgba(0,0,0,.7); animation:as-bed 9s ease-in-out infinite alternate; }
.scn-improvisatore-answer-sickly .bed { position:absolute; bottom:10%; left:18%; right:18%; height:20%; background:#3a2e28; border-radius:5px; }
.scn-improvisatore-answer-sickly .figure { position:absolute; bottom:12%; left:25%; width:20px; height:40px; background:linear-gradient(180deg, #2a1f1a 0%, #1a1410 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:rotate(-5deg); animation:as-figure 5s ease-in-out infinite alternate; }
.scn-improvisatore-answer-sickly .window { position:absolute; top:15%; right:10%; width:80px; height:100px; background:#1a1a2e; border:4px solid #2a1f1a; border-radius:4px; }
.scn-improvisatore-answer-sickly .table { position:absolute; bottom:35%; right:20%; width:40px; height:20px; background:#4a3b32; border-radius:2px; }
.scn-improvisatore-answer-sickly .cup { position:absolute; bottom:38%; right:25%; width:16px; height:18px; background:#6a5a4a; border-radius:0 0 4px 4px; border-top:2px solid #7a6a5a; box-shadow:0 2px 4px rgba(0,0,0,.5); animation:as-cup 4s ease-in-out infinite alternate; }
@keyframes as-bg { 0% { opacity:.8 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes as-bed { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes as-figure { 0% { transform:rotate(-5deg) scaleY(1) } 50% { transform:rotate(-3deg) scaleY(1.02) } 100% { transform:rotate(-5deg) scaleY(0.98) } }
@keyframes as-cup { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }

.scn-improvisatore-answer-content { background: linear-gradient(180deg, #2c2218 0%, #3a2e22 40%, #1c160e 100%), radial-gradient(ellipse at 40% 30%, #4a3b2e 0%, transparent 70%); }
.scn-improvisatore-answer-content .bg { position:absolute; inset:0; background:#2c2218; opacity:.7; animation:ac-bg 10s ease-in-out infinite alternate; }
.scn-improvisatore-answer-content .chair { position:absolute; bottom:15%; left:20%; width:80px; height:100px; background:linear-gradient(180deg, #4a3b32 0%, #2a1f1a 100%); border-radius:20% 20% 10% 10% / 40% 40% 10% 10%; box-shadow:0 4px 8px rgba(0,0,0,.6); }
.scn-improvisatore-answer-content .figure { position:absolute; bottom:20%; left:25%; width:24px; height:45px; background:linear-gradient(180deg, #1f1b2a 0%, #0d0a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:ac-figure 7s ease-in-out infinite; }
.scn-improvisatore-answer-content .lamp { position:absolute; bottom:40%; left:50%; width:6px; height:35px; background:#8b7355; border-radius:2px; animation:ac-lamp 4s ease-in-out infinite alternate; }
.scn-improvisatore-answer-content .bookshelf { position:absolute; right:10%; top:10%; width:50px; height:80%; background:linear-gradient(180deg, #4a3b32 0%, #2a1f1a 100%); border-radius:4px; box-shadow:inset 0 0 10px rgba(0,0,0,.5); animation:ac-shelf 15s ease-in-out infinite alternate; }
.scn-improvisatore-answer-content .glow { position:absolute; top:35%; left:40%; width:80px; height:80px; background:radial-gradient(circle, #ffd700 0%, transparent 70%); opacity:.3; animation:ac-glow 5s ease-in-out infinite alternate; }
@keyframes ac-bg { 0% { opacity:.7 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes ac-figure { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-2px) rotate(1deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes ac-lamp { 0% { box-shadow:0 0 4px 2px #ffd700; } 50% { box-shadow:0 0 12px 6px #ffd700; } 100% { box-shadow:0 0 6px 3px #ffd700; } }
@keyframes ac-shelf { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.02); } 100% { transform:scaleY(1); } }
@keyframes ac-glow { 0% { opacity:.2; transform:scale(1); } 50% { opacity:.4; transform:scale(1.1); } 100% { opacity:.3; transform:scale(1); } }

.scn-calmed-fears-bride { background: linear-gradient(180deg, #0b1c3a 0%, #1a2b4a 50%, #2c3e5e 100%), radial-gradient(ellipse at 50% 100%, #3a5a7a 0%, transparent 70%); }
.scn-calmed-fears-bride .cmf-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, transparent 0%, rgba(255,255,255,0.03) 100%); animation: cmf-skyanim 12s ease-in-out infinite alternate; }
.scn-calmed-fears-bride .cmf-moon { position:absolute; top:10%; left:55%; width:50px; height:50px; background: radial-gradient(circle at 30% 30%, #e8f0ff 0%, #c0d0e0 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(192,208,224,0.3); animation: cmf-moonanim 8s ease-in-out infinite alternate; }
.scn-calmed-fears-bride .cmf-stars { position:absolute; inset:0 0 50% 0; background-image: radial-gradient(2px 2px at 20% 30%, #fff, transparent), radial-gradient(2px 2px at 40% 10%, #fff, transparent), radial-gradient(1px 1px at 60% 40%, #fff, transparent), radial-gradient(1px 1px at 80% 20%, #fff, transparent); animation: cmf-star 4s ease-in-out infinite alternate; }
.scn-calmed-fears-bride .cmf-hills { position:absolute; bottom:20%; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.3); animation: cmf-hills 15s ease-in-out infinite alternate; }
.scn-calmed-fears-bride .cmf-figure-a { position:absolute; bottom:25%; left:47%; width:20px; height:40px; background: #1a2a3a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cmf-figure-a 3s ease-in-out infinite alternate; }
.scn-calmed-fears-bride .cmf-figure-b { position:absolute; bottom:25%; left:51%; width:20px; height:40px; background: #1a2a3a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cmf-figure-b 3.2s ease-in-out infinite alternate; }
.scn-calmed-fears-bride .cmf-glow { position:absolute; bottom:24%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, rgba(200,220,240,0.1) 0%, transparent 70%); border-radius:50%; animation: cmf-glow 5s ease-in-out infinite alternate; }
@keyframes cmf-skyanim { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.7} }
@keyframes cmf-moonanim { 0%{transform:translateY(0) scale(1)} 50%{transform:translateY(-3px) scale(1.02)} 100%{transform:translateY(0) scale(1)} }
@keyframes cmf-star { 0%{opacity:.2} 50%{opacity:.8} 100%{opacity:.3} }
@keyframes cmf-hills { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes cmf-figure-a { 0%{transform:translate(0,0) rotate(0deg)} 50%{transform:translate(2px,-1px) rotate(1deg)} 100%{transform:translate(0,0) rotate(0deg)} }
@keyframes cmf-figure-b { 0%{transform:translate(0,0) rotate(0deg)} 50%{transform:translate(-2px,-1px) rotate(-1deg)} 100%{transform:translate(0,0) rotate(0deg)} }
@keyframes cmf-glow { 0%{opacity:.3; transform:scale(.9)} 50%{opacity:.7; transform:scale(1.1)} 100%{opacity:.3; transform:scale(.9)} }

.scn-dark-ladie-introduction { background: linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 50%, #1a1a1a 100%), radial-gradient(ellipse at 50% 50%, #4a3a3a 0%, transparent 80%); }
.scn-dark-ladie-introduction .dli-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); animation: dli-bganim 10s ease-in-out infinite alternate; }
.scn-dark-ladie-introduction .dli-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); transform: perspective(200px) rotateX(60deg); transform-origin: bottom; animation: dli-flooranim 15s ease-in-out infinite alternate; }
.scn-dark-ladie-introduction .dli-table { position:absolute; bottom:25%; left:35%; width:100px; height:15px; background: #3a2a1a; border-radius: 2px; box-shadow: 0 2px 5px rgba(0,0,0,.5); animation: dli-tableanim 8s ease-in-out infinite alternate; }
.scn-dark-ladie-introduction .dli-candle { position:absolute; bottom:34%; left:45%; width:8px; height:30px; background: linear-gradient(180deg, #f0d0a0 0%, #8a6040 100%); border-radius: 2px 2px 0 0; box-shadow: 0 0 20px 5px rgba(255,200,100,0.3); animation: dli-candleanim 2s ease-in-out infinite; }
.scn-dark-ladie-introduction .dli-figure { position:absolute; bottom:25%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dli-figureanim 4s ease-in-out infinite alternate; }
.scn-dark-ladie-introduction .dli-shadow { position:absolute; bottom:24%; left:35%; width:140px; height:10px; background: rgba(0,0,0,0.5); filter: blur(4px); transform: skewX(-10deg); animation: dli-shadowanim 6s ease-in-out infinite alternate; }
@keyframes dli-bganim { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.7} }
@keyframes dli-flooranim { 0%{transform: perspective(200px) rotateX(60deg) translateY(0)} 50%{transform: perspective(200px) rotateX(61deg) translateY(-1px)} 100%{transform: perspective(200px) rotateX(60deg) translateY(0)} }
@keyframes dli-tableanim { 0%{transform:translateY(0)} 50%{transform:translateY(-1px)} 100%{transform:translateY(0)} }
@keyframes dli-candleanim { 0%{transform:scaleY(1) translateY(0); opacity:.9} 50%{transform:scaleY(1.03) translateY(-1px); opacity:1} 100%{transform:scaleY(.97) translateY(1px); opacity:.85} }
@keyframes dli-figureanim { 0%{transform:translateX(-50%) translateY(0) rotate(0)} 50%{transform:translateX(-50%) translateY(-1px) rotate(1deg)} 100%{transform:translateX(-50%) translateY(0) rotate(0)} }
@keyframes dli-shadowanim { 0%{transform:skewX(-10deg) translateX(0)} 50%{transform:skewX(-8deg) translateX(2px)} 100%{transform:skewX(-10deg) translateX(0)} }

.scn-sockburn-grey-stone { background: linear-gradient(180deg, #f5f0e0 0%, #e8e0c0 50%, #d8d0b0 100%), radial-gradient(ellipse at 50% 100%, #fff 0%, transparent 70%); }
.scn-sockburn-grey-stone .sgs-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8e0c0 0%, #d0c8a8 100%); animation: sgs-wallanim 15s ease-in-out infinite alternate; }
.scn-sockburn-grey-stone .sgs-window { position:absolute; top:10%; left:20%; width:80px; height:100px; background: linear-gradient(180deg, #fff8e0 0%, #f0e8c0 100%); border: 4px solid #a09070; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,0.5), 0 0 40px 10px rgba(255,255,200,0.3); animation: sgs-windowanim 12s ease-in-out infinite alternate; }
.scn-sockburn-grey-stone .sgs-pillar { position:absolute; bottom:30%; left:15%; width:30px; height:100px; background: linear-gradient(180deg, #c0b898 0%, #a09878 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.1); }
.scn-sockburn-grey-stone .sgs-statue { position:absolute; bottom:25%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #c0b898 0%, #a09878 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: sgs-statueanim 20s ease-in-out infinite alternate; }
.scn-sockburn-grey-stone .sgs-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b8a888 0%, #a89878 100%); transform: perspective(200px) rotateX(60deg); transform-origin: bottom; }
.scn-sockburn-grey-stone .sgs-light { position:absolute; top:0; left:20%; width:80px; height:100%; background: linear-gradient(180deg, rgba(255,255,200,0.1) 0%, transparent 80%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: sgs-lightanim 8s ease-in-out infinite alternate; }
@keyframes sgs-wallanim { 0%{background: linear-gradient(180deg, #e8e0c0 0%, #d0c8a8 100%)} 50%{background: linear-gradient(180deg, #f0e8d0 0%, #d8d0b0 100%)} 100%{background: linear-gradient(180deg, #e8e0c0 0%, #d0c8a8 100%)} }
@keyframes sgs-windowanim { 0%{box-shadow: inset 0 0 20px rgba(255,255,200,0.5), 0 0 40px 10px rgba(255,255,200,0.3); opacity:.9} 50%{box-shadow: inset 0 0 30px rgba(255,255,200,0.7), 0 0 60px 15px rgba(255,255,200,0.5); opacity:1} 100%{box-shadow: inset 0 0 20px rgba(255,255,200,0.5), 0 0 40px 10px rgba(255,255,200,0.3); opacity:.9} }
@keyframes sgs-statueanim { 0%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-1px) rotate(0.5deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes sgs-lightanim { 0%{transform:translateX(-10px) scaleX(1); opacity:.6} 50%{transform:translateX(10px) scaleX(1.1); opacity:.8} 100%{transform:translateX(-10px) scaleX(1); opacity:.6} }

.scn-conyers-knight-statue { background: linear-gradient(180deg, #f0ecd0 0%, #e0d8b0 50%, #c8c0a0 100%), radial-gradient(ellipse at 50% 100%, #fff 0%, transparent 70%); }
.scn-conyers-knight-statue .cks-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e0d8b0 0%, #d0c8a0 100%); animation: cks-bganim 15s ease-in-out infinite alternate; }
.scn-conyers-knight-statue .cks-tomb { position:absolute; bottom:25%; left:30%; width:120px; height:20px; background: linear-gradient(180deg, #b8a888 0%, #a89878 100%); border-radius: 2px; box-shadow: 0 3px 6px rgba(0,0,0,0.2); animation: cks-tombanim 10s ease-in-out infinite alternate; }
.scn-conyers-knight-statue .cks-knight { position:absolute; bottom:30%; left:33%; width:100px; height:30px; background: linear-gradient(180deg, #c0b898 0%, #a09878 100%); border-radius: 10% 10% 5% 5% / 40% 40% 20% 20%; box-shadow: 0 2px 5px rgba(0,0,0,0.3); animation: cks-knightanim 20s ease-in-out infinite alternate; }
.scn-conyers-knight-statue .cks-arch { position:absolute; top:5%; left:15%; width:70%; height:60%; background: transparent; border: 4px solid #a09070; border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-sizing: border-box; }
.scn-conyers-knight-statue .cks-stain { position:absolute; top:10%; left:20%; width:80px; height:120px; background: linear-gradient(135deg, #8a6040 0%, #6a4a3a 30%, #5a3a2a 60%, #4a2a1a 100%); border-radius: 4px; opacity: 0.7; animation: cks-stainanim 12s ease-in-out infinite alternate; }
.scn-conyers-knight-statue .cks-light-beam { position:absolute; top:0; left:25%; width:60px; height:100%; background: linear-gradient(180deg, rgba(255,255,200,0.15) 0%, transparent 80%); clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); animation: cks-lightanim 9s ease-in-out infinite alternate; }
@keyframes cks-bganim { 0%{background: linear-gradient(180deg, #e0d8b0 0%, #d0c8a0 100%)} 50%{background: linear-gradient(180deg, #e8e0c0 0%, #d8d0a8 100%)} 100%{background: linear-gradient(180deg, #e0d8b0 0%, #d0c8a0 100%)} }
@keyframes cks-tombanim { 0%{transform:translateY(0)} 50%{transform:translateY(-1px)} 100%{transform:translateY(0)} }
@keyframes cks-knightanim { 0%{transform:rotate(0)} 50%{transform:rotate(0.5deg)} 100%{transform:rotate(0)} }
@keyframes cks-stainanim { 0%{opacity:.6; filter:brightness(1)} 50%{opacity:.8; filter:brightness(1.1)} 100%{opacity:.6; filter:brightness(1)} }
@keyframes cks-lightanim { 0%{transform:translateX(-5px); opacity:.5} 50%{transform:translateX(5px); opacity:.7} 100%{transform:translateX(-5px); opacity:.5} }

/* bird-bat-allegory-end */

.scn-bird-bat-allegory-end {
  background: linear-gradient(180deg, #2b1a0e 0%, #1c0f08 50%, #0a0502 100%), radial-gradient(ellipse at 30% 60%, #3a2518 0%, transparent 70%);
}
.scn-bird-bat-allegory-end .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); }
.scn-bird-bat-allegory-end .desk { position:absolute; bottom:25%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, #6a4a30 0%, #3a2a1a 100%); border-radius: 8% 8% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-bird-bat-allegory-end .figure { position:absolute; bottom:30%; left:30%; width:20%; height:40%; background: linear-gradient(180deg, #1a0e08 0%, #0a0502 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bba-fig 4s ease-in-out infinite; }
.scn-bird-bat-allegory-end .lamp { position:absolute; bottom:40%; left:15%; width:8%; height:12%; background: linear-gradient(180deg, #b08040 0%, #604020 100%); border-radius: 40% 40% 10% 10%; animation: bba-lamp 5s ease-in-out infinite; }
.scn-bird-bat-allegory-end .glow { position:absolute; bottom:40%; left:15%; width:12%; height:15%; transform: translate(-2%, -10%); background: radial-gradient(circle, rgba(255,180,80,0.6) 0%, transparent 70%); animation: bba-glow 3s ease-in-out infinite alternate; }
.scn-bird-bat-allegory-end .bat { position:absolute; top:15%; right:10%; width:12%; height:8%; background: #1a1008; border-radius: 50% / 100% 100% 0 0; transform: rotate(10deg); animation: bba-bat 5s ease-in-out infinite; }
.scn-bird-bat-allegory-end .inkwell { position:absolute; bottom:28%; left:28%; width:4%; height:6%; background: #2a1a10; border-radius: 50% 50% 30% 30%; animation: bba-ink 6s ease-in-out infinite; }
@keyframes bba-fig { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-5px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes bba-glow { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.9); } }
@keyframes bba-bat { 0% { transform: translateX(0) rotate(10deg); } 25% { transform: translateX(-20px) rotate(15deg); } 50% { transform: translateX(10px) rotate(5deg); } 75% { transform: translateX(-15px) rotate(-5deg); } 100% { transform: translateX(0) rotate(10deg); } }
@keyframes bba-lamp { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes bba-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

/* two-founts-stanzas */

.scn-two-founts-stanzas {
  background: linear-gradient(180deg, #f5e6d3 0%, #e8c8a0 30%, #b08060 60%, #604030 100%), radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 60%);
}
.scn-two-founts-stanzas .sky-dawn { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffdbb8 0%, #e8b088 50%, #c08060 100%); }
.scn-two-founts-stanzas .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #4a7a5a 0%, #2a4a3a 100%); }
.scn-two-founts-stanzas .fountain-left { position:absolute; bottom:40%; left:20%; width:15%; height:30%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 20% 20% 10% 10%; animation: tfs-fountain 10s ease-in-out infinite; }
.scn-two-founts-stanzas .fountain-right { position:absolute; bottom:40%; right:20%; width:15%; height:30%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 20% 20% 10% 10%; }
.scn-two-founts-stanzas .water-spray { position:absolute; bottom:55%; left:25%; width:10%; height:20%; background: radial-gradient(circle, rgba(200,220,255,0.7) 0%, transparent 70%); animation: tfs-spray 6s ease-in-out infinite; }
.scn-two-founts-stanzas .dwarf { position:absolute; bottom:35%; left:45%; width:10%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: tfs-dwarf 8s ease-in-out infinite; }
.scn-two-founts-stanzas .flower-sil { position:absolute; bottom:30%; left:10%; width:5%; height:15%; background: #2a4a3a; border-radius: 50% 50% 0 0; animation: tfs-flower 7s ease-in-out infinite; }
.scn-two-founts-stanzas .flower-sil2 { position:absolute; bottom:30%; right:10%; width:5%; height:15%; background: #2a4a3a; border-radius: 50% 50% 0 0; animation: tfs-flower 7s ease-in-out infinite 3.5s; }
@keyframes tfs-spray { 0% { transform: scaleY(1); opacity: 0.6; } 50% { transform: scaleY(1.3); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.6; } }
@keyframes tfs-dwarf { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-4px) rotate(1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes tfs-flower { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(1); } }
@keyframes tfs-fountain { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* two-founts-rainbow */

.scn-two-founts-rainbow {
  background: linear-gradient(180deg, #b8d4e0 0%, #d4e8f0 20%, #f0e8d0 40%, #f8d8b0 60%, #e0b080 80%, #806050 100%), radial-gradient(ellipse at 80% 20%, #ffe8c0 0%, transparent 50%);
}
.scn-two-founts-rainbow .sky-dawn { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c8dce8 0%, #e8c8a0 60%, #d8a880 100%); }
.scn-two-founts-rainbow .sun { position:absolute; top:15%; left:70%; width:20%; height:20%; background: radial-gradient(circle, #ffe8a0 0%, #f0c060 50%, transparent 70%); border-radius: 50%; animation: tfr-sun 20s ease-in-out infinite alternate; }
.scn-two-founts-rainbow .rainbow { position:absolute; top:10%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #c8553d 0%, #c88040 20%, #d4c040 40%, #60a060 60%, #6080a0 80%, #8060a0 100%); opacity: 0.5; border-radius: 50% / 100% 100% 0 0; filter: blur(5px); animation: tfr-rainbow 12s ease-in-out infinite; }
.scn-two-founts-rainbow .cloud-left { position:absolute; top:5%; left:5%; width:20%; height:8%; background: rgba(255,255,255,0.8); border-radius: 50%; filter: blur(8px); animation: tfr-cloud 30s linear infinite; }
.scn-two-founts-rainbow .cloud-right { position:absolute; top:8%; right:5%; width:18%; height:7%; background: rgba(255,255,255,0.7); border-radius: 50%; filter: blur(6px); animation: tfr-cloud 35s linear infinite reverse; }
.scn-two-founts-rainbow .hills { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a8a6a 0%, #4a6a4a 100%); border-radius: 60% 40% 0 0 / 100% 100% 0 0; animation: tfr-hills 18s ease-in-out infinite alternate; }
.scn-two-founts-rainbow .flowers { position:absolute; bottom:15%; left:10%; right:10%; height:20%; background: radial-gradient(circle at 20% 80%, #c8553d 0%, transparent 20%), radial-gradient(circle at 40% 60%, #d08050 0%, transparent 20%), radial-gradient(circle at 60% 70%, #b07040 0%, transparent 20%); background-size: 30% 30%; animation: tfr-flowers 10s ease-in-out infinite; }
@keyframes tfr-sun { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.9; transform: scale(0.95); } }
@keyframes tfr-rainbow { 0% { opacity: 0.4; transform: scaleY(1); } 50% { opacity: 0.6; transform: scaleY(1.1); } 100% { opacity: 0.5; transform: scaleY(1); } }
@keyframes tfr-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(100vw); } }
@keyframes tfr-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes tfr-flowers { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }

/* two-founts-prayer */

.scn-two-founts-prayer {
  background: linear-gradient(180deg, #2c3e50 0%, #4a6070 30%, #6a8090 60%, #8a9aa0 100%), radial-gradient(ellipse at 50% 0%, #b0c8d0 0%, transparent 60%);
}
.scn-two-founts-prayer .sky-dawn { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a6070 0%, #6a8090 50%, #8a9aa0 100%); }
.scn-two-founts-prayer .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); }
.scn-two-founts-prayer .fountain { position:absolute; bottom:40%; left:40%; width:20%; height:40%; background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%); border-radius: 20% 20% 10% 10%; animation: tfp-fountain 8s ease-in-out infinite; }
.scn-two-founts-prayer .dwarf { position:absolute; bottom:30%; left:42%; width:12%; height:25%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: tfp-dwarf 6s ease-in-out infinite; }
.scn-two-founts-prayer .water-splash { position:absolute; bottom:55%; left:42%; width:16%; height:20%; background: radial-gradient(circle, rgba(200,210,220,0.5) 0%, transparent 70%); animation: tfp-splash 4s ease-in-out infinite; }
.scn-two-founts-prayer .tear-drop { position:absolute; bottom:45%; left:35%; width:3%; height:8%; background: rgba(180,200,220,0.7); border-radius: 50% 50% 30% 30%; animation: tfp-tear 3s ease-in-out infinite; }
.scn-two-founts-prayer .tear-drop2 { position:absolute; bottom:45%; right:35%; width:3%; height:8%; background: rgba(180,200,220,0.7); border-radius: 50% 50% 30% 30%; animation: tfp-tear 3s ease-in-out infinite 1.5s; }
@keyframes tfp-dwarf { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(5deg); } 75% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes tfp-splash { 0% { opacity: 0.4; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.2); } 100% { opacity: 0.4; transform: scaleY(1); } }
@keyframes tfp-tear { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(10px) scaleY(0.8); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes tfp-fountain { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }

/* Scene: love-hope-patience (sunlit warm wide landscape) */

.scn-love-hope-patience {
  background:
    linear-gradient(180deg, #87CEEB 0%, #f0d89d 40%, #f4a460 70%, #deb887 100%),
    radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 60%);
}
.scn-love-hope-patience .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a90e2 0%, #87CEEB 40%, transparent 100%); animation: lh1-sky 12s ease-in-out infinite alternate; }
.scn-love-hope-patience .sun { position:absolute; top:12%; left:55%; width:80px; height:80px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(255,215,0,.5), 0 0 120px 60px rgba(255,215,0,.2); animation: lh1-sun 6s ease-in-out infinite alternate; }
.scn-love-hope-patience .hills { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6b8e23 0%, #556b2f 40%, #3b5323 100%); border-radius: 70% 40% 0 0 / 100% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: lh1-hills 20s ease-in-out infinite alternate; }
.scn-love-hope-patience .path { position:absolute; bottom:15%; left:45%; width:250px; height:50px; background: linear-gradient(180deg, #c2a77d 0%, #a68a61 100%); border-radius: 60% 20% 40% 10%; transform: skewX(-20deg); box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: lh1-path 15s ease-in-out infinite alternate; }
.scn-love-hope-patience .teacher { position:absolute; bottom:22%; left:38%; width:24px; height:60px; background: linear-gradient(180deg, #2c1a0e 0%, #0d0804 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -2px 0 4px rgba(0,0,0,.4); animation: lh1-figure 4s ease-in-out infinite; }
.scn-love-hope-patience .child { position:absolute; bottom:22%; left:44%; width:16px; height:40px; background: linear-gradient(180deg, #3d2314 0%, #1a0e07 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -1px 0 3px rgba(0,0,0,.3); animation: lh1-figure 4.5s ease-in-out infinite 0.5s; }
.scn-love-hope-patience .tree { position:absolute; bottom:25%; right:15%; width:30px; height:80px; background: linear-gradient(180deg, #3c2415 0%, #1e120a 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset -4px 0 6px rgba(0,0,0,.3); animation: lh1-tree 8s ease-in-out infinite alternate; }
.scn-love-hope-patience .tree::before { content:''; position:absolute; top:-30px; left:-20px; width:70px; height:50px; background: radial-gradient(ellipse at 50% 50%, #4caf50 0%, #2e7d32 60%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(76,175,80,.3); }
.scn-love-hope-patience .butterfly { position:absolute; bottom:40%; left:30%; width:12px; height:8px; background: #ff8c00; border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: -8px 0 0 -2px #ffa500, 0 0 6px rgba(255,140,0,.6); animation: lh1-butterfly 12s ease-in-out infinite; }
@keyframes lh1-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes lh1-sun { 0% { transform: scale(.95) translateY(0); box-shadow: 0 0 60px 20px rgba(255,215,0,.4) } 50% { transform: scale(1.05) translateY(-5px); box-shadow: 0 0 80px 40px rgba(255,215,0,.6) } 100% { transform: scale(.98) translateY(2px); box-shadow: 0 0 70px 30px rgba(255,215,0,.5) } }
@keyframes lh1-hills { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-4px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(.98) } }
@keyframes lh1-path { 0% { opacity:.8; transform: skewX(-20deg) translateX(0) } 50% { opacity:1; transform: skewX(-18deg) translateX(5px) } 100% { opacity:.9; transform: skewX(-22deg) translateX(-3px) } }
@keyframes lh1-figure { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes lh1-tree { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes lh1-butterfly { 0% { transform: translate(0,0) rotate(0deg) scaleX(1) } 25% { transform: translate(30px,-20px) rotate(15deg) scaleX(.8) } 50% { transform: translate(60px,-10px) rotate(-10deg) scaleX(1) } 75% { transform: translate(90px,-30px) rotate(5deg) scaleX(.9) } 100% { transform: translate(120px,0) rotate(0deg) scaleX(1) } }

/* Scene: hope-and-love (sunlit warm intimate interior) */

.scn-hope-and-love {
  background:
    linear-gradient(180deg, #4a2e1a 0%, #2c1a0e 30%, #1a0e07 100%),
    radial-gradient(ellipse at 50% 30%, #8b5a2b 0%, transparent 70%);
}
.scn-hope-and-love .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); }
.scn-hope-and-love .window { position:absolute; top:5%; left:50%; width:120px; height:160px; transform:translateX(-50%); background: linear-gradient(180deg, #fff8dc 0%, #ffe4b5 40%, #ffd700 100%); border-radius: 60% 60% 10% 10% / 80% 80% 10% 10%; box-shadow: inset 0 0 30px #fff, 0 0 50px rgba(255,215,0,.4); animation: hl2-window 8s ease-in-out infinite alternate; }
.scn-hope-and-love .beam { position:absolute; top:15%; left:50%; width:200px; height:300px; transform:translateX(-50%) skewX(-15deg); background: linear-gradient(180deg, rgba(255,255,224,.5) 0%, rgba(255,215,0,.1) 100%); filter: blur(8px); animation: hl2-beam 12s ease-in-out infinite alternate; }
.scn-hope-and-love .figure-love { position:absolute; bottom:20%; left:35%; width:30px; height:70px; background: linear-gradient(180deg, #1a0e07 0%, #0d0804 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -2px 0 6px rgba(0,0,0,.5); animation: hl2-love 6s ease-in-out infinite; }
.scn-hope-and-love .figure-hope { position:absolute; bottom:15%; left:42%; width:40px; height:50px; background: linear-gradient(180deg, #2c1a0e 0%, #0d0804 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform: rotate(15deg); transform-origin: bottom right; box-shadow: 2px 0 6px rgba(0,0,0,.4); animation: hl2-hope 8s ease-in-out infinite; }
.scn-hope-and-love .dove { position:absolute; top:15%; left:55%; width:40px; height:30px; background: radial-gradient(ellipse at 60% 50%, #fff 0%, #e0e0e0 100%); border-radius: 50% 50% 50% 50% / 80% 80% 20% 20%; transform: rotate(-10deg); box-shadow: 0 0 20px rgba(255,255,255,.6); animation: hl2-dove 4s ease-in-out infinite alternate; }
.scn-hope-and-love .dove::after { content:''; position:absolute; top:5px; left:-10px; width:15px; height:15px; background: #fff; border-radius:50%; box-shadow: -2px -2px 4px rgba(0,0,0,.1); }
.scn-hope-and-love .glow { position:absolute; top:10%; left:40%; width:150px; height:200px; background: radial-gradient(ellipse at 50% 50%, rgba(255,215,0,.3) 0%, rgba(255,215,0,.1) 40%, transparent 70%); filter: blur(20px); animation: hl2-glow 5s ease-in-out infinite alternate; }
.scn-hope-and-love .petal { position:absolute; bottom:30%; left:20%; width:8px; height:8px; background: #ffb6c1; border-radius: 80% 0 50% 0; opacity:.6; filter: blur(1px); animation: hl2-petal 15s linear infinite; }
.scn-hope-and-love .petal:nth-child(8) { left:70%; width:6px; height:6px; background: #ffc0cb; animation-duration:18s; animation-delay:5s; }
@keyframes hl2-window { 0% { opacity:.9; transform: translateX(-50%) scaleY(1) } 50% { opacity:1; transform: translateX(-50%) scaleY(1.02) } 100% { opacity:.95; transform: translateX(-50%) scaleY(.98) } }
@keyframes hl2-beam { 0% { opacity:.3; transform: translateX(-50%) skewX(-15deg) } 50% { opacity:.6; transform: translateX(-45%) skewX(-10deg) } 100% { opacity:.4; transform: translateX(-55%) skewX(-20deg) } }
@keyframes hl2-love { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-3px) rotate(1deg) } 60% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes hl2-hope { 0% { transform: rotate(15deg) translateX(0) } 50% { transform: rotate(12deg) translateX(-2px) } 100% { transform: rotate(18deg) translateX(1px) } }
@keyframes hl2-dove { 0% { transform: translate(0,0) rotate(-10deg) scaleX(1) } 50% { transform: translate(5px,-8px) rotate(5deg) scaleX(.95) } 100% { transform: translate(-3px,-2px) rotate(-15deg) scaleX(1) } }
@keyframes hl2-glow { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.6; transform: scale(.95) } }
@keyframes hl2-petal { 0% { transform: translate(0,0) rotate(0deg); opacity:0 } 10% { opacity:.6 } 90% { opacity:.4 } 100% { transform: translate(-30px,80px) rotate(360deg); opacity:0 } }

/* Scene: editorial-love-hope (calm dim-interior scholar's study) */

.scn-editorial-love-hope {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #16213e 30%, #0f172a 100%),
    radial-gradient(ellipse at 80% 90%, #2a2a4a 0%, transparent 60%);
}
.scn-editorial-love-hope .wall { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.2) 0%, transparent 50%, rgba(0,0,0,.4) 100%); }
.scn-editorial-love-hope .night-window { position:absolute; top:10%; right:10%; width:100px; height:140px; background: linear-gradient(180deg, #0f172a 0%, #1e3a5f 60%, #2a4a6a 100%); border-radius: 10% 10% 4% 4%; border: 4px solid #2c2c3a; box-shadow: inset 0 0 20px rgba(255,255,255,.1), 0 0 0 2px #1a1a2e; animation: el3-night 30s ease-in-out infinite alternate; }
.scn-editorial-love-hope .night-window::after { content:''; position:absolute; top:5%; left:50%; width:20px; height:20px; background: radial-gradient(circle, #e0e0e0 0%, #a0a0b0 100%); border-radius:50%; transform:translateX(-50%); box-shadow: 0 0 20px 5px rgba(200,200,220,.3); animation: el3-moon 15s ease-in-out infinite alternate; }
.scn-editorial-love-hope .bookshelf { position:absolute; left:5%; top:10%; width:80px; height:75%; background: linear-gradient(180deg, #3c2415 0%, #2c1a0e 100%); border-radius: 4% 4% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,.5); }
.scn-editorial-love-hope .bookshelf::before { content:''; position:absolute; top:20%; left:10%; width:80%; height:20%; background: repeating-linear-gradient(0deg, #4a2e1a 0px, #4a2e1a 8px, #6b4423 8px, #6b4423 16px); box-shadow: inset 0 4px 6px rgba(0,0,0,.4); }
.scn-editorial-love-hope .desk { position:absolute; bottom:8%; left:25%; width:60%; height:20%; background: linear-gradient(180deg, #4a2e1a 0%, #2c1a0e 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.5); }
.scn-editorial-love-hope .candle { position:absolute; bottom:25%; left:35%; width:14px; height:45px; background: linear-gradient(180deg, #f5deb3 0%, #deb887 40%, #8b7355 100%); border-radius: 6% 6% 10% 10%; box-shadow: inset -2px 0 4px rgba(0,0,0,.3); animation: el3-candle 8s ease-in-out infinite; }
.scn-editorial-love-hope .manuscript { position:absolute; bottom:15%; left:40%; width:120px; height:60px; background: linear-gradient(180deg, #f5f5dc 0%, #e8e0c8 100%); border-radius: 2% 2% 4% 4%; transform: rotate(-5deg); box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: el3-manuscript 12s ease-in-out infinite alternate; }
.scn-editorial-love-hope .glow { position:absolute; bottom:20%; left:30%; width:200px; height:200px; background: radial-gradient(ellipse at 50% 0%, rgba(255,165,0,.3) 0%, rgba(255,140,0,.1) 40%, transparent 70%); filter: blur(15px); animation: el3-glow 6s ease-in-out infinite alternate; }
.scn-editorial-love-hope .dust { position:absolute; top:40%; left:20%; width:4px; height:4px; background: rgba(255,255,255,.3); border-radius:50%; filter: blur(2px); animation: el3-dust 25s linear infinite; }
.scn-editorial-love-hope .dust:nth-child(8) { left:70%; top:60%; width:6px; height:6px; animation-duration:30s; animation-delay:10s; background: rgba(255,200,100,.3); }
@keyframes el3-night { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes el3-moon { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-40%) translateY(5px) } 100% { transform: translateX(-60%) translateY(-5px) } }
@keyframes el3-candle { 0% { transform: scaleY(1) scaleX(1) } 25% { transform: scaleY(1.02) scaleX(.98) } 50% { transform: scaleY(.98) scaleX(1.02) } 75% { transform: scaleY(1.01) scaleX(.99) } 100% { transform: scaleY(1) scaleX(1) } }
@keyframes el3-manuscript { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-7deg) translateY(1px) } }
@keyframes el3-glow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.05) } 100% { opacity:.5; transform: scale(.95) } }
@keyframes el3-dust { 0% { transform: translate(0,0); opacity:0 } 10% { opacity:.5 } 90% { opacity:.3 } 100% { transform: translate(50px,-80px); opacity:0 } }

/* Scene: coleridge-letter (calm dim-interior abstract symbolic) */

.scn-coleridge-letter {
  background:
    linear-gradient(135deg, #0a0a1a 0%, #1a1a2e 40%, #0f172a 100%),
    radial-gradient(ellipse at 50% 50%, #2a2a4a 0%, #0a0a1a 80%);
}
.scn-coleridge-letter .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, rgba(100,100,180,.1) 0%, transparent 70%); animation: cl4-bg 20s ease-in-out infinite alternate; }
.scn-coleridge-letter .book { position:absolute; bottom:25%; left:50%; width:100px; height:70px; transform:translateX(-50%); background: linear-gradient(135deg, #d4af37 0%, #f5deb3 40%, #c0a060 100%); border-radius: 4% 4% 8% 8% / 6% 6% 12% 12%; box-shadow: 0 10px 30px rgba(0,0,0,.6), inset 0 0 20px rgba(255,255,255,.2); animation: cl4-book 12s ease-in-out infinite alternate; }
.scn-coleridge-letter .book::before { content:''; position:absolute; top:50%; left:50%; width:80%; height:4px; background: #8b7355; transform:translate(-50%,-50%); box-shadow: 0 -10px 0 #8b7355, 0 10px 0 #8b7355; }
.scn-coleridge-letter .glow-ring { position:absolute; top:50%; left:50%; width:200px; height:200px; transform:translate(-50%,-50%); background: radial-gradient(circle, rgba(212,175,55,.1) 0%, transparent 70%); border: 1px solid rgba(212,175,55,.2); border-radius:50%; animation: cl4-ring 30s linear infinite; }
.scn-coleridge-letter .glow-ring::before { content:''; position:absolute; inset:10%; border: 1px solid rgba(212,175,55,.1); border-radius:50%; animation: cl4-ring 20s linear infinite reverse; }
.scn-coleridge-letter .circle-a { position:absolute; top:40%; left:30%; width:150px; height:150px; background: radial-gradient(circle, rgba(100,200,255,.05) 0%, transparent 70%); border: 2px solid rgba(100,200,255,.1); border-radius:50%; animation: cl4-circle 15s ease-in-out infinite alternate; }
.scn-coleridge-letter .circle-b { position:absolute; bottom:30%; left:60%; width:120px; height:120px; background: radial-gradient(circle, rgba(255,200,100,.05) 0%, transparent 70%); border: 2px solid rgba(255,200,100,.1); border-radius:50%; animation: cl4-circle 18s ease-in-out infinite alternate-reverse; }
.scn-coleridge-letter .symbol { position:absolute; top:35%; left:50%; width:30px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, #d4af37 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(212,175,55,.3); animation: cl4-symbol 8s ease-in-out infinite alternate; }
.scn-coleridge-letter .mote { position:absolute; top:20%; left:20%; width:4px; height:4px; background: #d4af37; border-radius:50%; box-shadow: 0 0 6px #d4af37; animation: cl4-mote 25s linear infinite; }
.scn-coleridge-letter .mote:nth-child(7) { top:70%; left:80%; width:6px; height:6px; background: #64c8ff; box-shadow: 0 0 8px #64c8ff; animation-duration:30s; animation-delay:8s; }
@keyframes cl4-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cl4-book { 0% { transform: translateX(-50%) scale(1) rotate(-1deg) } 50% { transform: translateX(-50%) scale(1.02) rotate(1deg) } 100% { transform: translateX(-50%) scale(.98) rotate(0deg) } }
@keyframes cl4-ring { 0% { transform: translate(-50%,-50%) rotate(0deg) scale(1) } 50% { transform: translate(-50%,-50%) rotate(180deg) scale(1.05) } 100% { transform: translate(-50%,-50%) rotate(360deg) scale(1) } }
@keyframes cl4-circle { 0% { transform: scale(1) translateX(0) } 50% { transform: scale(1.1) translateX(10px) } 100% { transform: scale(.95) translateX(-5px) } }
@keyframes cl4-symbol { 0% { transform: translateX(-50%) scale(1) rotate(0deg); opacity:.6 } 50% { transform: translateX(-50%) scale(1.2) rotate(180deg); opacity:1 } 100% { transform: translateX(-50%) scale(.9) rotate(360deg); opacity:.7 } }
@keyframes cl4-mote { 0% { transform: translate(0,0) scale(1); opacity:0 } 10% { opacity:.8 } 50% { transform: translate(40px,-60px) scale(1.5); opacity:.5 } 90% { opacity:.6 } 100% { transform: translate(80px,-120px) scale(.5); opacity:0 } }

.scn-ode-to-tranquillity-intro { background: linear-gradient(135deg, #1c1a23 0%, #2a2533 100%), radial-gradient(circle at 30% 20%, #3a3138 0%, transparent 60%); }
.scn-ode-to-tranquillity-intro .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2533 0%, #1c1a23 100%); opacity:0.8; }
.scn-ode-to-tranquillity-intro .window-frame { position:absolute; inset:5% 10% 30% 10%; border:12px solid #2a2018; background:radial-gradient(ellipse at 50% 80%, #44505c 0%, #1c1a23 100%); border-radius:4px; box-shadow:inset 0 0 40px rgba(0,0,0,0.6); }
.scn-ode-to-tranquillity-intro .sea { position:absolute; bottom:30%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #2a3a48 0%, #1a2a38 100%); border-radius:0 0 2px 2px; animation: oti-sea 8s ease-in-out infinite alternate; }
.scn-ode-to-tranquillity-intro .shore-boat { position:absolute; bottom:32%; left:20%; width:20%; height:8%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-5deg); animation: oti-boat 12s ease-in-out infinite; }
.scn-ode-to-tranquillity-intro .desk { position:absolute; bottom:0; left:5%; right:5%; height:25%; background: linear-gradient(180deg, #3a2a20 0%, #1c120c 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.5); }
.scn-ode-to-tranquillity-intro .candle-glow { position:absolute; bottom:15%; left:40%; width:6%; height:12%; background: radial-gradient(circle, #ffd080 0%, #e8a040 40%, transparent 80%); box-shadow: 0 0 30px 10px #e8a040, 0 0 60px 20px rgba(232,160,64,0.4); animation: oti-candle 3s ease-in-out infinite alternate; }
.scn-ode-to-tranquillity-intro .curtain-left { position:absolute; top:0; left:0; width:8%; height:100%; background: linear-gradient(180deg, #3a2030 0%, #1a1018 100%); border-radius: 0 30% 50% 0 / 0 20% 40% 0; animation: oti-curtain 15s ease-in-out infinite alternate; }
@keyframes oti-sea { 0% { transform: translateY(0); opacity:0.85; } 50% { transform: translateY(2px); opacity:1; } 100% { transform: translateY(0); opacity:0.85; } }
@keyframes oti-boat { 0% { transform: rotate(-5deg) translate(0,0); } 50% { transform: rotate(3deg) translate(2px,-2px); } 100% { transform: rotate(-5deg) translate(0,0); } }
@keyframes oti-candle { 0% { transform: scale(1); box-shadow: 0 0 20px 5px #e8a040, 0 0 40px 10px rgba(232,160,64,0.3); } 50% { transform: scale(1.05); box-shadow: 0 0 35px 12px #ffd080, 0 0 70px 24px rgba(255,208,128,0.5); } 100% { transform: scale(0.95); box-shadow: 0 0 25px 6px #d49030, 0 0 50px 14px rgba(212,144,48,0.35); } }
@keyframes oti-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }

.scn-ode-to-tranquillity-body { background: linear-gradient(180deg, #6b5b6e 0%, #c29b7a 40%, #e8c49a 70%, #d9ad7a 100%), radial-gradient(ellipse at 50% 100%, #d9ad7a 0%, transparent 60%); }
.scn-ode-to-tranquillity-body .sky-dusk { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a3a5a 0%, #c29b7a 100%); opacity:0.6; animation: otb-dusk 20s ease-in-out infinite alternate; }
.scn-ode-to-tranquillity-body .moon { position:absolute; top:8%; left:60%; width:8%; height:16%; background: radial-gradient(circle, #ffe8c0 0%, #ffcc88 70%, transparent 100%); border-radius:50%; filter:blur(2px); box-shadow: 0 0 40px 10px #ffcc88; animation: otb-moon 15s ease-in-out infinite alternate; }
.scn-ode-to-tranquillity-body .cloud-fast { position:absolute; top:12%; left:-10%; width:30%; height:8%; background: linear-gradient(180deg, rgba(255,220,180,0.6) 0%, rgba(200,160,120,0.1) 100%); border-radius:50%; filter:blur(8px); animation: otb-cloud-fast 25s linear infinite; }
.scn-ode-to-tranquillity-body .cloud-slow { position:absolute; top:22%; left:20%; width:40%; height:6%; background: linear-gradient(180deg, rgba(255,220,180,0.4) 0%, rgba(200,160,120,0.05) 100%); border-radius:50%; filter:blur(10px); animation: otb-cloud-slow 45s linear infinite reverse; }
.scn-ode-to-tranquillity-body .hill-far { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.3); animation: otb-hill 18s ease-in-out infinite alternate; }
.scn-ode-to-tranquillity-body .hill-near { position:absolute; bottom:15%; left:-5%; right:-5%; height:25%; background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.5); animation: otb-hill-near 22s ease-in-out infinite alternate; }
.scn-ode-to-tranquillity-body .path { position:absolute; bottom:10%; left:45%; width:10%; height:15%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 20% 20% 40% 40% / 10% 10% 60% 60%; transform: skewX(-10deg); animation: otb-path 14s ease-in-out infinite alternate; }
@keyframes otb-dusk { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes otb-moon { 0% { transform: scale(1) translate(0,0); box-shadow: 0 0 30px 5px #ffcc88; } 50% { transform: scale(1.05) translate(2px,-2px); box-shadow: 0 0 50px 15px #ffe8c0; } 100% { transform: scale(0.95) translate(-1px,1px); box-shadow: 0 0 35px 8px #ffcc88; } }
@keyframes otb-cloud-fast { 0% { transform: translateX(-20%) scaleX(1); } 50% { transform: translateX(40%) scaleX(1.1); } 100% { transform: translateX(100vw) scaleX(1); } }
@keyframes otb-cloud-slow { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-30%) scaleY(0.8); } 100% { transform: translateX(-60%) scaleY(1); } }
@keyframes otb-hill { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes otb-hill-near { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes otb-path { 0% { transform: skewX(-10deg) translateY(0); } 50% { transform: skewX(-6deg) translateY(-2px); } 100% { transform: skewX(-10deg) translateY(0); } }

.scn-ode-to-tranquillity-variants { background: linear-gradient(180deg, #241f1a 0%, #15110e 100%), radial-gradient(circle at 50% 20%, #3a3028 0%, transparent 50%); }
.scn-ode-to-tranquillity-variants .bg-shelves { position:absolute; inset:0 0 30% 0; background: repeating-linear-gradient(90deg, #1a1410 0px, #2a2018 2px, #1a1410 4px, #1a1410 40px), linear-gradient(180deg, #1a1410 0%, #15110e 100%); opacity:0.8; }
.scn-ode-to-tranquillity-variants .lamp-glow { position:absolute; top:10%; left:35%; width:30%; height:40%; background: radial-gradient(circle, #ffd080 0%, #e8a040 20%, #3a3028 60%, transparent 80%); box-shadow: 0 0 60px 20px #e8a040, 0 0 120px 40px rgba(232,160,64,0.3); animation: otv-lamp 6s ease-in-out infinite alternate; }
.scn-ode-to-tranquillity-variants .desk { position:absolute; bottom:0; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #3a2a20 0%, #1c120c 100%); border-radius: 6px 6px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.6); }
.scn-ode-to-tranquillity-variants .papers { position:absolute; bottom:15%; left:40%; width:20%; height:10%; background: linear-gradient(135deg, #c8b898 0%, #a89878 100%); border-radius: 2px; box-shadow: 2px 2px 4px rgba(0,0,0,0.3); transform: rotate(2deg); animation: otv-papers 10s ease-in-out infinite alternate; }
.scn-ode-to-tranquillity-variants .inkwell { position:absolute; bottom:18%; left:55%; width:6%; height:8%; background: linear-gradient(180deg, #1a1a20 0%, #0a0a10 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: otv-inkwell 12s ease-in-out infinite; }
.scn-ode-to-tranquillity-variants .chair { position:absolute; bottom:0; left:20%; width:25%; height:40%; background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%; box-shadow: 0 -4px 8px rgba(0,0,0,0.4); animation: otv-chair 16s ease-in-out infinite alternate; }
.scn-ode-to-tranquillity-variants .book-stack { position:absolute; bottom:8%; left:25%; width:12%; height:6%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); transform: rotate(-3deg); animation: otv-book 20s ease-in-out infinite; }
.scn-ode-to-tranquillity-variants .curtain { position:absolute; top:0; left:0; right:0; height:8%; background: linear-gradient(180deg, #2a2030 0%, #1a1018 100%); border-radius: 0 0 60% 60% / 0 0 80% 80%; box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: otv-curtain 25s ease-in-out infinite alternate; }
@keyframes otv-lamp { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.04); opacity:1; } 100% { transform: scale(0.96); opacity:0.75; } }
@keyframes otv-papers { 0% { transform: rotate(2deg) translate(0,0); } 50% { transform: rotate(0deg) translate(1px,-1px); } 100% { transform: rotate(-1deg) translate(0,0); } }
@keyframes otv-inkwell { 0% { transform: translate(0,0); } 50% { transform: translate(0,-1px); } 100% { transform: translate(0,0); } }
@keyframes otv-chair { 0% { transform: translate(0,0); } 50% { transform: translate(2px,-2px); } 100% { transform: translate(0,0); } }
@keyframes otv-book { 0% { transform: rotate(-3deg) translate(0,0); } 50% { transform: rotate(2deg) translate(1px,0); } 100% { transform: rotate(-3deg) translate(0,0); } }
@keyframes otv-curtain { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }

.scn-to-asra-intro { background: linear-gradient(180deg, #1f1c24 0%, #2d2838 50%, #1a1520 100%), radial-gradient(circle at 50% 40%, #4a3e5c 0%, transparent 70%); }
.scn-to-asra-intro .bg-chamber { position:absolute; inset:0; background: linear-gradient(180deg, #1f1c24 0%, #2d2838 50%, #1a1520 100%); opacity:0.7; }
.scn-to-asra-intro .basin { position:absolute; bottom:15%; left:30%; right:30%; height:30%; background: linear-gradient(180deg, #4a4a52 0%, #2a2a32 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4), 0 4px 12px rgba(0,0,0,0.3); overflow:hidden; }
.scn-to-asra-intro .water-flow { position:absolute; bottom:20%; left:50%; width:6%; height:40%; background: linear-gradient(180deg, #a8d8e8 0%, #80c0d0 40%, #508090 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; transform: translateX(-50%); opacity:0.8; animation: tai-water 4s ease-in-out infinite alternate; }
.scn-to-asra-intro .spring-mist { position:absolute; bottom:25%; left:25%; right:25%; height:30%; background: radial-gradient(ellipse at 50% 50%, rgba(180,220,240,0.3) 0%, transparent 70%); filter: blur(12px); animation: tai-mist 8s ease-in-out infinite alternate; }
.scn-to-asra-intro .figure-profile { position:absolute; bottom:10%; left:15%; width:20%; height:50%; background: linear-gradient(90deg, #1a1520 0%, #2d2838 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: tai-figure 9s ease-in-out infinite alternate; }
.scn-to-asra-intro .glow-source { position:absolute; top:25%; left:35%; width:30%; height:30%; background: radial-gradient(circle, #ffd0a0 0%, #e8b080 30%, transparent 70%); box-shadow: 0 0 60px 20px #e8b080, 0 0 120px 40px rgba(232,176,128,0.3); animation: tai-glow 5s ease-in-out infinite alternate; }
.scn-to-asra-intro .snow-melt { position:absolute; top:5%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(200,220,240,0.1) 60%, transparent 100%); border-radius: 50%; filter: blur(10px); animation: tai-snow 15s ease-in-out infinite alternate; }
@keyframes tai-water { 0% { transform: translateX(-50%) scaleY(0.9); opacity:0.6; } 50% { transform: translateX(-50%) scaleY(1.1); opacity:0.9; } 100% { transform: translateX(-50%) scaleY(0.95); opacity:0.7; } }
@keyframes tai-mist { 0% { transform: scale(1) translate(0,0); opacity:0.3; } 50% { transform: scale(1.1) translate(0,-5px); opacity:0.5; } 100% { transform: scale(0.95) translate(0,2px); opacity:0.2; } }
@keyframes tai-figure { 0% { transform: translate(0,0) rotate(-1deg); } 50% { transform: translate(2px,-2px) rotate(1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes tai-glow { 0% { transform: scale(1); box-shadow: 0 0 40px 10px #e8b080, 0 0 80px 20px rgba(232,176,128,0.2); } 50% { transform: scale(1.05); box-shadow: 0 0 70px 25px #ffd0a0, 0 0 140px 50px rgba(255,208,160,0.4); } 100% { transform: scale(0.95); box-shadow: 0 0 50px 15px #e8b080, 0 0 100px 30px rgba(232,176,128,0.25); } }
@keyframes tai-snow { 0% { transform: translateY(0) scaleX(1); opacity:0.3; } 50% { transform: translateY(5px) scaleX(1.1); opacity:0.5; } 100% { transform: translateY(-2px) scaleX(0.9); opacity:0.2; } }

.scn-sir-hugh-report {
  background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 60%, #FFD700 100%), radial-gradient(ellipse at 50% 0%, #FFF8DC 0%, transparent 70%);
}
.scn-sir-hugh-report .shr-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%); animation: shr-sky 20s ease-in-out infinite alternate; }
.scn-sir-hugh-report .shr-wall { position:absolute; bottom:30%; left:0; right:0; height:70%; background: repeating-linear-gradient(90deg, #8B5A2B 0px, #8B5A2B 2px, #D2B48C 2px, #D2B48C 4px); box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: shr-wall 30s ease-in-out infinite alternate; }
.scn-sir-hugh-report .shr-lattice { position:absolute; bottom:30%; left:20%; right:20%; height:60%; background: repeating-linear-gradient(0deg, transparent 0px, transparent 10px, #8B7355 10px, #8B7355 11px), repeating-linear-gradient(90deg, transparent 0px, transparent 10px, #8B7355 10px, #8B7355 11px); opacity:0.7; animation: shr-lattice 8s ease-in-out infinite alternate; }
.scn-sir-hugh-report .shr-bower { position:absolute; bottom:45%; left:35%; right:35%; height:30%; background: linear-gradient(135deg, #556B2F 0%, #228B22 50%, #006400 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; animation: shr-bower 12s ease-in-out infinite; }
.scn-sir-hugh-report .shr-figure-alice { position:absolute; bottom:32%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #FFC0CB 0%, #FF69B4 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: shr-figure 4s ease-in-out infinite; }
.scn-sir-hugh-report .shr-figure-other { position:absolute; bottom:32%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #8B4513 0%, #A0522D 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: shr-figure 4s ease-in-out infinite 2s; }
.scn-sir-hugh-report .shr-leaf-a, .scn-sir-hugh-report .shr-leaf-b { position:absolute; top:10%; width:10px; height:6px; background: #32CD32; border-radius: 50% 0; animation: shr-fall 8s linear infinite; }
.scn-sir-hugh-report .shr-leaf-a { left:20%; }
.scn-sir-hugh-report .shr-leaf-b { left:70%; animation-delay:3s; }

@keyframes shr-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes shr-wall { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }
@keyframes shr-lattice { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0); } }
@keyframes shr-bower { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes shr-figure { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes shr-fall { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(10px,20vh) rotate(20deg); } 50% { transform: translate(5px,40vh) rotate(-10deg); } 75% { transform: translate(15px,60vh) rotate(15deg); } 100% { transform: translate(10px,80vh) rotate(0deg); } }

.scn-julian-rage {
  background: linear-gradient(180deg, #FF4500 0%, #8B0000 40%, #2F4F4F 100%), radial-gradient(ellipse at 50% 100%, #FFD700 0%, transparent 70%);
}
.scn-julian-rage .jra-sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, rgba(255,69,0,0.3) 0%, transparent 100%); animation: jra-sky 15s ease-in-out infinite alternate; }
.scn-julian-rage .jra-sun { position:absolute; bottom:65%; left:50%; width:40px; height:40px; background: radial-gradient(circle, #FFFF00 0%, #FFA500 50%, transparent 100%); border-radius:50%; transform:translateX(-50%); animation: jra-sun 10s ease-in-out infinite; }
.scn-julian-rage .jra-cloud { position:absolute; top:20%; left:10%; width:100px; height:20px; background: rgba(47,79,79,0.8); border-radius:50%; filter: blur(6px); animation: jra-drift 40s linear infinite; }
.scn-julian-rage .jra-mountains { position:absolute; bottom:40%; left:0; right:0; height:25%; background: linear-gradient(180deg, #2F4F4F 0%, #1A1A1A 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; animation: jra-mount 20s ease-in-out infinite alternate; }
.scn-julian-rage .jra-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #556B2F 0%, #2E8B57 50%, #1A1A1A 100%); animation: jra-ground 8s ease-in-out infinite alternate; }
.scn-julian-rage .jra-knight { position:absolute; bottom:30%; left:40%; width:25px; height:50px; background: #1A1A1A; border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: jra-figure 4s ease-in-out infinite; }
.scn-julian-rage .jra-hawk { position:absolute; bottom:38%; left:45%; width:10px; height:8px; background: #2F4F4F; border-radius: 50% 50% 0 0; animation: jra-hawk 2s ease-in-out infinite; }
.scn-julian-rage .jra-rock { position:absolute; bottom:25%; left:20%; width:30px; height:20px; background: #3B3B3B; border-radius: 40% 60% 30% 70%; animation: jra-rock 12s ease-in-out infinite alternate; }

@keyframes jra-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.5; } }
@keyframes jra-sun { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.1); } 100% { transform: translateX(-45%) scale(0.9); } }
@keyframes jra-drift { 0% { transform: translateX(-100px); } 100% { transform: translateX(100vw); } }
@keyframes jra-mount { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }
@keyframes jra-ground { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-2px); } }
@keyframes jra-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes jra-hawk { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(0.8) rotate(-10deg); } 100% { transform: scaleY(1) rotate(10deg); } }
@keyframes jra-rock { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(3px) scale(1.05); } 100% { transform: translateX(-3px) scale(0.95); } }

.scn-alice-gaze-revealed {
  background: linear-gradient(180deg, #98FB98 0%, #3CB371 50%, #006400 100%), radial-gradient(ellipse at 50% 30%, #FFD700 0%, transparent 80%);
}
.scn-alice-gaze-revealed .agr-sky { position:absolute; inset:0 0 70% 0; background: radial-gradient(ellipse at 30% 20%, #87CEEB 0%, transparent 60%); animation: agr-sky 20s ease-in-out infinite alternate; }
.scn-alice-gaze-revealed .agr-forest-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2E8B57 0%, #006400 50%, #004d00 100%); animation: agr-forest 30s ease-in-out infinite; }
.scn-alice-gaze-revealed .agr-tree-trunk { position:absolute; bottom:20%; left:30%; width:15px; height:60%; background: linear-gradient(90deg, #8B4513 0%, #A0522D 50%, #8B4513 100%); border-radius:10px; animation: agr-tree 15s ease-in-out infinite alternate; }
.scn-alice-gaze-revealed .agr-lady { position:absolute; bottom:30%; left:45%; width:20px; height:45px; background: linear-gradient(180deg, #FFE4B5 0%, #F5DEB3 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: agr-figure 4s ease-in-out infinite; }
.scn-alice-gaze-revealed .agr-page { position:absolute; bottom:28%; left:55%; width:18px; height:38px; background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: agr-figure 4s ease-in-out infinite 2s; }
.scn-alice-gaze-revealed .agr-deer { position:absolute; bottom:30%; left:65%; width:12px; height:20px; background: #8B4513; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: agr-deer 6s ease-in-out infinite; }
.scn-alice-gaze-revealed .agr-light-beam { position:absolute; top:10%; left:20%; width:60px; height:200px; background: linear-gradient(180deg, rgba(255,255,224,0.4) 0%, transparent 100%); transform: rotate(20deg); filter: blur(8px); animation: agr-beam 8s ease-in-out infinite alternate; }

@keyframes agr-sky { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes agr-forest { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(0.99); } }
@keyframes agr-tree { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(-2px); } }
@keyframes agr-figure { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes agr-deer { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes agr-beam { 0% { opacity:0.2; transform: rotate(15deg) scaleX(1); } 50% { opacity:0.6; transform: rotate(25deg) scaleX(1.2); } 100% { opacity:0.3; transform: rotate(18deg) scaleX(0.9); } }

.scn-page-appearance {
  background: linear-gradient(180deg, #87CEEB 0%, #E0F7FA 60%, #B0C4DE 100%), radial-gradient(ellipse at 50% 50%, #FFD700 0%, transparent 70%);
}
.scn-page-appearance .ppa-sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%); animation: ppa-sky 25s ease-in-out infinite alternate; }
.scn-page-appearance .ppa-oak-left { position:absolute; bottom:20%; left:5%; width:80px; height:70%; background: linear-gradient(180deg, #228B22 0%, #006400 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; animation: ppa-oak 15s ease-in-out infinite alternate; }
.scn-page-appearance .ppa-oak-right { position:absolute; bottom:20%; right:5%; width:80px; height:70%; background: linear-gradient(180deg, #228B22 0%, #006400 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; animation: ppa-oak 15s ease-in-out infinite alternate 1s; }
.scn-page-appearance .ppa-path { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8B7355 0%, #A0522D 100%); border-radius: 20% 20% 0 0; animation: ppa-path 10s ease-in-out infinite alternate; }
.scn-page-appearance .ppa-horse { position:absolute; bottom:25%; left:40%; width:40px; height:25px; background: #4A3B32; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: ppa-horse 3s ease-in-out infinite; }
.scn-page-appearance .ppa-rider { position:absolute; bottom:40%; left:42%; width:15px; height:30px; background: #1A1A1A; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(20deg); animation: ppa-rider 3s ease-in-out infinite; }
.scn-page-appearance .ppa-leaf-a, .scn-page-appearance .ppa-leaf-b { position:absolute; width:12px; height:8px; background: #FF8C00; border-radius: 50% 0; animation: ppa-fall 12s linear infinite; }
.scn-page-appearance .ppa-leaf-a { top:15%; left:10%; }
.scn-page-appearance .ppa-leaf-b { top:25%; left:30%; width:10px; height:6px; background: #FFA500; border-radius: 0 50%; animation: ppa-fall 14s linear infinite 4s; }

@keyframes ppa-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes ppa-oak { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(1deg); } 100% { transform: scale(0.98) rotate(-1deg); } }
@keyframes ppa-path { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(-3px); } }
@keyframes ppa-horse { 0% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(2px) scaleY(0.95); } 50% { transform: translateX(0) scaleY(1); } 75% { transform: translateX(-2px) scaleY(0.95); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes ppa-rider { 0% { transform: rotate(20deg) translateY(0); } 25% { transform: rotate(15deg) translateY(-2px); } 50% { transform: rotate(20deg) translateY(0); } 75% { transform: rotate(25deg) translateY(-1px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes ppa-fall { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(15px,15vh) rotate(30deg); } 50% { transform: translate(5px,30vh) rotate(-20deg); } 75% { transform: translate(20px,45vh) rotate(45deg); } 100% { transform: translate(10px,60vh) rotate(0deg); } }

/* --- epitaph (overcast graveyard) --- */

.scn-epitaph {
  background: linear-gradient(180deg, #9a8c7a 0%, #6a5a4a 40%, #4a3a2e 100%),
              radial-gradient(circle at 50% 50%, #7a6a5a 0%, transparent 70%);
}
.scn-epitaph .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%);
  animation: epi-sky 12s ease-in-out infinite alternate;
}
.scn-epitaph .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: epi-ground 8s ease-in-out infinite;
}
.scn-epitaph .tombstone {
  position: absolute; bottom: 35%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: epi-tomb 5s ease-in-out infinite;
}
.scn-epitaph .cross {
  position: absolute; bottom: 57%; left: 50%; width: 20px; height: 40px;
  transform: translateX(-50%);
  background: transparent;
  animation: epi-cross 4s ease-in-out infinite alternate;
}
.scn-epitaph .cross::before {
  content: ''; position: absolute;
  left: 5px; top: 0; width: 10px; height: 40px;
  background: #3a2a1a; border-radius: 2px;
}
.scn-epitaph .cross::after {
  content: ''; position: absolute;
  left: -5px; top: 15px; width: 30px; height: 10px;
  background: #3a2a1a; border-radius: 2px;
}
.scn-epitaph .figure {
  position: absolute; bottom: 28%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: epi-figure 10s ease-in-out infinite;
}
.scn-epitaph .cloud {
  position: absolute; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(4px);
}
.scn-epitaph .cloud-a { top: 15%; left: -80px; animation: epi-drift-a 30s linear infinite; }
.scn-epitaph .cloud-b { top: 25%; right: -80px; animation: epi-drift-b 40s linear infinite; }

@keyframes epi-sky {
  0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; }
}
@keyframes epi-ground {
  0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); }
}
@keyframes epi-tomb {
  0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px) scale(1.01); } 100% { transform: translateX(-50%) translateY(0); }
}
@keyframes epi-cross {
  0% { box-shadow: 0 0 4px 1px rgba(255,255,255,0.3); } 50% { box-shadow: 0 0 8px 3px rgba(255,255,255,0.6); } 100% { box-shadow: 0 0 4px 1px rgba(255,255,255,0.3); }
}
@keyframes epi-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-2deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); }
}
@keyframes epi-drift-a {
  0% { transform: translateX(0); } 50% { transform: translateX(60vw); } 100% { transform: translateX(120vw); }
}
@keyframes epi-drift-b {
  0% { transform: translateX(0); } 50% { transform: translateX(-60vw); } 100% { transform: translateX(-120vw); }
}

/* --- editorial-epitaph (dim interior desk) --- */

.scn-editorial-epitaph {
  background: linear-gradient(180deg, #2c2a2a 0%, #1a1818 40%, #0a0808 100%),
              radial-gradient(circle at 50% 100%, #3a2a1a 0%, transparent 60%);
}
.scn-editorial-epitaph .backwall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #1a1818 0%, #2c2a2a 30%, #1a1818 100%);
  animation: edi-wall 20s ease-in-out infinite alternate;
}
.scn-editorial-epitaph .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a221a 0%, #1a120a 100%);
  border-radius: 0 0 20% 20%;
}
.scn-editorial-epitaph .desk {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #3a2e1a 0%, #2a1e0a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: edi-desk 15s ease-in-out infinite;
}
.scn-editorial-epitaph .candle {
  position: absolute; bottom: 45%; left: 30%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%);
  border-radius: 20% 20% 4% 4%;
  animation: edi-candle 3s ease-in-out infinite;
}
.scn-editorial-epitaph .flame {
  position: absolute; bottom: 70%; left: 30%; width: 10px; height: 20px;
  background: radial-gradient(circle at 50% 100%, #ffd070 0%, #e0a030 40%, transparent 70%);
  border-radius: 50%;
  transform: translateX(1px);
  animation: edi-flame 2s ease-in-out infinite alternate;
}
.scn-editorial-epitaph .book {
  position: absolute; bottom: 30%; left: 45%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%);
  border-radius: 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: perspective(200px) rotateX(20deg);
  animation: edi-book 10s ease-in-out infinite;
}
.scn-editorial-epitaph .page {
  position: absolute; bottom: 32%; left: 48%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c8b0 100%);
  border-radius: 2%;
  transform: perspective(200px) rotateX(20deg);
  animation: edi-page 6s ease-in-out infinite alternate;
}
.scn-editorial-epitaph .quill {
  position: absolute; bottom: 40%; left: 60%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 50%, #8a6a4a 100%);
  transform: rotate(-30deg);
  transform-origin: bottom center;
  border-radius: 20% 20% 4% 4%;
  animation: edi-quill 4s ease-in-out infinite;
}
.scn-editorial-epitaph .inkwell {
  position: absolute; bottom: 35%; left: 65%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.8);
  animation: edi-inkwell 5s ease-in-out infinite;
}

@keyframes edi-wall {
  0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; }
}
@keyframes edi-desk {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); }
}
@keyframes edi-candle {
  0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); }
}
@keyframes edi-flame {
  0% { opacity:0.6; transform: scale(0.9) translateX(1px); } 50% { opacity:1; transform: scale(1.1) translateX(1px); } 100% { opacity:0.7; transform: scale(1) translateX(1px); }
}
@keyframes edi-book {
  0% { transform: perspective(200px) rotateX(20deg) translateY(0); } 50% { transform: perspective(200px) rotateX(22deg) translateY(-2px); } 100% { transform: perspective(200px) rotateX(20deg) translateY(0); }
}
@keyframes edi-page {
  0% { opacity:0.9; transform: perspective(200px) rotateX(20deg) translateX(0); } 50% { opacity:1; transform: perspective(200px) rotateX(20deg) translateX(1.5px); } 100% { opacity:1; transform: perspective(200px) rotateX(20deg) translateX(3px); }
}
@keyframes edi-quill {
  0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-28deg) translateY(-3px); } 100% { transform: rotate(-30deg) translateY(0); }
}
@keyframes edi-inkwell {
  0% { transform: scale(1); } 50% { transform: scale(0.95); } 100% { transform: scale(1); }
}

/* --- epitaph-variants (close-up book with tombstone drawing) --- */

.scn-epitaph-variants {
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0808 50%, #1a1210 100%),
              radial-gradient(circle at 50% 50%, #2a1a1a 0%, transparent 70%);
}
.scn-epitaph-variants .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
  animation: var-bg 20s ease-in-out infinite alternate;
}
.scn-epitaph-variants .bookshelf {
  position: absolute; top: 10%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e0a 0%, #1a0e00 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
  animation: var-shelf 15s ease-in-out infinite;
}
.scn-epitaph-variants .book-cover {
  position: absolute; bottom: 30%; left: 30%; width: 120px; height: 160px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a00 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  transform: perspective(300px) rotateY(-10deg);
  animation: var-cover 8s ease-in-out infinite;
}
.scn-epitaph-variants .page-left {
  position: absolute; bottom: 30%; left: 30%; width: 58px; height: 150px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c8b0 100%);
  border-radius: 4% 0 4% 4%;
  transform: perspective(300px) rotateY(-5deg);
  transform-origin: right center;
  animation: var-page-left 10s ease-in-out infinite alternate;
}
.scn-epitaph-variants .page-right {
  position: absolute; bottom: 30%; left: calc(30% + 60px); width: 60px; height: 150px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c8b0 100%);
  border-radius: 0 4% 4% 4%;
  transform: perspective(300px) rotateY(5deg);
  transform-origin: left center;
  animation: var-page-right 10s ease-in-out infinite alternate;
}
.scn-epitaph-variants .tombstone-draw {
  position: absolute; bottom: 40%; left: 45%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 4% 4%;
  box-shadow: 0 0 0 2px #4a3a2a;
  animation: var-draw 6s ease-in-out infinite;
}
.scn-epitaph-variants .lamp-glow {
  position: absolute; top: 20%; right: 20%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%);
  filter: blur(10px);
  animation: var-lamp 3s ease-in-out infinite alternate;
}
.scn-epitaph-variants .hand {
  position: absolute; bottom: 25%; left: 28%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #d0c0b0 0%, #a09080 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: var-hand 7s ease-in-out infinite;
}

@keyframes var-bg {
  0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; }
}
@keyframes var-shelf {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); }
}
@keyframes var-cover {
  0% { transform: perspective(300px) rotateY(-10deg) translateY(0); } 50% { transform: perspective(300px) rotateY(-8deg) translateY(-3px); } 100% { transform: perspective(300px) rotateY(-10deg) translateY(0); }
}
@keyframes var-page-left {
  0% { transform: perspective(300px) rotateY(-5deg); } 50% { transform: perspective(300px) rotateY(-7.5deg); } 100% { transform: perspective(300px) rotateY(-10deg); }
}
@keyframes var-page-right {
  0% { transform: perspective(300px) rotateY(5deg); } 50% { transform: perspective(300px) rotateY(7.5deg); } 100% { transform: perspective(300px) rotateY(10deg); }
}
@keyframes var-draw {
  0% { transform: scale(1); box-shadow: 0 0 0 2px #4a3a2a; } 50% { transform: scale(1.05); box-shadow: 0 0 8px 4px rgba(255,200,100,0.3); } 100% { transform: scale(1); box-shadow: 0 0 0 2px #4a3a2a; }
}
@keyframes var-lamp {
  0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:0.8; transform: scale(1); } 100% { opacity:1; transform: scale(1.1); }
}
@keyframes var-hand {
  0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-5px); } 100% { transform: rotate(15deg) translateY(0); }
}

/* --- coleridge-letter-to-aders (overhead desk with letter and vignette) --- */

.scn-coleridge-letter-to-aders {
  background: linear-gradient(180deg, #2a2018 0%, #1a1008 50%, #0a0800 100%),
              radial-gradient(circle at 50% 50%, #3a2818 0%, transparent 70%);
}
.scn-coleridge-letter-to-aders .desk-surface {
  position: absolute; bottom: 0; left: 0; right: 0; height: 100%;
  background: linear-gradient(180deg, #4a3828 0%, #3a2818 100%);
  transform: perspective(400px) rotateX(60deg);
  transform-origin: bottom center;
  animation: col-desk 20s ease-in-out infinite alternate;
}
.scn-coleridge-letter-to-aders .letter-paper {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 70%;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c8b0 100%);
  border-radius: 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  transform: perspective(400px) rotateX(60deg) scale(0.9);
  transform-origin: bottom center;
  animation: col-letter 10s ease-in-out infinite;
}
.scn-coleridge-letter-to-aders .line {
  position: absolute; left: 30%; right: 30%; height: 2px;
  background: #5a4a3a;
  border-radius: 1px;
  opacity: 0.6;
}
.scn-coleridge-letter-to-aders .line-1 {
  bottom: 55%;
  animation: col-line1 5s ease-in-out infinite;
}
.scn-coleridge-letter-to-aders .line-2 {
  bottom: 48%;
  animation: col-line2 6s ease-in-out infinite;
}
.scn-coleridge-letter-to-aders .line-3 {
  bottom: 41%;
  animation: col-line3 7s ease-in-out infinite;
}
.scn-coleridge-letter-to-aders .vignette {
  position: absolute; bottom: 30%; left: 45%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 4% 4%;
  box-shadow: 0 0 0 1px #4a3a2a;
  transform: perspective(400px) rotateX(60deg) scale(0.9);
  transform-origin: bottom center;
  animation: col-vignette 6s ease-in-out infinite;
}
.scn-coleridge-letter-to-aders .inkwell {
  position: absolute; bottom: 15%; left: 15%; width: 25px; height: 25px;
  background: radial-gradient(circle at 50% 50%, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.8);
  transform: perspective(400px) rotateX(60deg);
  transform-origin: bottom center;
  animation: col-inkwell 4s ease-in-out infinite;
}
.scn-coleridge-letter-to-aders .quill {
  position: absolute; bottom: 30%; left: 18%; width: 3px; height: 50px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 50%, #8a6a4a 100%);
  transform: perspective(400px) rotateX(60deg) rotate(30deg);
  transform-origin: bottom center;
  border-radius: 20% 20% 4% 4%;
  animation: col-quill 3s ease-in-out infinite;
}
.scn-coleridge-letter-to-aders .seal {
  position: absolute; bottom: 20%; right: 20%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #c8553d 0%, #a0461a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(60deg);
  transform-origin: bottom center;
  animation: col-seal 8s ease-in-out infinite;
}

@keyframes col-desk {
  0% { opacity:0.95; } 50% { opacity:1; } 100% { opacity:0.9; }
}
@keyframes col-letter {
  0% { transform: perspective(400px) rotateX(60deg) scale(0.9); } 50% { transform: perspective(400px) rotateX(60deg) scale(0.92); } 100% { transform: perspective(400px) rotateX(60deg) scale(0.9); }
}
@keyframes col-line1 {
  0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.6; }
}
@keyframes col-line2 {
  0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; }
}
@keyframes col-line3 {
  0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.4; }
}
@keyframes col-vignette {
  0% { transform: perspective(400px) rotateX(60deg) scale(0.9); box-shadow: 0 0 0 1px #4a3a2a; } 50% { transform: perspective(400px) rotateX(60deg) scale(0.95); box-shadow: 0 0 6px 2px rgba(255,200,100,0.3); } 100% { transform: perspective(400px) rotateX(60deg) scale(0.9); box-shadow: 0 0 0 1px #4a3a2a; }
}
@keyframes col-inkwell {
  0% { transform: perspective(400px) rotateX(60deg) scale(1); } 50% { transform: perspective(400px) rotateX(60deg) scale(0.95); } 100% { transform: perspective(400px) rotateX(60deg) scale(1); }
}
@keyframes col-quill {
  0% { transform: perspective(400px) rotateX(60deg) rotate(30deg) translateY(0); } 50% { transform: perspective(400px) rotateX(60deg) rotate(28deg) translateY(-2px); } 100% { transform: perspective(400px) rotateX(60deg) rotate(30deg) translateY(0); }
}
@keyframes col-seal {
  0% { transform: perspective(400px) rotateX(60deg) scale(1); } 50% { transform: perspective(400px) rotateX(60deg) scale(1.05); } 100% { transform: perspective(400px) rotateX(60deg) scale(1); }
}

.scn-snowdrop-variants {
  background:
    linear-gradient(180deg, #2b1f15 0%, #1a120a 100%),
    radial-gradient(ellipse at 40% 70%, rgba(255,180,80,.25) 0%, transparent 70%);
}
.scn-snowdrop-variants .desk {
  position: absolute;
  bottom: 10%;
  left: 10%;
  right: 10%;
  height: 30%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.5);
  animation: sv-breathe 8s ease-in-out infinite;
}
.scn-snowdrop-variants .vase {
  position: absolute;
  bottom: 45%;
  left: 50%;
  width: 40px;
  height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a30 0%, #3a2a15 100%);
  border-radius: 20% 20% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: sv-sway 6s ease-in-out infinite;
}
.scn-snowdrop-variants .blossom-blob {
  position: absolute;
  bottom: calc(45% + 70px);
  left: 50%;
  width: 0;
  height: 0;
  transform: translateX(-50%);
  box-shadow:
    0 0 0 8px rgba(255,255,255,.8),
    20px -10px 0 4px rgba(255,255,255,.7),
    -18px -15px 0 3px rgba(255,255,255,.6),
    10px -25px 0 5px rgba(255,255,255,.5);
  animation: sv-sway 6s ease-in-out infinite reverse;
}
.scn-snowdrop-variants .candle {
  position: absolute;
  bottom: 45%;
  left: 65%;
  width: 10px;
  height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8d8a0 0%, #c8b87a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -10px 15px rgba(0,0,0,.3);
  animation: sv-breathe 8s ease-in-out infinite;
}
.scn-snowdrop-variants .flame-glow {
  position: absolute;
  bottom: calc(45% + 60px);
  left: 65%;
  width: 8px;
  height: 8px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #ffb040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 6px rgba(255,176,64,.6);
  animation: sv-flicker 2s ease-in-out infinite;
}
.scn-snowdrop-variants .paper-a {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 80px;
  height: 100px;
  background: linear-gradient(145deg, #e8dcc8 0%, #c8b898 100%);
  border-radius: 2%;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: sv-float-a 12s ease-in-out infinite;
}
.scn-snowdrop-variants .paper-b {
  position: absolute;
  bottom: 15%;
  left: 35%;
  width: 70px;
  height: 90px;
  background: linear-gradient(145deg, #d8ccb8 0%, #b8a888 100%);
  border-radius: 2%;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: sv-float-b 14s ease-in-out infinite 3s;
}
@keyframes sv-breathe {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.005); }
}
@keyframes sv-sway {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-48%) rotate(2deg); }
}
@keyframes sv-flicker {
  0% { opacity: 0.9; transform: scale(1) rotate(0deg); }
  20% { opacity: 1; transform: scale(1.1) rotate(-5deg); }
  40% { opacity: 0.85; transform: scale(0.9) rotate(3deg); }
  60% { opacity: 1; transform: scale(1.05) rotate(0deg); }
  80% { opacity: 0.95; transform: scale(0.95) rotate(-2deg); }
  100% { opacity: 0.9; transform: scale(1) rotate(0deg); }
}
@keyframes sv-float-a {
  0%, 100% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
}
@keyframes sv-float-b {
  0%, 100% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
}

.scn-after-bathing-intro {
  background: 
    linear-gradient(180deg, #2a1a14 0%, #1a0f0a 50%, #0e0805 100%),
    radial-gradient(ellipse at 60% 80%, rgba(255, 180, 80, 0.15) 0%, transparent 60%);
}

.scn-after-bathing-intro .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(60, 40, 30, 0.4) 0%, transparent 50%);
  animation: abi-wall 12s ease-in-out infinite alternate;
}

.scn-after-bathing-intro .window {
  position: absolute;
  top: 12%;
  left: 18%;
  width: 64%;
  height: 68%;
  background: #2a1f15;
  border: 6px solid #4a3428;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6), 0 4px 20px rgba(0,0,0,0.7);
  overflow: hidden;
}

.scn-after-bathing-intro .sky {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: linear-gradient(180deg, #2d3a5c 0%, #6b5f7a 40%, #b58a7a 100%);
  animation: abi-sky 20s ease-in-out infinite alternate;
}

.scn-after-bathing-intro .ocean {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 45%;
  background: linear-gradient(180deg, #1a2f3a 0%, #0f1f28 50%, #071218 100%);
  animation: abi-ocean 4s ease-in-out infinite;
}

.scn-after-bathing-intro .ship {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 28px;
  height: 10px;
  background: #1a1a1a;
  border-radius: 0 0 40% 40% / 0 0 80% 80%;
  transform-origin: center bottom;
  animation: abi-ship-bob 4s ease-in-out infinite;
}

.scn-after-bathing-intro .sail {
  position: absolute;
  bottom: 29%;
  left: 37%;
  width: 8px;
  height: 18px;
  background: linear-gradient(180deg, #ddd 0%, #bbb 100%);
  border-radius: 2px 2px 0 0;
  transform-origin: bottom center;
  animation: abi-sail-sway 5s ease-in-out infinite;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}

.scn-after-bathing-intro .figure {
  position: absolute;
  bottom: 10%;
  right: 12%;
  width: 24px;
  height: 50px;
  background: radial-gradient(ellipse at 50% 30%, #2a1f15 40%, #0f0a07 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: abi-figure-breathe 6s ease-in-out infinite;
}

.scn-after-bathing-intro .candle {
  position: absolute;
  bottom: 8%;
  right: 8%;
  width: 6px;
  height: 14px;
  background: linear-gradient(180deg, #f0c070 0%, #b08030 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 20px 8px rgba(255, 180, 80, 0.4), 0 0 40px 16px rgba(255, 180, 80, 0.15);
  animation: abi-candle-glow 3s ease-in-out infinite alternate;
}

@keyframes abi-wall {
  0% { opacity: 0.7; }
  50% { opacity: 0.85; }
  100% { opacity: 0.7; }
}

@keyframes abi-sky {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.8; }
}

@keyframes abi-ocean {
  0% { transform: translateY(0) scaleY(1); }
  25% { transform: translateY(-2px) scaleY(1.02); }
  50% { transform: translateY(0) scaleY(1); }
  75% { transform: translateY(1px) scaleY(0.98); }
  100% { transform: translateY(0) scaleY(1); }
}

@keyframes abi-ship-bob {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-2deg); }
  50% { transform: translateY(1px) rotate(1deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

@keyframes abi-sail-sway {
  0% { transform: rotate(-3deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(-4deg); }
  75% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}

@keyframes abi-figure-breathe {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}

@keyframes abi-candle-glow {
  0% { box-shadow: 0 0 15px 6px rgba(255, 180, 80, 0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 30px 12px rgba(255, 200, 100, 0.5); opacity: 1; }
  100% { box-shadow: 0 0 12px 4px rgba(255, 180, 80, 0.25); opacity: 0.85; }
}

.scn-after-bathing-body {
  background:
    linear-gradient(180deg, #87CEEB 0%, #f5deb3 30%, #e8d5a3 60%, #c2a870 100%),
    radial-gradient(ellipse at 70% 15%, #f9e0a0 0%, transparent 60%);
}
.scn-after-bathing-body .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #aad0f0 0%, #87CEEB 60%, transparent 100%);
  animation: abb-sky 20s ease-in-out infinite alternate;
}
.scn-after-bathing-body .sun {
  position: absolute; top: 8%; right: 18%; width: 70px; height: 70px;
  background: radial-gradient(circle, #fff6d5 0%, #f9e0a0 40%, #e8c87a 80%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(249,224,160,0.5), 0 0 120px 40px rgba(232,200,122,0.3);
  animation: abb-sun 8s ease-in-out infinite alternate;
}
.scn-after-bathing-body .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 48%;
  background: linear-gradient(180deg, #4a8aad 0%, #2a6a8a 50%, #1a4a6a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.3);
}
.scn-after-bathing-body .wave {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(2px);
}
.scn-after-bathing-body .foam {
  bottom: 10%; height: 8%;
  background: rgba(255,255,255,0.4);
  filter: blur(3px);
  animation: abb-foam 6s ease-in-out infinite alternate;
}
.scn-after-bathing-body .ripples {
  bottom: 5%; height: 6%;
  background: rgba(255,255,255,0.2);
  filter: blur(2px);
  animation: abb-ripples 9s ease-in-out infinite;
  animation-delay: -3s;
}
.scn-after-bathing-body .figure {
  position: absolute; bottom: 40%; left: 35%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #d4a574 0%, #b8845a 40%, #8a6040 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: abb-figure 5s ease-in-out infinite;
}
.scn-after-bathing-body .towel {
  position: absolute; bottom: 39%; left: 20%; width: 40px; height: 6px;
  background: linear-gradient(90deg, #f0d0a0 0%, #e0b080 50%, #f0d0a0 100%);
  border-radius: 50%;
  transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  animation: abb-towel 8s ease-in-out infinite alternate;
}
.scn-after-bathing-body .cloud {
  position: absolute;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.2) 100%);
  border-radius: 50%;
  filter: blur(4px);
}
.scn-after-bathing-body .cloud-left {
  top: 12%; left: 5%; width: 80px; height: 20px;
  animation: abb-drift-left 40s linear infinite;
}
.scn-after-bathing-body .cloud-right {
  top: 18%; right: 30%; width: 60px; height: 14px;
  animation: abb-drift-right 50s linear infinite reverse;
  animation-delay: -15s;
}
@keyframes abb-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes abb-sun {
  0% { transform: scale(0.95); box-shadow: 0 0 50px 15px rgba(249,224,160,0.4); }
  50% { transform: scale(1.05); box-shadow: 0 0 70px 25px rgba(249,224,160,0.6); }
  100% { transform: scale(1); box-shadow: 0 0 60px 20px rgba(249,224,160,0.5); }
}
@keyframes abb-foam {
  0% { transform: translateX(-5px) scaleY(1); opacity: 0.7; }
  50% { transform: translateX(5px) scaleY(1.2); opacity: 1; }
  100% { transform: translateX(-3px) scaleY(0.9); opacity: 0.8; }
}
@keyframes abb-ripples {
  0% { transform: translateX(0) scaleX(1); opacity: 0.3; }
  33% { transform: translateX(8px) scaleX(1.1); opacity: 0.6; }
  66% { transform: translateX(-6px) scaleX(0.9); opacity: 0.4; }
  100% { transform: translateX(0) scaleX(1); opacity: 0.3; }
}
@keyframes abb-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes abb-towel {
  0% { transform: rotate(12deg) scaleX(1); }
  50% { transform: rotate(18deg) scaleX(1.05); }
  100% { transform: rotate(12deg) scaleX(1); }
}
@keyframes abb-drift-left {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}
@keyframes abb-drift-right {
  0% { transform: translateX(0); }
  100% { transform: translateX(-120vw); }
}

.scn-after-bathing-variants { background: linear-gradient(180deg, #1e2638 0%, #252b40 40%, #1a1e2c 100%), radial-gradient(ellipse at 30% 80%, #3a4055 0%, transparent 70%); }
.scn-after-bathing-variants .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a334a 0%, #1c2230 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.3); }
.scn-after-bathing-variants .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1e2c 0%, #101218 100%); }
.scn-after-bathing-variants .steam { position:absolute; border-radius:50%; background: radial-gradient(circle, rgba(200,215,240,0.25) 0%, rgba(200,215,240,0.05) 70%); filter: blur(20px); }
.scn-after-bathing-variants .steam-a { width:200px; height:120px; top:15%; left:10%; animation: bv-steam-a 18s ease-in-out infinite; }
.scn-after-bathing-variants .steam-b { width:160px; height:100px; top:10%; right:20%; animation: bv-steam-b 22s ease-in-out infinite; animation-delay: -3s; }
.scn-after-bathing-variants .curtain { position:absolute; top:0; left:0; width:60px; height:100%; background: linear-gradient(90deg, #3a4055 0%, #5a6075 50%, #3a4055 100%); border-right:2px solid rgba(255,255,255,.1); box-shadow: 2px 0 12px rgba(0,0,0,.4); animation: bv-curtain 6s ease-in-out infinite alternate; }
.scn-after-bathing-variants .basin { position:absolute; bottom:28%; left:50%; transform:translateX(-50%); width:70px; height:40px; background: linear-gradient(135deg, #4a5070 0%, #2a3050 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 -2px 8px rgba(100,150,200,.3), inset 0 4px 8px rgba(0,0,0,.5); animation: bv-basin 12s ease-in-out infinite; }
.scn-after-bathing-variants .figure { position:absolute; bottom:20%; left:35%; width:24px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bv-figure 4s ease-in-out infinite; box-shadow: 0 0 12px rgba(0,0,0,.4); }
.scn-after-bathing-variants .candle { position:absolute; bottom:30%; left:55%; width:8px; height:30px; background: linear-gradient(180deg, #e8d0a0 0%, #b09868 60%, #6a4a2a 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 0 20px 6px #e0b060, 0 0 40px 12px rgba(224,176,96,.3); animation: bv-candle 3s ease-in-out infinite; }
.scn-after-bathing-variants .towel { position:absolute; bottom:22%; left:58%; width:30px; height:12px; background: linear-gradient(180deg, #b8b8c0 0%, #7a7a8a 100%); border-radius: 10px 10px 4px 4px; transform: rotate(10deg); animation: bv-towel 8s ease-in-out infinite alternate; }
@keyframes bv-steam-a { 0% { transform: translate(0,0) scale(1); opacity:0.4; } 33% { transform: translate(10px,-6px) scale(1.05); opacity:0.6; } 66% { transform: translate(-5px,-12px) scale(0.95); opacity:0.5; } 100% { transform: translate(0,-20px) scale(1.02); opacity:0.3; } }
@keyframes bv-steam-b { 0% { transform: translate(0,0) scale(1); opacity:0.3; } 25% { transform: translate(-8px,4px) scale(0.98); opacity:0.5; } 50% { transform: translate(6px,-10px) scale(1.06); opacity:0.4; } 75% { transform: translate(-4px,2px) scale(1.02); opacity:0.6; } 100% { transform: translate(0,-16px) scale(1); opacity:0.3; } }
@keyframes bv-curtain { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(3px) rotate(1deg); } }
@keyframes bv-basin { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.005) translateY(-1px); } }
@keyframes bv-figure { 0% { transform: translateY(0) rotate(-1deg); } 33% { transform: translateY(-1px) rotate(1deg); } 66% { transform: translateY(0) rotate(-0.5deg); } 100% { transform: translateY(1px) rotate(0deg); } }
@keyframes bv-candle { 0% { opacity:0.85; transform: scaleY(1) translateY(0); } 30% { opacity:1; transform: scaleY(1.02) translateY(-1px); } 50% { opacity:0.9; transform: scaleY(0.98) translateY(0); } 70% { opacity:1; transform: scaleY(1.01) translateY(-1px); } 100% { opacity:0.85; transform: scaleY(1) translateY(0); } }
@keyframes bv-towel { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-1px); } 100% { transform: rotate(8deg) translateY(0); } }

.scn-reproof- reply-apology {
  background: linear-gradient(180deg, #a0d8ef 0%, #f0e87a 70%) , radial-gradient(circle at 30% 20%, #fff5b0 0%, transparent 60%);
}

.scn-reproof- reply-apology .sky {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #c8e8ff 0%, #b0d8f0 100%);
  animation: rep-sky 20s ease-in-out infinite alternate;
}

.scn-reproof- reply-apology .sun {
  position: absolute;
  top: 8%;
  left: 25%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, #fff5c0 0%, #f0c040 60%, #d09020 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(240, 160, 30, 0.3), 0 0 100px 40px rgba(240, 200, 60, 0.2);
  animation: rep-sun 6s ease-in-out infinite;
}

.scn-reproof- reply-apology .hill {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #6a9a4a 0%, #4a7a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0, 0, 0, 0.15);
  animation: rep-hill 15s ease-in-out infinite alternate;
}

.scn-reproof- reply-apology .fountain-base {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 80px;
  height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b8a098 0%, #887868 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
  animation: rep-base 4s ease-in-out infinite;
}

.scn-reproof- reply-apology .fountain-water {
  position: absolute;
  bottom: 35%;
  left: 50%;
  width: 40px;
  height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(180, 230, 255, 0.8) 0%, rgba(120, 200, 240, 0.4) 100%);
  border-radius: 50% 50% 0 0;
  clip-path: polygon(0% 100%, 20% 0%, 40% 30%, 60% 0%, 80% 20%, 100% 0%, 100% 100%);
  animation: rep-fountain 2s ease-in-out infinite;
}

.scn-reproof- reply-apology .poet {
  position: absolute;
  bottom: 25%;
  left: 35%;
  width: 28px;
  height: 50px;
  background: radial-gradient(ellipse at 50% 30%, #3a2b2b 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rep-poet 5s ease-in-out infinite;
  box-shadow: 0 0 10px rgba(0,0,0,0.2);
}

.scn-reproof- reply-apology .nymph {
  position: absolute;
  bottom: 28%;
  left: 55%;
  width: 22px;
  height: 45px;
  background: radial-gradient(ellipse at 50% 25%, #7a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 40% 40% 30% / 50% 50% 50% 50%;
  transform-origin: bottom center;
  animation: rep-nymph 6s ease-in-out infinite reverse;
  box-shadow: 0 0 8px rgba(0,0,0,0.2);
}

.scn-reproof- reply-apology .music-note {
  position: absolute;
  width: 8px;
  height: 8px;
  background: radial-gradient(circle, #ffcc44 0%, #dd9900 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px rgba(255, 200, 50, 0.5);
}

.scn-reproof- reply-apology .note-a {
  top: 18%;
  left: 38%;
  animation: rep-note 3s ease-in-out infinite;
}

.scn-reproof- reply-apology .note-b {
  top: 22%;
  left: 52%;
  animation: rep-note 4.5s ease-in-out infinite 0.8s;
}

@keyframes rep-sky {
  0% { opacity: 1; }
  50% { opacity: 0.85; }
  100% { opacity: 1; }
}

@keyframes rep-sun {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.08) rotate(5deg); }
}

@keyframes rep-hill {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}

@keyframes rep-base {
  0%, 100% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.04); }
}

@keyframes rep-fountain {
  0%, 100% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.15) rotate(-2deg); }
}

@keyframes rep-poet {
  0%, 100% { transform: translateX(0) rotate(-2deg); }
  20% { transform: translateX(3px) rotate(2deg); }
  40% { transform: translateX(1px) rotate(-1deg); }
  60% { transform: translateX(-2px) rotate(3deg); }
  80% { transform: translateX(-4px) rotate(0deg); }
}

@keyframes rep-nymph {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(-5px) rotate(4deg); }
  66% { transform: translateX(3px) rotate(-3deg); }
}

@keyframes rep-note {
  0% { transform: translate(0, 0) rotate(0deg) scale(1); opacity: 0.8; }
  25% { transform: translate(10px, -15px) rotate(30deg) scale(1.1); opacity: 1; }
  50% { transform: translate(20px, -5px) rotate(60deg) scale(0.9); opacity: 0.7; }
  75% { transform: translate(30px, -20px) rotate(90deg) scale(1); opacity: 1; }
  100% { transform: translate(40px, -10px) rotate(120deg) scale(0.8); opacity: 0.6; }
}

.scn-reproof-reply-may {
  background: 
    linear-gradient(180deg, #0d1b2a 0%, #1b263b 40%, #415a77 100%),
    radial-gradient(ellipse at 70% 60%, rgba(255, 200, 100, .08) 0%, transparent 60%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
}
.scn-reproof-reply-may .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0b1823 0%, #1a2a3a 50%, #2c3e50 100%);
  animation: rrm-sky 3s ease-in-out infinite alternate;
}
.scn-reproof-reply-may .window-frame {
  position: absolute; left: 5%; top: 5%; width: 40%; height: 50%;
  background: #2c2c3e; border-radius: 4px; box-shadow: inset 0 0 0 4px #1a1a2e, 0 0 20px rgba(0,0,0,.5);
  animation: rrm-window 12s ease-in-out infinite alternate;
}
.scn-reproof-reply-may .wall-dark {
  position: absolute; left: 0; right: 0; top: 0; bottom: 35%;
  background: linear-gradient(180deg, #1e2233 0%, #262a3b 100%);
  animation: rrm-wall 20s ease-in-out infinite alternate;
}
.scn-reproof-reply-may .floor {
  position: absolute; left: 0; right: 0; bottom: 0; height: 35%;
  background: linear-gradient(0deg, #1b1a1e 0%, #2c2a30 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,.4);
}
.scn-reproof-reply-may .figure-stand {
  position: absolute; left: 42%; bottom: 32%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #0f0f1a 0%, #050508 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rrm-stand 6s ease-in-out infinite;
}
.scn-reproof-reply-may .figure-sit {
  position: absolute; left: 58%; bottom: 24%; width: 18px; height: 26px;
  background: linear-gradient(180deg, #0f0f1a 0%, #050508 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: rrm-sit 8s ease-in-out infinite alternate;
}
.scn-reproof-reply-may .lamp-glow {
  position: absolute; right: 18%; bottom: 45%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffd580 0%, #e8a84a 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(232,168,74,.4), 0 0 60px 20px rgba(232,168,74,.15);
  animation: rrm-lamp 4s ease-in-out infinite alternate;
}

@keyframes rrm-sky {
  0% { opacity: .6; background: linear-gradient(180deg, #0b1823 0%, #1a2a3a 50%, #2c3e50 100%); }
  50% { opacity: .9; background: linear-gradient(180deg, #1b2a3a 0%, #2a3e4e 60%, #4e6a80 100%); }
  100% { opacity: .5; background: linear-gradient(180deg, #0a1722 0%, #192939 50%, #2b3d4f 100%); }
}
@keyframes rrm-window {
  0% { transform: scale(1); opacity: .9; }
  50% { transform: scale(1.02); opacity: 1; }
  100% { transform: scale(.98); opacity: .85; }
}
@keyframes rrm-wall {
  0% { background: linear-gradient(180deg, #1e2233 0%, #262a3b 100%); }
  50% { background: linear-gradient(180deg, #222638 0%, #2a2e40 100%); }
  100% { background: linear-gradient(180deg, #1c2031 0%, #242838 100%); }
}
@keyframes rrm-stand {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(-1px) translateY(-2px) rotate(3deg); }
  75% { transform: translateX(1px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes rrm-sit {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes rrm-lamp {
  0% { box-shadow: 0 0 20px 6px rgba(232,168,74,.3); opacity: .8; }
  50% { box-shadow: 0 0 40px 14px rgba(232,168,74,.6); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(232,168,74,.35); opacity: .85; }
}

.scn-tom-bless-epitaph-continued {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1f3a 40%, #3f2b4a 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a5a 0%, transparent 60%);
}
.scn-tom-bless-epitaph-continued .sky {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%);
  animation: tbep-sky 18s ease-in-out infinite alternate;
}
.scn-tom-bless-epitaph-continued .mist {
  position: absolute;
  inset: 15% 0 30% 0;
  background: linear-gradient(90deg, transparent 0%, rgba(200,180,220,.15) 50%, transparent 100%);
  filter: blur(10px);
  animation: tbep-mist 30s ease-in-out infinite;
}
.scn-tom-bless-epitaph-continued .ground {
  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 12px 24px rgba(0,0,0,.6);
  animation: tbep-ground 24s ease-in-out infinite alternate;
}
.scn-tom-bless-epitaph-continued .tombstone {
  position: absolute;
  bottom: 33%;
  left: 42%;
  width: 28px;
  height: 36px;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 12% 12% 8% 8% / 20% 20% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3), inset 0 -4px 6px rgba(0,0,0,.4);
  animation: tbep-stone 20s ease-in-out infinite;
}
.scn-tom-bless-epitaph-continued .figure {
  position: absolute;
  bottom: 28%;
  left: 36%;
  width: 14px;
  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: tbep-figure 6s ease-in-out infinite;
}
.scn-tom-bless-epitaph-continued .lantern {
  position: absolute;
  bottom: 34%;
  left: 28%;
  width: 6px;
  height: 6px;
  background: radial-gradient(circle, #ffd680 0%, #b05020 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px #ffd680, 0 0 32px 8px rgba(255,214,128,.5);
  animation: tbep-lantern 4s ease-in-out infinite;
}
.scn-tom-bless-epitaph-continued .cloud-a {
  position: absolute;
  top: 12%;
  left: -20%;
  width: 100px;
  height: 20px;
  background: linear-gradient(180deg, rgba(220,200,240,.3) 0%, rgba(200,180,220,.05) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: tbep-drift-a 40s linear infinite;
}
.scn-tom-bless-epitaph-continued .cloud-b {
  position: absolute;
  top: 22%;
  right: -15%;
  width: 70px;
  height: 14px;
  background: linear-gradient(180deg, rgba(220,200,240,.2) 0%, rgba(200,180,220,.03) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: tbep-drift-b 50s linear infinite reverse;
}

@keyframes tbep-sky {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .75; }
}
@keyframes tbep-mist {
  0% { transform: translateX(-10%); opacity: .3; }
  50% { transform: translateX(10%); opacity: .6; }
  100% { transform: translateX(-10%); opacity: .3; }
}
@keyframes tbep-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes tbep-stone {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes tbep-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes tbep-lantern {
  0% { box-shadow: 0 0 12px 3px #ffd680, 0 0 24px 6px rgba(255,214,128,.4); opacity: .85; }
  50% { box-shadow: 0 0 20px 6px #ffd680, 0 0 40px 12px rgba(255,214,128,.7); opacity: 1; }
  100% { box-shadow: 0 0 14px 4px #ffd680, 0 0 28px 8px rgba(255,214,128,.45); opacity: .9; }
}
@keyframes tbep-drift-a {
  0% { transform: translateX(0); }
  100% { transform: translateX(120vw); }
}
@keyframes tbep-drift-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-120vw); }
}

/* Scene: tom bless-epitaph-intro */
.scn-tom-bless-epitaph-intro {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4a 50%, #1a1a2e 100%),
              radial-gradient(ellipse at 30% 20%, #4a4a6e 0%, transparent 60%);
}
.scn-tom-bless-epitaph-intro .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a1a2e, #2a2a4a 40%, #3a3a5a 70%, transparent);
  animation: tei-sky 15s ease-in-out infinite alternate;
}
.scn-tom-bless-epitaph-intro .moon {
  position: absolute;
  top: 12%;
  left: 25%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, #e8e0d0 0%, #c0b8a8 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(200,190,180,0.4);
  animation: tei-moon 20s ease-in-out infinite alternate;
}
.scn-tom-bless-epitaph-intro .mist {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(200,190,220,0.15) 40%, rgba(100,100,140,0.1) 100%);
  filter: blur(12px);
  animation: tei-mist 25s ease-in-out infinite alternate;
}
.scn-tom-bless-epitaph-intro .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 70% 30% 0 0 / 20% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
}
.scn-tom-bless-epitaph-intro .tombstone {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 60px;
  height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: tei-tombstone 10s ease-in-out infinite;
}
.scn-tom-bless-epitaph-intro .figure {
  position: absolute;
  bottom: 18%;
  left: 45%;
  width: 16px;
  height: 32px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tei-figure 6s ease-in-out infinite;
}
.scn-tom-bless-epitaph-intro .tree {
  position: absolute;
  bottom: 20%;
  left: 15%;
  width: 40px;
  height: 70px;
  background: #0a0a0a;
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: tei-tree 12s ease-in-out infinite alternate;
}
.scn-tom-bless-epitaph-intro .lantern {
  position: absolute;
  bottom: 22%;
  left: 48%;
  width: 6px;
  height: 10px;
  background: #ffd680;
  border-radius: 20%;
  box-shadow: 0 0 16px 6px rgba(255,214,128,0.6);
  animation: tei-lantern 4s ease-in-out infinite alternate;
}
@keyframes tei-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes tei-moon {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-5px) scale(1.05); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes tei-mist {
  0% { opacity: 0.3; transform: translateY(0) scale(1); }
  50% { opacity: 0.6; transform: translateY(-8px) scale(1.02); }
  100% { opacity: 0.4; }
}
@keyframes tei-tombstone {
  0%, 100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
}
@keyframes tei-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(3px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(6px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(9px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(12px) translateY(0) rotate(0deg); }
}
@keyframes tei-tree {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes tei-lantern {
  0% { opacity: 0.7; box-shadow: 0 0 12px 4px rgba(255,214,128,0.4); }
  50% { opacity: 1; box-shadow: 0 0 20px 8px rgba(255,214,128,0.7); }
  100% { opacity: 0.8; box-shadow: 0 0 14px 5px rgba(255,214,128,0.5); }
}
/* end per-scene blocks */

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-devil-sunday-best {
  background:
    linear-gradient(180deg, #87CEEB 0%, #F0E68C 60%, #DEB887 100%),
    radial-gradient(ellipse at 50% 0%, #F0E68C 20%, transparent 60%);
}
.scn-devil-sunday-best .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #87CEEB, #FFF8DC); animation: devSun-sky 12s ease-in-out infinite alternate; }
.scn-devil-sunday-best .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8FBC8F 0%, #6B8E23 100%); border-radius: 40% 0 0 0; }
.scn-devil-sunday-best .cottage { position:absolute; bottom:25%; left:10%; width:120px; height:80px; background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: devSun-cottage 15s ease-in-out infinite alternate; }
.scn-devil-sunday-best .coach-house { position:absolute; bottom:28%; left:55%; width:80px; height:60px; background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: devSun-coach 18s ease-in-out infinite alternate; }
.scn-devil-sunday-best .devil { position:absolute; bottom:30%; left:35%; width:30px; height:70px; background: linear-gradient(180deg, #DC143C 0%, #B22222 50%, #8B0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: devSun-walk 3s ease-in-out infinite; }
.scn-devil-sunday-best .tail-hole { position:absolute; bottom:35%; left:38%; width:8px; height:8px; background: #2F4F4F; border-radius: 50%; animation: devSun-hole 3s ease-in-out infinite; }
.scn-devil-sunday-best .grin { position:absolute; bottom:55%; left:36%; width:10px; height:4px; background: transparent; border-bottom: 3px solid #8B0000; border-radius: 0 0 50% 50%; animation: devSun-grin 1.5s ease-in-out infinite alternate; }
.scn-devil-sunday-best .sunbeams { position:absolute; top:0; left:0; right:0; bottom:0; background: repeating-linear-gradient(45deg, transparent, transparent 30px, rgba(255,255,0,0.05) 30px, rgba(255,255,0,0.05) 60px); animation: devSun-beams 20s linear infinite; pointer-events: none; }
@keyframes devSun-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes devSun-cottage { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes devSun-coach { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes devSun-walk { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(10px) translateY(0) rotate(0deg); } 75% { transform: translateX(15px) translateY(-2px) rotate(-3deg); } 100% { transform: translateX(20px) translateY(0) rotate(0deg); } }
@keyframes devSun-hole { 0% { transform: scale(1); } 50% { transform: scale(1.2) rotate(10deg); } 100% { transform: scale(1); } }
@keyframes devSun-grin { 0% { width: 6px; } 50% { width: 14px; } 100% { width: 10px; } }
@keyframes devSun-beams { 0% { background-position: 0 0; } 100% { background-position: 200px 100px; } }

/* scene: devil-quotes-genesis */

.scn-good-great-man-epigram{background:linear-gradient(180deg,#3a2a1a 0%,#2a1a0a 100%),radial-gradient(ellipse at 50% 0%,#4a3a2a 0%,transparent 60%);}.scn-good-great-man-epigram .wall{position:absolute;inset:0;background:linear-gradient(180deg,#3a2a1a,#2a1a0a);}.scn-good-great-man-epigram .window{position:absolute;top:10%;left:60%;width:30%;height:40%;background:radial-gradient(circle at 50% 50%,#c0a080 0%,#8a6a4a 100%);border-radius:4%;box-shadow:inset 0 0 20px rgba(0,0,0,.5);animation:gme-window 12s ease-in-out infinite alternate;}.scn-good-great-man-epigram .desk{position:absolute;bottom:20%;left:20%;width:60%;height:10%;background:linear-gradient(180deg,#5a4a3a,#3a2a1a);border-radius:4%;box-shadow:0 4px 8px rgba(0,0,0,.5);}.scn-good-great-man-epigram .book{position:absolute;bottom:25%;left:35%;width:20%;height:12%;background:linear-gradient(180deg,#6a5a4a,#4a3a2a);border-radius:2%;transform:rotate(-5deg);box-shadow:0 2px 4px rgba(0,0,0,.4);animation:gme-book 6s ease-in-out infinite alternate;}.scn-good-great-man-epigram .candle{position:absolute;bottom:28%;left:45%;width:3%;height:15%;background:linear-gradient(180deg,#e0c080,#b08040);border-radius:10%;box-shadow:0 0 8px 2px rgba(255,200,100,.3);animation:gme-candle 2s ease-in-out infinite alternate;}.scn-good-great-man-epigram .figure{position:absolute;bottom:18%;left:30%;width:12%;height:35%;background:linear-gradient(180deg,#1a1a1a 0%,#0a0a0a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:gme-figure 8s ease-in-out infinite;}.scn-good-great-man-epigram .glow{position:absolute;bottom:28%;left:45%;width:10%;height:10%;background:radial-gradient(circle,#ffd080 0%,transparent 100%);opacity:.4;animation:gme-glow 3s ease-in-out infinite alternate;}
@keyframes gme-window{0%{opacity:.7}50%{opacity:.9}100%{opacity:.75}}@keyframes gme-book{0%{transform:rotate(-5deg) translateY(0)}50%{transform:rotate(-3deg) translateY(-2px)}100%{transform:rotate(-5deg) translateY(0)}}@keyframes gme-candle{0%{transform:scaleY(1) scaleX(1)}50%{transform:scaleY(1.05) scaleX(0.95)}100%{transform:scaleY(1) scaleX(1)}}@keyframes gme-figure{0%{transform:translateY(0)}50%{transform:translateY(-4px)}100%{transform:translateY(0)}}@keyframes gme-glow{0%{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}100%{opacity:.4;transform:scale(1.05)}}

.scn-a-character-two { background: linear-gradient(180deg, #1a1210 0%, #2a1e18 50%, #0e0a08 100%), radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%); }
.scn-a-character-two .wall { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #1f1512 100%); }
.scn-a-character-two .window { position:absolute; top:10%; left:20%; width:35%; height:40%; background: linear-gradient(180deg, #1a2a3a 0%, #0e1822 100%); border: 3px solid #2a1e18; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-a-character-two .bookshelf { position:absolute; bottom:15%; right:5%; width:30%; height:50%; background: linear-gradient(90deg, #3a2a1a 0%, #2a1e18 50%, #1a1210 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-a-character-two .perch { position:absolute; bottom:45%; left:30%; width:20%; height:4px; background: #4a3a2a; border-radius: 2px; }
.scn-a-character-two .bird { position:absolute; bottom:46%; left:35%; width:20px; height:16px; background: radial-gradient(ellipse at 50% 40%, #6a5a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40%; animation: aj2-bird 3s ease-in-out infinite; transform-origin: bottom center; }
.scn-a-character-two .bat { position:absolute; top:15%; right:25%; width:24px; height:12px; background: #1a1210; border-radius: 50% 50% 0 0; animation: aj2-bat 5s ease-in-out infinite alternate; transform-origin: top center; box-shadow: 0 -2px 4px rgba(0,0,0,.3); }
.scn-a-character-two .chair { position:absolute; bottom:5%; left:15%; width:30%; height:25%; background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%); border-radius: 10% 10% 20% 20%; }
@keyframes aj2-bird { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes aj2-bat { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(0deg) translateX(8px); } 100% { transform: rotate(5deg) translateX(0); } }

.scn-a-character-three { background: linear-gradient(180deg, #1e1410 0%, #2a1c16 50%, #0e0a08 100%), radial-gradient(ellipse at 50% 60%, #2a1c16 0%, transparent 70%); }
.scn-a-character-three .wall { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #1a100c 100%); }
.scn-a-character-three .desk { position:absolute; bottom:10%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1e18 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.4); }
.scn-a-character-three .figure { position:absolute; bottom:26%; left:35%; width:22px; height:50px; background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aj3-figure 6s ease-in-out infinite; }
.scn-a-character-three .quill { position:absolute; bottom:30%; left:50%; width:4px; height:30px; background: #4a3a2a; transform: rotate(30deg); transform-origin: bottom left; animation: aj3-quill 2s ease-in-out infinite; }
.scn-a-character-three .inkwell { position:absolute; bottom:20%; left:47%; width:16px; height:12px; background: #1a1210; border-radius: 30% 30% 40% 40%; }
.scn-a-character-three .candle { position:absolute; bottom:30%; right:25%; width:10px; height:30px; background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%); border-radius: 2px; box-shadow: 0 0 12px 4px #c8a060; animation: aj3-candle 4s ease-in-out infinite alternate; }
.scn-a-character-three .paper { position:absolute; bottom:16%; left:45%; width:40px; height:30px; background: #2a1e18; border-radius: 2px; transform: rotate(-10deg); }
@keyframes aj3-figure { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes aj3-quill { 0% { transform: rotate(25deg) scaleY(1); } 50% { transform: rotate(35deg) scaleY(1.1); } 100% { transform: rotate(25deg) scaleY(1); } }
@keyframes aj3-candle { 0% { box-shadow: 0 0 8px 2px #c8a060; } 50% { box-shadow: 0 0 18px 6px #f0c080; } 100% { box-shadow: 0 0 8px 2px #c8a060; } }

.scn-a-character-four { background: linear-gradient(180deg, #1c1410 0%, #2a2018 50%, #0e0a08 100%), radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%); }
.scn-a-character-four .curtain-left { position:absolute; top:0; left:0; width:25%; height:100%; background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%); border-radius: 0 30% 30% 0 / 0 20% 20% 0; animation: aj4-curtain 10s ease-in-out infinite alternate; }
.scn-a-character-four .curtain-right { position:absolute; top:0; right:0; width:25%; height:100%; background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%); border-radius: 30% 0 0 30% / 20% 0 0 20%; animation: aj4-curtain 10s ease-in-out infinite alternate-reverse; }
.scn-a-character-four .podium { position:absolute; bottom:10%; left:30%; width:40%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1e18 100%); border-radius: 20% 20% 10% 10%; }
.scn-a-character-four .scroll { position:absolute; bottom:20%; left:35%; width:30%; height:8%; background: #4a3a2a; border-radius: 2px; transform: rotate(-5deg); animation: aj4-scroll 8s ease-in-out infinite; }
.scn-a-character-four .block-a { position:absolute; bottom:15%; left:25%; width:20px; height:20px; background: #5a4a3a; border-radius: 2px; animation: aj4-block 4s ease-in-out infinite; }
.scn-a-character-four .block-b { position:absolute; bottom:12%; right:28%; width:20px; height:20px; background: #6a5a4a; border-radius: 2px; animation: aj4-block 4s ease-in-out infinite 2s; }
.scn-a-character-four .hat { position:absolute; bottom:45%; left:42%; width:30px; height:20px; background: #1a1210; border-radius: 40% 40% 10% 10%; transform: rotate(10deg); animation: aj4-hat 6s ease-in-out infinite; }
.scn-a-character-four .star { position:absolute; top:15%; left:48%; width:12px; height:12px; background: #c8a060; clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); animation: aj4-star 3s ease-in-out infinite alternate; box-shadow: 0 0 10px 2px #c8a060; }
@keyframes aj4-curtain { 0% { transform: scaleX(1); } 100% { transform: scaleX(0.9); } }
@keyframes aj4-scroll { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes aj4-block { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-6px) rotate(15deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes aj4-hat { 0% { transform: rotate(8deg) translateX(0); } 50% { transform: rotate(12deg) translateX(4px); } 100% { transform: rotate(8deg) translateX(0); } }
@keyframes aj4-star { 0% { transform: rotate(0) scale(1); opacity:0.7; } 100% { transform: rotate(30deg) scale(1.2); opacity:1; } }

.scn-a-character-five { background: linear-gradient(180deg, #1a1410 0%, #2a2018 50%, #0e0a08 100%), radial-gradient(ellipse at 50% 80%, #2a1c16 0%, transparent 70%); }
.scn-a-character-five .wall { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #1a100c 100%); }
.scn-a-character-five .fountain-left { position:absolute; bottom:15%; left:15%; width:20%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e18 100%); border-radius: 30% 30% 10% 10%; animation: aj5-fountain 4s ease-in-out infinite alternate; }
.scn-a-character-five .fountain-right { position:absolute; bottom:15%; right:15%; width:20%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e18 100%); border-radius: 30% 30% 10% 10%; animation: aj5-fountain 4s ease-in-out infinite alternate 2s; }
.scn-a-character-five .basin { position:absolute; bottom:5%; left:10%; width:80%; height:10%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border-radius: 50% 50% 20% 20%; }
.scn-a-character-five .lady { position:absolute; bottom:25%; left:42%; width:20px; height:45px; background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aj5-lady 5s ease-in-out infinite; }
.scn-a-character-five .flower { position:absolute; bottom:30%; left:48%; width:8px; height:12px; background: #c8553d; border-radius: 50%; animation: aj5-flower 3s ease-in-out infinite; box-shadow: 0 0 6px 2px #c8553d; }
.scn-a-character-five .cane { position:absolute; bottom:23%; left:35%; width:4px; height:30px; background: #2a1e18; transform: rotate(-20deg); transform-origin: bottom left; animation: aj5-cane 6s ease-in-out infinite; }
@keyframes aj5-fountain { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes aj5-lady { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes aj5-flower { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes aj5-cane { 0% { transform: rotate(-18deg) translateX(0); } 50% { transform: rotate(-22deg) translateX(4px); } 100% { transform: rotate(-18deg) translateX(0); } }

.scn-title-page-vol2 { background: linear-gradient(180deg, #2c1f14 0%, #1a100a 40%, #0f0905 100%), radial-gradient(ellipse at 50% 60%, #3d2a1a 0%, transparent 100%); }
.scn-title-page-vol2 .desk { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #3d2a1a 0%, #2c1f14 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-title-page-vol2 .book-left { position: absolute; bottom: 22%; left: 25%; width: 25%; height: 50%; background: linear-gradient(110deg, #6b4c3a 0%, #4a3325 100%); border-radius: 4% 0 0 4%; box-shadow: -10px 12px 20px rgba(0,0,0,.5); transform: perspective(800px) rotateY(12deg); }
.scn-title-page-vol2 .book-right { position: absolute; bottom: 22%; right: 25%; width: 25%; height: 50%; background: linear-gradient(70deg, #6b4c3a 0%, #4a3325 100%); border-radius: 0 4% 4% 0; box-shadow: 10px 12px 20px rgba(0,0,0,.5); transform: perspective(800px) rotateY(-12deg); }
.scn-title-page-vol2 .page-glow { position: absolute; bottom: 24%; left: 35%; width: 30%; height: 44%; background: radial-gradient(ellipse at 50% 40%, #f5dbb0 0%, #cfa776 50%, transparent 70%); border-radius: 2%; opacity: .9; box-shadow: 0 0 40px 20px rgba(207,167,118,.25), inset 0 0 60px #a77a4e; animation: tp2-glow 6s ease-in-out infinite alternate; }
.scn-title-page-vol2 .candle { position: absolute; bottom: 32%; left: 62%; width: 12px; height: 50px; background: linear-gradient(180deg, #f0dbb0 0%, #d4a56a 40%, #6b4c3a 100%); border-radius: 40% 40% 10% 10%; transform: rotate(4deg); animation: tp2-candle 4s ease-in-out infinite; }
.scn-title-page-vol2 .candle-glow { position: absolute; bottom: 58%; left: 61.5%; width: 40px; height: 40px; background: radial-gradient(circle, #ffdbb0 0%, #d48a40 30%, transparent 50%); border-radius: 50%; filter: blur(8px); opacity: .7; animation: tp2-glow 2s ease-in-out infinite alternate; }
.scn-title-page-vol2 .shadow-shape { position: absolute; bottom: 18%; left: 20%; width: 60%; height: 20%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.3) 30%, transparent 70%, rgba(0,0,0,.2) 100%); filter: blur(8px); animation: tp2-shadow 12s ease-in-out infinite alternate; }
@keyframes tp2-glow { 0% { opacity: .8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: .85; transform: scale(.98); } }
@keyframes tp2-candle { 0%,100% { transform: rotate(2deg) scaleY(1); } 50% { transform: rotate(6deg) scaleY(1.02); } }
@keyframes tp2-shadow { 0% { opacity: .3; transform: translateX(-5px); } 50% { opacity: .5; transform: translateX(5px); } 100% { opacity: .35; transform: translateX(0); } }

.scn-epigrams-list { background: linear-gradient(180deg, #2a1e14 0%, #1a120a 50%, #0f0a05 100%), radial-gradient(ellipse at 50% 70%, #3d2a1a 0%, transparent 100%); }
.scn-epigrams-list .desk { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #3d2a1a 0%, #2c1f14 100%); border-radius: 15% 15% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-epigrams-list .scroll { position: absolute; bottom: 25%; left: 30%; width: 40%; height: 55%; background: linear-gradient(90deg, #cfa776 0%, #e8d4b0 30%, #cfa776 50%, #d9c09a 70%, #bfa37e 100%); border-radius: 20% 20% 2% 2% / 10% 10% 2% 2%; box-shadow: 0 15px 40px rgba(0,0,0,.5), inset 0 0 60px rgba(207,167,118,.5); transform: perspective(600px) rotateX(4deg); }
.scn-epigrams-list .line1, .scn-epigrams-list .line2, .scn-epigrams-list .line3 { position: absolute; left: 35%; height: 2px; background: linear-gradient(90deg, transparent 5%, #4a3325 20%, #6b4c3a 50%, #4a3325 80%, transparent 95%); border-radius: 40%; box-shadow: 0 1px 3px rgba(0,0,0,.3); }
.scn-epigrams-list .line1 { bottom: 55%; width: 30%; animation: epi-line 8s ease-in-out infinite; }
.scn-epigrams-list .line2 { bottom: 48%; width: 50%; animation: epi-line 12s ease-in-out infinite reverse; }
.scn-epigrams-list .line3 { bottom: 41%; width: 20%; animation: epi-line 10s ease-in-out infinite 2s; }
.scn-epigrams-list .quill { position: absolute; bottom: 58%; right: 32%; width: 50px; height: 80px; background: linear-gradient(180deg, #8c6b4e 0%, #4a3325 40%, transparent 70%); border-radius: 20% 20% 40% 40%; clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); transform: rotate(-15deg); transform-origin: bottom center; animation: epi-quill 5s ease-in-out infinite; }
.scn-epigrams-list .inkwell { position: absolute; bottom: 28%; right: 35%; width: 20px; height: 18px; background: radial-gradient(circle, #5a4a3a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-epigrams-list .glow-spot { position: absolute; bottom: 45%; left: 38%; width: 60px; height: 60px; background: radial-gradient(circle, #ffdbb0 0%, #d48a40 30%, transparent 60%); border-radius: 50%; filter: blur(20px); opacity: .4; animation: epi-glow 7s ease-in-out infinite alternate; }
@keyframes epi-line { 0% { opacity: .5; transform: scaleX(.95); } 50% { opacity: 1; transform: scaleX(1.05); } 100% { opacity: .6; transform: scaleX(.95); } }
@keyframes epi-quill { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-3px); } }
@keyframes epi-glow { 0% { opacity: .3; transform: scale(1); } 50% { opacity: .5; transform: scale(1.1); } 100% { opacity: .4; transform: scale(.95); } }

.scn-table-of-contents { background: linear-gradient(180deg, #2c1f14 0%, #1a100a 50%, #0f0a05 100%), radial-gradient(ellipse at 40% 50%, #3d2a1a 0%, transparent 100%); }
.scn-table-of-contents .desk { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3d2a1a 0%, #2c1f14 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-table-of-contents .paper-back { position: absolute; bottom: 18%; left: 20%; width: 60%; height: 65%; background: linear-gradient(180deg, #d4b38a 0%, #bfa37e 100%); border-radius: 2%; box-shadow: 4px 4px 15px rgba(0,0,0,.3); transform: rotate(-2deg); transform-origin: left center; animation: toc-paper 15s ease-in-out infinite; }
.scn-table-of-contents .paper-mid { position: absolute; bottom: 16%; left: 22%; width: 56%; height: 63%; background: linear-gradient(180deg, #e0c7a4 0%, #cfa776 100%); border-radius: 2%; box-shadow: 2px 2px 10px rgba(0,0,0,.25); transform: rotate(1deg); animation: toc-paper 18s ease-in-out infinite alternate; }
.scn-table-of-contents .paper-front { position: absolute; bottom: 14%; left: 24%; width: 52%; height: 60%; background: linear-gradient(180deg, #edd7b8 0%, #d9c09a 100%); border-radius: 2%; box-shadow: 0 2px 8px rgba(0,0,0,.2); transform: rotate(-1deg); }
.scn-table-of-contents .line-a, .scn-table-of-contents .line-b, .scn-table-of-contents .line-c, .scn-table-of-contents .line-d { position: absolute; left: 30%; height: 2px; background: linear-gradient(90deg, transparent 10%, #4a3325 30%, #6b4c3a 60%, #4a3325 85%, transparent 100%); border-radius: 40%; }
.scn-table-of-contents .line-a { bottom: 60%; width: 40%; animation: toc-line 10s ease-in-out infinite; }
.scn-table-of-contents .line-b { bottom: 52%; width: 55%; animation: toc-line 14s ease-in-out infinite reverse; }
.scn-table-of-contents .line-c { bottom: 44%; width: 30%; animation: toc-line 12s ease-in-out infinite 3s; }
.scn-table-of-contents .line-d { bottom: 36%; width: 50%; animation: toc-line 16s ease-in-out infinite 1s; }
.scn-table-of-contents .page-glow { position: absolute; bottom: 30%; left: 35%; width: 30%; height: 30%; background: radial-gradient(ellipse, #f5dbb0 0%, transparent 70%); opacity: .3; animation: toc-glow 8s ease-in-out infinite alternate; }
@keyframes toc-paper { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes toc-line { 0% { opacity: .4; transform: scaleX(.9) translateX(0); } 50% { opacity: .8; transform: scaleX(1.05) translateX(3px); } 100% { opacity: .5; transform: scaleX(.95) translateX(-2px); } }
@keyframes toc-glow { 0% { opacity: .2; transform: scale(1); } 50% { opacity: .4; transform: scale(1.05); } 100% { opacity: .25; transform: scale(.95); } }

.scn-appendix-one-content { background: linear-gradient(180deg, #2c1f14 0%, #1a100a 50%, #0f0a05 100%), radial-gradient(ellipse at 60% 40%, #3d2a1a 0%, transparent 100%); }
.scn-appendix-one-content .desk { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #3d2a1a 0%, #2c1f14 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 25px rgba(0,0,0,.6); }
.scn-appendix-one-content .envelope { position: absolute; bottom: 20%; left: 28%; width: 44%; height: 50%; background: linear-gradient(110deg, #bfa37e 0%, #d4b38a 50%, #c49a6e 100%); border-radius: 4%; box-shadow: 8px 12px 25px rgba(0,0,0,.4), inset 0 0 40px rgba(0,0,0,.1); transform: rotate(-3deg); animation: app-env 12s ease-in-out infinite; }
.scn-appendix-one-content .paper-note { position: absolute; bottom: 28%; left: 34%; width: 32%; height: 35%; background: linear-gradient(180deg, #edd7b8 0%, #d9c09a 100%); border-radius: 2%; box-shadow: 2px 4px 12px rgba(0,0,0,.3); transform: rotate(1deg); animation: app-paper 9s ease-in-out infinite alternate; }
.scn-appendix-one-content .seal { position: absolute; bottom: 30%; left: 47%; width: 20px; height: 20px; background: radial-gradient(circle at 50% 50%, #a0461a 0%, #5e1a1d 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-appendix-one-content .note-line1, .scn-appendix-one-content .note-line2 { position: absolute; left: 38%; height: 2px; background: linear-gradient(90deg, transparent 10%, #4a3325 30%, #6b4c3a 60%, transparent 90%); border-radius: 40%; }
.scn-appendix-one-content .note-line1 { bottom: 45%; width: 25%; animation: app-line 11s ease-in-out infinite; }
.scn-appendix-one-content .note-line2 { bottom: 38%; width: 35%; animation: app-line 13s ease-in-out infinite reverse; }
.scn-appendix-one-content .envelope-glow { position: absolute; bottom: 25%; left: 35%; width: 30%; height: 30%; background: radial-gradient(ellipse, #f5dbb0 0%, transparent 60%); opacity: .25; animation: app-glow 7s ease-in-out infinite alternate; }
.scn-appendix-one-content .shadow-fold { position: absolute; bottom: 20%; left: 30%; width: 40%; height: 10%; background: linear-gradient(90deg, transparent 20%, rgba(0,0,0,.2) 50%, transparent 80%); filter: blur(4px); }
@keyframes app-env { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-3px); } 100% { transform: rotate(-4deg) translateY(2px); } }
@keyframes app-paper { 0% { transform: rotate(1deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(0deg) scale(.98); } }
@keyframes app-line { 0% { opacity: .4; transform: translateX(-3px); } 50% { opacity: .7; transform: translateX(3px); } 100% { opacity: .5; transform: translateX(0); } }
@keyframes app-glow { 0% { opacity: .2; transform: scale(1); } 50% { opacity: .4; transform: scale(1.08); } 100% { opacity: .3; transform: scale(.95); } }

/* recollections-love-anticipation */
.scn-recollections-love-anticipation {
  background:
    linear-gradient(180deg, #b8a88a 0%, #c4b59a 40%, #a18f72 100%),
    radial-gradient(ellipse at 50% 0%, #d4c8b0 0%, transparent 60%);
}
.scn-recollections-love-anticipation .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0a088 0%, #c8bca0 50%, #d4c8b0 100%);
  animation: rla-sky 30s ease-in-out infinite alternate;
}
.scn-recollections-love-anticipation .cloud {
  position: absolute; top: 15%; width: 100px; height: 30px;
  background: linear-gradient(90deg, rgba(180,165,140,0.6), rgba(200,190,170,0.3));
  border-radius: 50%; filter: blur(6px);
}
.scn-recollections-love-anticipation .c1 { left: -10%; animation: rla-drift 40s linear infinite; }
.scn-recollections-love-anticipation .c2 { left: 30%; width: 130px; height: 25px; animation: rla-drift 55s linear infinite 10s; }
.scn-recollections-love-anticipation .tree {
  position: absolute; bottom: 30%; left: 20%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: rla-sway 6s ease-in-out infinite;
}
.scn-recollections-love-anticipation .figure-sil {
  position: absolute; bottom: 28%; left: 55%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #2a2a2a, #1a1a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rla-fig 4s ease-in-out infinite;
}
.scn-recollections-love-anticipation .flower {
  position: absolute; bottom: 25%; left: 45%; width: 8px; height: 12px;
  background: radial-gradient(circle, #b87878 0%, #805050 70%);
  border-radius: 50%; box-shadow: 0 0 8px 4px rgba(184,120,120,0.4);
  animation: rla-flower 5s ease-in-out infinite;
}
.scn-recollections-love-anticipation .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7a62, #6a5a42);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
@keyframes rla-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes rla-drift { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }
@keyframes rla-sway { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes rla-fig { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes rla-flower { 0%,100% { transform: scale(1); } 50% { transform: scale(1.1); } }

/* recollections-love-greta */
.scn-recollections-love-greta {
  background:
    linear-gradient(180deg, #2a2a1a 0%, #3a2a1a 40%, #1a1a0a 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-recollections-love-greta .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a2e1e, #2a1e0e);
  border-bottom: 2px solid #4a3a2a;
}
.scn-recollections-love-greta .window-g {
  position: absolute; top: 15%; left: 50%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #5a4a3a, #3a2a1a);
  border: 4px solid #2a1a0a;
  box-shadow: inset 0 0 20px 10px rgba(100,80,60,0.4);
  transform: translateX(-50%);
  border-radius: 4px;
}
.scn-recollections-love-greta .table-g {
  position: absolute; bottom: 22%; left: 40%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.scn-recollections-love-greta .figure-g {
  position: absolute; bottom: 20%; left: 50%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: rlg-figure 5s ease-in-out infinite;
}
.scn-recollections-love-greta .candle-g {
  position: absolute; bottom: 25%; left: 36%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #f0d090, #c09050);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px 8px #e0b060;
  animation: rlg-candle 3s ease-in-out infinite alternate;
}
.scn-recollections-love-greta .stream {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, transparent 0%, #2a3a3a 40%, #1a2a2a 100%);
  border-radius: 50% / 30% 30% 100% 100%;
  animation: rlg-stream 8s ease-in-out infinite;
}
@keyframes rlg-figure { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } }
@keyframes rlg-candle { 0% { opacity: 0.8; transform: scaleY(1); } 100% { opacity: 1; transform: scaleY(1.05); } }
@keyframes rlg-stream { 0%,100% { opacity: 0.5; } 50% { opacity: 1; } }

/* recollections-love-notes */
.scn-recollections-love-notes {
  background:
    linear-gradient(180deg, #1a1a0a 0%, #2a1a0a 50%, #0a0a00 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 80%);
}
.scn-recollections-love-notes .desk {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a, #1a0a00);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-recollections-love-notes .papers {
  position: absolute; bottom: 20%; left: 55%; width: 50px; height: 35px;
  background: linear-gradient(135deg, #c8b89a, #a09070);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
  animation: rln-papers 6s ease-in-out infinite;
}
.scn-recollections-love-notes .inkwell {
  position: absolute; bottom: 18%; left: 50%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #1a1a1a, #0a0a0a);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.7);
}
.scn-recollections-love-notes .candle-n {
  position: absolute; bottom: 22%; left: 30%; width: 10px; height: 28px;
  background: linear-gradient(180deg, #f0d090, #c09050);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 14px 6px #e0b060;
  animation: rln-candle 4s ease-in-out infinite alternate;
}
.scn-recollections-love-notes .glow-n {
  position: absolute; bottom: 20%; left: 28%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(224,176,96,0.4) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}
.scn-recollections-love-notes .quill {
  position: absolute; bottom: 18%; left: 42%; width: 4px; height: 28px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 0 0 40% 40%;
  transform: rotate(25deg);
  transform-origin: bottom center;
  animation: rln-quill 3s ease-in-out infinite;
}
@keyframes rln-papers { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes rln-candle { 0% { opacity: 0.8; transform: scaleY(1); } 100% { opacity: 1; transform: scaleY(1.03); } }
@keyframes rln-quill { 0%,100% { transform: rotate(25deg); } 50% { transform: rotate(20deg) scaleY(0.95); } }

/* to-two-sisters-intro */
.scn-to-two-sisters-intro {
  background:
    linear-gradient(180deg, #2a201a 0%, #3a2a1a 40%, #1a100a 100%),
    radial-gradient(ellipse at 50% 90%, #4a3a2a 0%, transparent 60%);
}
.scn-to-two-sisters-intro .bg-sis {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
}
.scn-to-two-sisters-intro .floor-sis {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
}
.scn-to-two-sisters-intro .figure-a {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1a1a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: tts-fig-a 6s ease-in-out infinite;
}
.scn-to-two-sisters-intro .figure-b {
  position: absolute; bottom: 20%; left: 65%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1a1a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: tts-fig-b 6s ease-in-out infinite 1s;
}
.scn-to-two-sisters-intro .dove {
  position: absolute; bottom: 40%; left: 50%; width: 14px; height: 10px;
  background: linear-gradient(135deg, #c8b8a0, #a09078);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 6px 2px rgba(200,184,160,0.3);
  transform: translateX(-50%);
  animation: tts-dove 8s ease-in-out infinite;
}
.scn-to-two-sisters-intro .hearth-glow {
  position: absolute; bottom: 10%; left: 20%; width: 80px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,120,60,0.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: tts-hearth 4s ease-in-out infinite alternate;
}
@keyframes tts-fig-a { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } }
@keyframes tts-fig-b { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes tts-dove { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-5px) scale(1.05); } }
@keyframes tts-hearth { 0% { opacity: 0.7; transform: scale(1); } 100% { opacity: 1; transform: scale(1.1); } }

/* dejection-variants-nine */
.scn-dejection-variants-nine {
  background: linear-gradient(180deg, #1a151a 0%, #2a2220 40%, #3a2e28 100%), radial-gradient(ellipse at 50% 30%, #3a2e28 0%, transparent 70%);
}
.scn-dejection-variants-nine .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2220 0%, #1a151a 100%); opacity: 0.9;
}
.scn-dejection-variants-nine .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-dejection-variants-nine .paper-a {
  position: absolute; bottom: 18%; left: 22%; width: 40%; height: 14%; background: linear-gradient(135deg, #d4c8a0 0%, #b8a880 50%, #a09070 100%); border-radius: 2px; transform: rotate(-3deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.4); animation: dj9-paper 12s ease-in-out infinite alternate;
}
.scn-dejection-variants-nine .paper-b {
  position: absolute; bottom: 14%; left: 30%; width: 35%; height: 12%; background: linear-gradient(135deg, #c0b898 0%, #a89878 100%); border-radius: 2px; transform: rotate(2deg); box-shadow: 1px 1px 4px rgba(0,0,0,0.3); animation: dj9-paper 14s ease-in-out infinite alternate reverse;
}
.scn-dejection-variants-nine .inkwell {
  position: absolute; bottom: 22%; left: 60%; width: 10%; height: 8%; background: radial-gradient(circle at 50% 30%, #3a2a1a 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.scn-dejection-variants-nine .candle {
  position: absolute; bottom: 24%; left: 55%; width: 3%; height: 16%; background: linear-gradient(180deg, #e8d8c0 0%, #c0a880 60%, #8a6a4a 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 10px rgba(255,200,150,0.3);
}
.scn-dejection-variants-nine .flame {
  position: absolute; bottom: 40%; left: 55.5%; width: 1.5%; height: 6%; background: radial-gradient(ellipse at 50% 80%, #ffdd80 0%, #ffa040 40%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: dj9-flame 2s ease-in-out infinite alternate;
}
.scn-dejection-variants-nine .glow {
  position: absolute; bottom: 20%; left: 40%; width: 30%; height: 40%; background: radial-gradient(ellipse at 50% 50%, rgba(255,200,150,0.15) 0%, transparent 70%); pointer-events: none; animation: dj9-glow 4s ease-in-out infinite alternate;
}
.scn-dejection-variants-nine .silhouette {
  position: absolute; bottom: 0; left: 15%; width: 20%; height: 45%; background: linear-gradient(180deg, #1a1515 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center; animation: dj9-figure 8s ease-in-out infinite;
}
@keyframes dj9-paper {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(-4deg) translateY(1px); }
}
@keyframes dj9-flame {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.9; }
  50% { transform: scaleY(1.2) scaleX(0.8); opacity: 1; }
  100% { transform: scaleY(0.9) scaleX(1.1); opacity: 0.8; }
}
@keyframes dj9-glow {
  0% { opacity: 0.6; }
  100% { opacity: 1; }
}
@keyframes dj9-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(-2px) rotate(-1deg); }
}

/* dejection-variants-ten */
.scn-dejection-variants-ten {
  background: linear-gradient(180deg, #1c1618 0%, #2a1f1c 50%, #3a2a22 100%), radial-gradient(ellipse at 60% 40%, #3a2a22 0%, transparent 60%);
}
.scn-dejection-variants-ten .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1f1c 0%, #140e0e 100%); opacity: 0.85;
}
.scn-dejection-variants-ten .chair {
  position: absolute; bottom: 0; left: 20%; width: 30%; height: 50%; background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 -6px 12px rgba(0,0,0,0.5); animation: dj10-chair 10s ease-in-out infinite alternate;
}
.scn-dejection-variants-ten .book-a {
  position: absolute; bottom: 12%; left: 25%; width: 12%; height: 18%; background: linear-gradient(180deg, #705a3a 0%, #4a3620 100%); border-radius: 2px; transform: rotate(8deg); box-shadow: 2px 2px 8px rgba(0,0,0,0.4); animation: dj10-book 15s ease-in-out infinite alternate;
}
.scn-dejection-variants-ten .book-b {
  position: absolute; bottom: 10%; left: 32%; width: 10%; height: 15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 1px 1px 6px rgba(0,0,0,0.3); animation: dj10-book 18s ease-in-out infinite alternate reverse;
}
.scn-dejection-variants-ten .book-c {
  position: absolute; bottom: 8%; left: 38%; width: 14%; height: 20%; background: linear-gradient(180deg, #8a6a4a 0%, #5a4230 100%); border-radius: 2px; transform: rotate(12deg); box-shadow: 2px 2px 8px rgba(0,0,0,0.4); animation: dj10-book 12s ease-in-out infinite alternate;
}
.scn-dejection-variants-ten .lamp {
  position: absolute; bottom: 35%; left: 55%; width: 4%; height: 20%; background: linear-gradient(180deg, #c0a060 0%, #8a6a3a 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 20px rgba(255,200,120,0.2);
}
.scn-dejection-variants-ten .shadow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 50%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%); pointer-events: none;
}
@keyframes dj10-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes dj10-book {
  0% { transform: rotate(8deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(10deg) translateY(0); }
}

/* dejection-variants-eleven */
.scn-dejection-variants-eleven {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 100%), radial-gradient(ellipse at 30% 50%, #2a2a3a 0%, transparent 60%);
}
.scn-dejection-variants-eleven .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); opacity: 0.8;
}
.scn-dejection-variants-eleven .window-frame {
  position: absolute; top: 15%; left: 25%; width: 50%; height: 55%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 8px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); border: 4px solid #2a2a3a;
}
.scn-dejection-variants-eleven .window-pane {
  position: absolute; top: 18%; left: 28%; width: 44%; height: 48%; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 4px; opacity: 0.4; animation: dj11-pane 20s ease-in-out infinite alternate;
}
.scn-dejection-variants-eleven .curtain-left {
  position: absolute; top: 15%; left: 20%; width: 10%; height: 60%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px 0 0 4px; box-shadow: 2px 0 8px rgba(0,0,0,0.3); animation: dj11-curtain 14s ease-in-out infinite alternate;
}
.scn-dejection-variants-eleven .curtain-right {
  position: absolute; top: 15%; right: 20%; width: 10%; height: 60%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 0 4px 4px 0; box-shadow: -2px 0 8px rgba(0,0,0,0.3); animation: dj11-curtain 16s ease-in-out infinite alternate reverse;
}
.scn-dejection-variants-eleven .plant {
  position: absolute; bottom: 10%; left: 15%; width: 18%; height: 30%; background: radial-gradient(ellipse at 50% 100%, #4a6a3a 0%, #2a4a1a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; animation: dj11-plant 9s ease-in-out infinite alternate;
}
.scn-dejection-variants-eleven .pot {
  position: absolute; bottom: 4%; left: 16%; width: 16%; height: 8%; background: linear-gradient(180deg, #8a5a3a 0%, #5a3a22 100%); border-radius: 4px 4px 8px 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
@keyframes dj11-pane {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.35; }
}
@keyframes dj11-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(4px); }
  100% { transform: translateX(-2px); }
}
@keyframes dj11-plant {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}

/* dejection-variants-twelve */
.scn-dejection-variants-twelve {
  background: linear-gradient(180deg, #1a1210 0%, #282018 50%, #3a2a20 100%), radial-gradient(ellipse at 50% 60%, #3a2a20 0%, transparent 70%);
}
.scn-dejection-variants-twelve .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #282018 0%, #120e0c 100%); opacity: 0.9;
}
.scn-dejection-variants-twelve .fireplace {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,0.6);
}
.scn-dejection-variants-twelve .embers {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 12%; background: radial-gradient(ellipse at 50% 50%, #ff6a2a 0%, #cc3a1a 40%, #8a1a0a 80%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: dj12-ember 3s ease-in-out infinite alternate;
}
.scn-dejection-variants-twelve .log {
  position: absolute; bottom: 8%; left: 33%; width: 34%; height: 6%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 10px; box-shadow: 0 2px 8px rgba(0,0,0,0.5); animation: dj12-log 20s ease-in-out infinite alternate;
}
.scn-dejection-variants-twelve .mantel {
  position: absolute; top: calc(100% - 55%); left: 18%; right: 18%; height: 4%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-dejection-variants-twelve .clock {
  position: absolute; top: calc(100% - 58%); left: 38%; width: 8%; height: 12%; background: radial-gradient(circle at 50% 40%, #8a7a6a 0%, #4a3a2a 100%); border-radius: 50%; box-shadow: 0 0 12px rgba(0,0,0,0.5); animation: dj12-clock 60s linear infinite;
}
.scn-dejection-variants-twelve .picture-frame {
  position: absolute; top: calc(100% - 62%); right: 25%; width: 12%; height: 16%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border: 3px solid #4a3a2a; border-radius: 4px; opacity: 0.6;
}
@keyframes dj12-ember {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.1) scaleY(1.05); }
  100% { opacity: 0.7; transform: scaleX(0.95); }
}
@keyframes dj12-log {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes dj12-clock {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.scn-sun-globe { background: linear-gradient(180deg, #6a4a3a 0%, #b08050 40%, #d4a060 70%, #f0c868 100%), radial-gradient(ellipse at 50% 100%, #f0c868 0%, transparent 70%); }
.scn-sun-globe .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #4a3a6a 0%, #b08050 100%); animation: sg-sky 15s ease-in-out infinite alternate; }
.scn-sun-globe .mountain { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 30% 50% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,.4); animation: sg-mountain 20s ease-in-out infinite alternate; }
.scn-sun-globe .sun { position:absolute; bottom:40%; left:50%; width:60px; height:60px; border-radius:50%; background: radial-gradient(circle, #ffe080 0%, #f0a030 60%, #c06020 100%); box-shadow: 0 0 40px 20px #f0a030, 0 0 80px 40px rgba(240,160,48,.3); animation: sg-sunset 12s ease-in-out infinite alternate; }
.scn-sun-globe .cloud-a { position:absolute; bottom:55%; left:-10%; width:120px; height:20px; background: linear-gradient(180deg, rgba(255,200,100,.4) 0%, transparent 100%); border-radius:50%; filter:blur(5px); animation: sg-cloud-drift 40s linear infinite; }
.scn-sun-globe .cloud-b { position:absolute; bottom:45%; right:-10%; width:100px; height:15px; background: linear-gradient(180deg, rgba(255,200,100,.3) 0%, transparent 100%); border-radius:50%; filter:blur(4px); animation: sg-cloud-drift 50s linear infinite reverse; animation-delay:-10s; }
.scn-sun-globe .wind-ripple { position:absolute; bottom:25%; left:20%; width:30%; height:2px; background: linear-gradient(90deg, transparent, rgba(255,255,200,.3), transparent); animation: sg-wind 8s ease-in-out infinite; }
.scn-sun-globe .glow-haze { position:absolute; inset:30% 20% 40% 20%; background: radial-gradient(ellipse at 50% 50%, rgba(240,200,100,.15) 0%, transparent 70%); animation: sg-glow 5s ease-in-out infinite alternate; }
@keyframes sg-sky { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.8} }
@keyframes sg-mountain { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(0)} }
@keyframes sg-sunset { 0%{transform:translate(-50%,0) scale(1); opacity:.9} 50%{transform:translate(-50%,-8px) scale(1.02); opacity:1} 100%{transform:translate(-50%,0) scale(.98); opacity:.85} }
@keyframes sg-cloud-drift { 0%{transform:translateX(0)} 100%{transform:translateX(200%)} }
@keyframes sg-wind { 0%,100%{opacity:0; transform:translateX(-20%) scaleX(1)} 50%{opacity:.7; transform:translateX(20%) scaleX(1.5)} }
@keyframes sg-glow { 0%{opacity:.5} 100%{opacity:1} }

.scn-sun-globe-notes { background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 30%, #3a2a1a 70%, #2a1a0a 100%), radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%); }
.scn-sun-globe-notes .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2218 0%, #1a1208 100%); }
.scn-sun-globe-notes .desk { position:absolute; bottom:0; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #4a3a28 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,.6); }
.scn-sun-globe-notes .paper-a { position:absolute; bottom:12%; left:15%; width:40%; height:10%; background: linear-gradient(135deg, #d4c0a0 0%, #b8a080 100%); border-radius: 2px; transform:rotate(-3deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: sgn-paper 10s ease-in-out infinite alternate; }
.scn-sun-globe-notes .paper-b { position:absolute; bottom:20%; left:25%; width:35%; height:8%; background: linear-gradient(135deg, #c8b090 0%, #a88a6a 100%); border-radius: 2px; transform:rotate(2deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: sgn-paper 12s ease-in-out infinite alternate-reverse; }
.scn-sun-globe-notes .inkwell { position:absolute; bottom:25%; right:20%; width:20px; height:20px; background: radial-gradient(circle, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: sgn-ink 20s ease-in-out infinite; }
.scn-sun-globe-notes .lamp-base { position:absolute; bottom:28%; left:10%; width:30px; height:40px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 10% 10% 50% 50%; }
.scn-sun-globe-notes .lamp-glow { position:absolute; bottom:50%; left:10%; width:60px; height:60px; background: radial-gradient(circle, #f0c868 0%, #c08040 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 15px #d09050; animation: sgn-lamp 3s ease-in-out infinite alternate; }
.scn-sun-globe-notes .candle-flame { position:absolute; bottom:45%; left:12%; width:8px; height:12px; background: radial-gradient(circle, #ffe080 0%, #f0a030 60%, transparent 100%); border-radius: 40% 40% 60% 60%; animation: sgn-flame 2s ease-in-out infinite alternate; }
@keyframes sgn-paper { 0%{transform:rotate(-3deg) translateY(0)} 50%{transform:rotate(-1deg) translateY(-2px)} 100%{transform:rotate(-5deg) translateY(0)} }
@keyframes sgn-ink { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes sgn-lamp { 0%{opacity:.7; box-shadow:0 0 20px 10px #d09050} 100%{opacity:1; box-shadow:0 0 40px 20px #e0a060} }
@keyframes sgn-flame { 0%{transform:scale(.8) translateY(0); opacity:.8} 50%{transform:scale(1.1) translateY(-3px); opacity:1} 100%{transform:scale(.9) translateY(-1px); opacity:.9} }

.scn-what-is-life { background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 40%, #0a0a0a 100%), radial-gradient(ellipse at 50% 50%, #1a1a1a 0%, #000 70%); }
.scn-what-is-life .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #050505 0%, #0a0a0a 100%); animation: wil-bg 20s ease-in-out infinite alternate; }
.scn-what-is-life .table { position:absolute; bottom:0; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #2a1a10 0%, #0a0505 100%); border-radius: 6px 6px 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.8); }
.scn-what-is-life .book { position:absolute; bottom:8%; left:30%; width:30%; height:15%; background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 100%); border-radius: 4px; transform:perspective(300px) rotateX(20deg); box-shadow: 0 4px 10px rgba(0,0,0,.7); animation: wil-book 15s ease-in-out infinite alternate; }
.scn-what-is-life .candle { position:absolute; bottom:30%; left:50%; width:12px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #d4b080 0%, #8a6a4a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 10px 2px rgba(200,150,80,.2); }
.scn-what-is-life .flame { position:absolute; bottom:65%; left:50%; width:10px; height:16px; transform:translateX(-50%); background: radial-gradient(circle, #ffe080 0%, #f0a030 60%, transparent 100%); border-radius: 40% 40% 60% 60%; box-shadow: 0 0 20px 8px #f0a030, 0 0 40px 16px rgba(240,160,48,.3); animation: wil-flame 1.5s ease-in-out infinite alternate; }
.scn-what-is-life .hand-shadow { position:absolute; bottom:12%; left:40%; width:40px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; transform:rotate(-15deg); animation: wil-hand 8s ease-in-out infinite; }
.scn-what-is-life .encroach-shadow { position:absolute; inset:60% 20% 20% 20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.8) 0%, transparent 100%); animation: wil-encroach 12s ease-in-out infinite alternate; }
@keyframes wil-bg { 0%{opacity:.6} 100%{opacity:1} }
@keyframes wil-book { 0%{transform:perspective(300px) rotateX(20deg) translateY(0)} 50%{transform:perspective(300px) rotateX(18deg) translateY(-2px)} 100%{transform:perspective(300px) rotateX(22deg) translateY(0)} }
@keyframes wil-flame { 0%{transform:translateX(-50%) scale(.9) rotate(-3deg); opacity:.8} 50%{transform:translateX(-50%) scale(1.1) rotate(2deg); opacity:1} 100%{transform:translateX(-50%) scale(.95) rotate(0); opacity:.9} }
@keyframes wil-hand { 0%,100%{transform:rotate(-15deg) translateY(0)} 50%{transform:rotate(-10deg) translateY(-4px)} }
@keyframes wil-encroach { 0%{opacity:.3} 100%{opacity:.8} }

.scn-date-tree-lament-intro { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 50%, #2a2a4a 0%, #000 70%); }
.scn-date-tree-lament-intro .room-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-date-tree-lament-intro .window-frame { position:absolute; top:10%; left:20%; right:20%; bottom:30%; border: 4px solid #2a1a0a; background: transparent; box-shadow: inset 0 0 30px rgba(0,0,0,.5); border-radius: 6px; }
.scn-date-tree-lament-intro .tree-trunk { position:absolute; top:20%; left:45%; width:12%; height:50%; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 20% 20% 30% 30%; transform:scaleX(.6); animation: dtl-trunk 12s ease-in-out infinite alternate; }
.scn-date-tree-lament-intro .tree-crown { position:absolute; top:5%; left:35%; width:30%; height:25%; background: linear-gradient(135deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 60% 40% 50% 50% / 40% 40% 60% 60%; filter: blur(2px); animation: dtl-crown 15s ease-in-out infinite alternate; }
.scn-date-tree-lament-intro .moon { position:absolute; top:12%; left:55%; width:30px; height:30px; background: radial-gradient(circle, #e0e0c0 0%, #a0a0a0 100%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(200,200,180,.4); animation: dtl-moon 20s ease-in-out infinite; }
.scn-date-tree-lament-intro .moon-glow { position:absolute; top:8%; left:50%; width:60px; height:60px; background: radial-gradient(circle, rgba(200,200,180,.15) 0%, transparent 70%); border-radius:50%; animation: dtl-moon-glow 10s ease-in-out infinite alternate; }
.scn-date-tree-lament-intro .cloud-a { position:absolute; top:15%; left:-10%; width:80px; height:12px; background: linear-gradient(180deg, rgba(100,100,120,.3) 0%, transparent 100%); border-radius:50%; filter:blur(4px); animation: dtl-cloud 40s linear infinite; }
.scn-date-tree-lament-intro .cloud-b { position:absolute; top:22%; right:-10%; width:60px; height:10px; background: linear-gradient(180deg, rgba(100,100,120,.2) 0%, transparent 100%); border-radius:50%; filter:blur(3px); animation: dtl-cloud 50s linear infinite reverse; animation-delay:-15s; }
@keyframes dtl-trunk { 0%{transform:scaleX(.6) translateY(0)} 50%{transform:scaleX(.6) translateY(-3px)} 100%{transform:scaleX(.6) translateY(0)} }
@keyframes dtl-crown { 0%{transform:scale(1) translateY(0)} 50%{transform:scale(1.02) translateY(-2px)} 100%{transform:scale(.98) translateY(0)} }
@keyframes dtl-moon { 0%,100%{transform:translate(0,0); opacity:.9} 50%{transform:translate(2px,-2px); opacity:1} }
@keyframes dtl-moon-glow { 0%{opacity:.4} 100%{opacity:.8} }
@keyframes dtl-cloud { 0%{transform:translateX(0)} 100%{transform:translateX(200%)} }

.scn-dejection-variants-lines {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 50%, #0f0a08 100%);
}
.scn-dejection-variants-lines .table {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 12%;
  background: linear-gradient(180deg, #4a3a30 0%, #3a2a20 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.6);
}
.scn-dejection-variants-lines .paper {
  position: absolute; bottom: 12%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(135deg, #e8dcc8 0%, #c8b898 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: dj1-paper 6s ease-in-out infinite;
}
.scn-dejection-variants-lines .lamp {
  position: absolute; bottom: 24%; left: 60%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #806040 0%, #604020 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-dejection-variants-lines .lamp-glow {
  position: absolute; bottom: 24%; left: 60%; width: 14px; height: 28px;
  background: radial-gradient(circle at 50% 20%, #ffc080 0%, transparent 70%);
  filter: blur(4px);
  animation: dj1-glow 3s ease-in-out infinite alternate;
}
.scn-dejection-variants-lines .pen {
  position: absolute; bottom: 22%; left: 45%; width: 30px; height: 4px;
  background: linear-gradient(90deg, #4a3a30 0%, #2a1a10 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  animation: dj1-pen 5s ease-in-out infinite;
}
.scn-dejection-variants-lines .chair {
  position: absolute; bottom: 10%; left: 12%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a120e 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
  animation: dj1-chair 8s ease-in-out infinite;
}
@keyframes dj1-paper {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
}
@keyframes dj1-glow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes dj1-pen {
  0%, 100% { transform: rotate(-20deg) translateX(0); }
  50% { transform: rotate(-15deg) translateX(3px); }
}
@keyframes dj1-chair {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}

.scn-dejection-variants-two {
  background: linear-gradient(180deg, #1a1614 0%, #120e0c 60%, #0a0806 100%);
}
.scn-dejection-variants-two .window-bg {
  position: absolute; top: 10%; left: 15%; right: 15%; bottom: 30%;
  background: linear-gradient(180deg, #1c202e 0%, #10141c 100%);
  border-radius: 4px;
  animation: dj2-night 12s ease-in-out infinite alternate;
}
.scn-dejection-variants-two .window-frame {
  position: absolute; top: 10%; left: 15%; right: 15%; bottom: 30%;
  border: 6px solid #3a2a20;
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  pointer-events: none;
}
.scn-dejection-variants-two .curtain-left {
  position: absolute; top: 8%; left: 12%; width: 16%; bottom: 30%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1f1a 100%);
  border-radius: 0 30% 30% 0;
  animation: dj2-curtain 10s ease-in-out infinite alternate;
}
.scn-dejection-variants-two .curtain-right {
  position: absolute; top: 8%; right: 12%; width: 16%; bottom: 30%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1f1a 100%);
  border-radius: 30% 0 0 30%;
  animation: dj2-curtain 12s ease-in-out infinite alternate-reverse;
}
.scn-dejection-variants-two .sill {
  position: absolute; bottom: 28%; left: 12%; right: 12%; height: 6%;
  background: linear-gradient(180deg, #5a4a40 0%, #3a2a20 100%);
  border-radius: 2px;
}
.scn-dejection-variants-two .figure {
  position: absolute; bottom: 28%; left: 38%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #1a1412 0%, #0c0806 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dj2-figure 6s ease-in-out infinite;
}
@keyframes dj2-night {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes dj2-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(4px); }
  100% { transform: translateX(-2px); }
}
@keyframes dj2-figure {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
}

.scn-dejection-variants-three {
  background: linear-gradient(180deg, #1f1a18 0%, #140f0d 50%, #0b0705 100%);
}
.scn-dejection-variants-three .paper-lg {
  position: absolute; top: 15%; left: 15%; width: 70%; bottom: 25%;
  background: linear-gradient(135deg, #e4d8c4 0%, #c4b498 100%);
  border-radius: 3px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: dj3-paper 8s ease-in-out infinite;
}
.scn-dejection-variants-three .inkwell {
  position: absolute; bottom: 20%; left: 30%; width: 16px; height: 18px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a120e 100%);
  border-radius: 40% 40% 30% 30%;
}
.scn-dejection-variants-three .quill {
  position: absolute; bottom: 22%; left: 28%; width: 40px; height: 6px;
  background: linear-gradient(90deg, #c8b898 0%, #e0d0b0 40%, #c8b898 100%);
  border-radius: 2px;
  transform: rotate(30deg);
  transform-origin: right center;
  animation: dj3-quill 5s ease-in-out infinite alternate;
}
.scn-dejection-variants-three .candle {
  position: absolute; bottom: 35%; left: 70%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%);
  border-radius: 4px;
}
.scn-dejection-variants-three .flame {
  position: absolute; bottom: 53%; left: 70%; width: 10px; height: 12px;
  background: radial-gradient(circle at 50% 60%, #ffd080 0%, #ff8040 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: dj3-flame 2s ease-in-out infinite alternate;
}
@keyframes dj3-paper {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(0.3deg); }
}
@keyframes dj3-quill {
  0% { transform: rotate(30deg) translateY(0); }
  50% { transform: rotate(35deg) translateY(-2px); }
  100% { transform: rotate(28deg) translateY(1px); }
}
@keyframes dj3-flame {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.8; }
  50% { transform: scaleY(1.2) scaleX(0.9); opacity: 1; }
  100% { transform: scaleY(0.9) scaleX(1.1); opacity: 0.7; }
}

.scn-dejection-variants-four {
  background: linear-gradient(180deg, #1f1815 0%, #130e0b 60%, #0a0705 100%);
}
.scn-dejection-variants-four .table-small {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #4a3a30 0%, #3a2a20 100%);
  border-radius: 2px 2px 0 0;
}
.scn-dejection-variants-four .mirror-frame {
  position: absolute; top: 12%; left: 25%; width: 50%; bottom: 35%;
  border: 8px solid #5a4a40;
  border-radius: 8px;
  background: transparent;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5), 0 0 10px rgba(0,0,0,0.3);
}
.scn-dejection-variants-four .mirror-glass {
  position: absolute; top: 14%; left: 27%; width: 46%; bottom: 37%;
  background: linear-gradient(135deg, #3a3a3a 0%, #2a2a2a 50%, #1a1a1a 100%);
  border-radius: 4px;
  opacity: 0.6;
  animation: dj4-mirror 10s ease-in-out infinite alternate;
}
.scn-dejection-variants-four .candle-sm {
  position: absolute; bottom: 12%; left: 40%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%);
  border-radius: 3px;
}
.scn-dejection-variants-four .flame-sm {
  position: absolute; bottom: 24%; left: 40%; width: 8px; height: 10px;
  background: radial-gradient(circle at 50% 50%, #ffd080 0%, #ff8040 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: dj4-flame 2.5s ease-in-out infinite alternate;
}
.scn-dejection-variants-four .shawl {
  position: absolute; bottom: 8%; left: 60%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5e3a2a 0%, #3a1f12 100%);
  border-radius: 40% 20% 20% 40%;
  transform: rotate(-10deg);
  animation: dj4-shawl 7s ease-in-out infinite;
}
@keyframes dj4-mirror {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}
@keyframes dj4-flame {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.8; }
  50% { transform: scaleY(1.3) scaleX(0.85); opacity: 1; }
  100% { transform: scaleY(0.9) scaleX(1.15); opacity: 0.6; }
}
@keyframes dj4-shawl {
  0%, 100% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-2px); }
}

.scn-kubla-khan-pleasure-dome {
  background:
    linear-gradient(180deg, #7ec8e3 0%, #b0e0f0 40%, #f2d8a0 70%, #e6b870 100%),
    radial-gradient(ellipse at 50% 0%, #fff4d6 0%, transparent 60%);
}
.scn-kubla-khan-pleasure-dome .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #5fa8d3 0%, #7ec8e3 50%, transparent 100%);
  animation: kkp-sky 15s ease-in-out infinite alternate;
}
.scn-kubla-khan-pleasure-dome .sun {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8dc 0%, #f2c94c 40%, #e6b870 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #f2c94c, 0 0 80px 40px rgba(242,201,76,.3);
  animation: kkp-sun 12s ease-in-out infinite alternate;
}
.scn-kubla-khan-pleasure-dome .dome {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 200px; height: 100px;
  background: radial-gradient(ellipse at 50% 30%, #f7e8c0 0%, #d4b080 60%, #8b6914 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 -8px 20px rgba(139,105,20,.4), inset 0 8px 20px rgba(255,255,200,.3);
  animation: kkp-dome 8s ease-in-out infinite;
}
.scn-kubla-khan-pleasure-dome .river {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(90deg, #3a7ca5 0%, #5fa8d3 50%, #3a7ca5 100%);
  border-radius: 0 0 50% 50%;
  animation: kkp-river 10s ease-in-out infinite alternate;
}
.scn-kubla-khan-pleasure-dome .trees {
  position: absolute; bottom: 35%; left: 5%; right: 5%; height: 20%;
  background:
    linear-gradient(0deg, #3a5f3a 0%, #6a9e6a 50%, transparent 100%),
    radial-gradient(ellipse at 20% 100%, #4a7a4a 0%, transparent 70%);
  border-radius: 30% 70% 0 0;
  animation: kkp-trees 20s ease-in-out infinite alternate;
}
.scn-kubla-khan-pleasure-dome .walls {
  position: absolute; bottom: 38%; left: 15%; right: 15%; height: 8%;
  background: linear-gradient(90deg, #a08060 0%, #c4a882 50%, #a08060 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
  animation: kkp-walls 6s ease-in-out infinite alternate;
}
.scn-kubla-khan-pleasure-dome .tower {
  position: absolute; bottom: 38%; left: 70%; width: 24px; height: 80px;
  background: linear-gradient(180deg, #c4a882 0%, #a08060 100%);
  border-radius: 4px 4px 0 0;
  transform-origin: bottom center;
  animation: kkp-tower 4s ease-in-out infinite;
}

@keyframes kkp-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes kkp-sun { 0% { opacity:.9; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.85; transform: scale(.95) } }
@keyframes kkp-dome { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) translateY(-3px) } }
@keyframes kkp-river { 0% { background-position: 0 0 } 50% { background-position: 20px 0 } 100% { background-position: 0 0 } }
@keyframes kkp-trees { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes kkp-walls { 0% { opacity:1 } 50% { opacity:.9 } 100% { opacity:1 } }
@keyframes kkp-tower { 0%,100% { transform: rotate(0) } 25% { transform: rotate(.5deg) } 75% { transform: rotate(-.5deg) } }

.scn-kubla-khan-fountain {
  background:
    linear-gradient(180deg, #4a5a6a 0%, #6a7a8a 30%, #8a9a9a 60%, #5a6a6a 100%),
    radial-gradient(ellipse at 50% 40%, #7a8a8a 0%, transparent 60%);
}
.scn-kubla-khan-fountain .chasm {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 60%;
  background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 70%, #1a2a2a 100%);
  border-radius: 0 0 40% 40%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: kkf-chasm 12s ease-in-out infinite alternate;
}
.scn-kubla-khan-fountain .fountain {
  position: absolute; bottom: 50%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #c8d8e8 0%, #8ab0c8 60%, #5a8a9a 100%);
  border-radius: 50% 50% 0 0;
  animation: kkf-fountain 1s ease-in-out infinite alternate;
}
.scn-kubla-khan-fountain .rocks {
  position: absolute; bottom: 30%; left: 30%; right: 30%; height: 20%;
  background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,.4);
  animation: kkf-rocks 8s ease-in-out infinite alternate;
}
.scn-kubla-khan-fountain .river {
  position: absolute; bottom: 18%; left: 10%; right: 10%; height: 6%;
  background: linear-gradient(90deg, #3a6a7a 0%, #5a8a9a 50%, #3a6a7a 100%);
  border-radius: 0 0 50% 50%;
}
.scn-kubla-khan-fountain .cavern {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #1a2a2a 0%, #2a3a3a 60%, transparent 100%);
  border-radius: 20% 20% 0 0;
  animation: kkf-cavern 15s ease-in-out infinite alternate;
}
.scn-kubla-khan-fountain .shadow {
  position: absolute; bottom: 15%; left: 60%; width: 40px; height: 60px;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  filter: blur(8px);
  animation: kkf-shadow 5s ease-in-out infinite alternate;
}

@keyframes kkf-chasm { 0% { background-position: 0 0 } 50% { background-position: 0 10px } 100% { background-position: 0 0 } }
@keyframes kkf-fountain { 0% { height: 60px; transform: translateX(-50%) scaleX(1) } 50% { height: 80px; transform: translateX(-50%) scaleX(1.1) } 100% { height: 60px; transform: translateX(-50%) scaleX(1) } }
@keyframes kkf-rocks { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes kkf-cavern { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes kkf-shadow { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }

.scn-item-dulcimer {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 40%, #6a5a4a 70%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 80%, #6a4a2a 0%, transparent 60%);
}
.scn-item-dulcimer .walls {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a0a00 0%, #2a1a0a 30%, #3a2a1a 50%, #2a1a0a 70%, #1a0a00 100%);
  animation: idd-walls 20s ease-in-out infinite alternate;
}
.scn-item-dulcimer .figure {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: idd-figure 4s ease-in-out infinite;
}
.scn-item-dulcimer .dulcimer {
  position: absolute; bottom: 18%; left: 38%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #8a5a3a 0%, #6a3a1a 100%);
  border-radius: 4px;
  transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: idd-dulcimer 6s ease-in-out infinite alternate;
}
.scn-item-dulcimer .candle {
  position: absolute; bottom: 30%; left: 65%; width: 6px; height: 24px;
  background: linear-gradient(180deg, #f2d8a0 0%, #e6b870 100%);
  border-radius: 2px 2px 1px 1px;
  animation: idd-candle 3s ease-in-out infinite alternate;
}
.scn-item-dulcimer .glow {
  position: absolute; bottom: 30%; left: 65%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(242,216,160,.6) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  filter: blur(4px);
  animation: idd-glow 3s ease-in-out infinite alternate;
}
.scn-item-dulcimer .window {
  position: absolute; top: 10%; right: 10%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, #5a8ab0 0%, #2a4a6a 100%);
  border: 2px solid #2a1a0a;
  border-radius: 4px;
  box-shadow: inset 0 0 8px rgba(255,255,255,.3);
  animation: idd-window 12s ease-in-out infinite alternate;
}
.scn-item-dulcimer .music {
  position: absolute; top: 20%; left: 40%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,180,160,.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: idd-music 5s ease-in-out infinite alternate;
}

@keyframes idd-walls { 0% { opacity:.7 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes idd-figure { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-2deg) } }
@keyframes idd-dulcimer { 0% { transform: rotate(12deg) } 50% { transform: rotate(18deg) } 100% { transform: rotate(12deg) } }
@keyframes idd-candle { 0% { height: 22px; opacity:.9 } 50% { height: 26px; opacity:1 } 100% { height: 22px; opacity:.9 } }
@keyframes idd-glow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes idd-window { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes idd-music { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-10px) scale(1.2) } 100% { transform: translateY(0) scale(1) } }

.scn-kubla-khan-publication-notes {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #3a2a1a 70%, #1a1410 100%),
    radial-gradient(ellipse at 50% 60%, #2a1a0a 0%, transparent 80%);
}
.scn-kubla-khan-publication-notes .desk {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 8px 12px rgba(0,0,0,.4);
  animation: kkpn-desk 10s ease-in-out infinite alternate;
}
.scn-kubla-khan-publication-notes .papers {
  position: absolute; bottom: 30%; left: 30%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #c8b890 0%, #a89070 50%, #c8b890 100%);
  border-radius: 2px;
  transform: rotate(2deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: kkpn-papers 5s ease-in-out infinite alternate;
}
.scn-kubla-khan-publication-notes .quill {
  position: absolute; bottom: 35%; left: 40%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #c8b890 0%, #a08060 100%);
  border-radius: 1px;
  transform: rotate(15deg);
  transform-origin: bottom;
  animation: kkpn-quill 3s ease-in-out infinite alternate;
}
.scn-kubla-khan-publication-notes .books {
  position: absolute; bottom: 20%; left: 55%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #6a3a1a 0%, #4a2a0a 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,.5);
  animation: kkpn-books 6s ease-in-out infinite alternate;
}
.scn-kubla-khan-publication-notes .lamp {
  position: absolute; bottom: 55%; left: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 16px 8px rgba(200,160,96,.3);
  animation: kkpn-lamp 4s ease-in-out infinite alternate;
}
.scn-kubla-khan-publication-notes .glow {
  position: absolute; bottom: 55%; left: 20%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,160,96,.2) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-40%, -40%);
  filter: blur(6px);
  animation: kkpn-glow 4s ease-in-out infinite alternate;
}

@keyframes kkpn-desk { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes kkpn-papers { 0% { transform: rotate(1deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(1deg) } }
@keyframes kkpn-quill { 0% { transform: rotate(12deg) } 50% { transform: rotate(18deg) } 100% { transform: rotate(12deg) } }
@keyframes kkpn-books { 0% { opacity:1 } 50% { opacity:.95 } 100% { opacity:1 } }
@keyframes kkpn-lamp { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes kkpn-glow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.3 } }

.scn-song-ex-improviso { background: linear-gradient(135deg, #3a2518 0%, #5a3a25 50%, #7a5a3a 100%), radial-gradient(ellipse at 40% 60%, #c08050 0%, transparent 70%); }
.scn-song-ex-improviso .bg-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #4a2a15 0%, #2a1a0a 100%); opacity:0.6; animation: sei-wall 12s ease-in-out infinite; }
.scn-song-ex-improviso .candle { position:absolute; bottom:30%; left:35%; width:12px; height:40px; background: linear-gradient(180deg, #e8c88a 0%, #b88850 100%); border-radius:20% 20% 30% 30%; box-shadow: -2px 0 6px rgba(0,0,0,.3); animation: sei-candle 5s ease-in-out infinite; }
.scn-song-ex-improviso .candle-flame { position:absolute; bottom:68%; left:35.2%; width:14px; height:18px; background: radial-gradient(ellipse, #ffd080 0%, #ffa040 50%, transparent 70%); border-radius:50%; filter: blur(2px); animation: sei-flame 1.8s ease-in-out infinite alternate; }
.scn-song-ex-improviso .figure-singer { position:absolute; bottom:22%; left:50%; width:40px; height:70px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: sei-singer 8s ease-in-out infinite; }
.scn-song-ex-improviso .rose { position:absolute; bottom:26%; left:58%; width:12px; height:12px; background: radial-gradient(circle, #c8553d 0%, #a0461a 70%); border-radius:50%; box-shadow: 0 0 8px 2px rgba(200,85,61,.3); animation: sei-float 6s ease-in-out infinite; }
.scn-song-ex-improviso .lily { position:absolute; bottom:28%; left:42%; width:10px; height:16px; background: radial-gradient(ellipse, #f0e8d0 0%, #d0c8a0 100%); border-radius:50% 50% 0 0; transform: rotate(-20deg); animation: sei-float 7s ease-in-out infinite reverse; }
.scn-song-ex-improviso .glow-ambient { position:absolute; inset:30% 20% 20% 30%; background: radial-gradient(ellipse at 50% 50%, rgba(255,200,100,.12) 0%, transparent 70%); pointer-events:none; animation: sei-glow 10s ease-in-out infinite alternate; }
@keyframes sei-wall { 0%,100% { opacity:.5 } 50% { opacity:.7 } }
@keyframes sei-candle { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes sei-flame { 0% { transform: scaleY(1) translateY(0); opacity:.9 } 50% { transform: scaleY(1.15) translateY(-2px); opacity:1 } 100% { transform: scaleY(.95) translateY(0); opacity:.85 } }
@keyframes sei-singer { 0%,100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg) } }
@keyframes sei-float { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(10deg) } }
@keyframes sei-glow { 0% { opacity:.6 } 100% { opacity:1 } }

.scn-friendship-and-love { background: linear-gradient(135deg, #2a2a4a 0%, #3a3a5a 50%, #2a2a4a 100%), radial-gradient(ellipse at 60% 40%, #6a6a8a 0%, transparent 70%); }
.scn-friendship-and-love .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 40%, #3a3a5a 100%); animation: fl-room 20s ease-in-out infinite alternate; }
.scn-friendship-and-love .mirror { position:absolute; bottom:30%; left:35%; width:60px; height:80px; background: linear-gradient(180deg, #4a4a6a 0%, #3a3a5a 100%); border-radius:4px; box-shadow: 0 0 20px 4px rgba(100,100,150,.3); animation: fl-mirror 15s ease-in-out infinite; }
.scn-friendship-and-love .mirror-frame { position:absolute; bottom:29%; left:34%; width:64px; height:84px; border:2px solid #5a5a7a; border-radius:6px; background: transparent; pointer-events:none; animation: fl-frame 15s ease-in-out infinite; }
.scn-friendship-and-love .figure-left { position:absolute; bottom:24%; left:30%; width:28px; height:60px; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: fl-figleft 10s ease-in-out infinite; }
.scn-friendship-and-love .figure-right { position:absolute; bottom:24%; left:50%; width:28px; height:60px; background: linear-gradient(180deg, #4a4a6a 0%, #3a3a5a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: fl-figright 10s ease-in-out infinite reverse; }
.scn-friendship-and-love .heart-glow { position:absolute; bottom:38%; left:42%; width:16px; height:14px; background: radial-gradient(circle, #8a6a8a 0%, #6a4a6a 70%); border-radius:50% 50% 0 0; transform: rotate(45deg); box-shadow: 0 0 20px 6px rgba(138,106,138,.4); animation: fl-heart 6s ease-in-out infinite alternate; }
.scn-friendship-and-love .shadow-veil { position:absolute; inset:50% 0 0 0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 100%); pointer-events:none; animation: fl-veil 30s ease-in-out infinite; }
@keyframes fl-room { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes fl-mirror { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes fl-frame { 0%,100% { border-color: #5a5a7a } 50% { border-color: #7a7a9a } }
@keyframes fl-figleft { 0%,100% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(2deg) } }
@keyframes fl-figright { 0%,100% { transform: translateX(-50%) translateY(0) rotate(2deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(-2deg) } }
@keyframes fl-heart { 0% { transform: rotate(45deg) scale(1); opacity:.7 } 50% { opacity:1 } 100% { transform: rotate(45deg) scale(1.05); opacity:.8 } }
@keyframes fl-veil { 0%,100% { opacity:.3 } 50% { opacity:.5 } }

.scn-jealousy { background: linear-gradient(135deg, #1a1a2e 0%, #2a1a2e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 50%, #3a2a3e 0%, transparent 60%); }
.scn-jealousy .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); animation: je-bg 15s ease-in-out infinite; }
.scn-jealousy .figure-love { position:absolute; bottom:25%; left:40%; width:30px; height:58px; background: linear-gradient(180deg, #5a4a5a 0%, #3a2a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: je-love 8s ease-in-out infinite; }
.scn-jealousy .figure-jealousy { position:absolute; bottom:30%; left:60%; width:32px; height:62px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: je-jealousy 8s ease-in-out infinite reverse; }
.scn-jealousy .eye-glow { position:absolute; bottom:50%; left:58%; width:4px; height:6px; background: radial-gradient(circle, #6a4a6a 0%, #3a2a3a 80%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(100,60,100,.5); animation: je-eye 4s ease-in-out infinite alternate; }
.scn-jealousy .chain { position:absolute; bottom:28%; left:45%; width:20px; height:2px; background: linear-gradient(90deg, #4a3a4a 0%, #2a1a2a 100%); border-radius:2px; transform: rotate(30deg); transform-origin: left; animation: je-chain 12s ease-in-out infinite; }
.scn-jealousy .shadow-floor { position:absolute; bottom:0; left:20%; right:20%; height:18%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%); border-radius:50%; filter:blur(10px); animation: je-floor 10s ease-in-out infinite ; }
.scn-jealousy .mist { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 40%, rgba(40,30,50,.3) 0%, transparent 70%); pointer-events:none; animation: je-mist 20s ease-in-out infinite alternate; }
@keyframes je-bg { 0%,100% { opacity:.8 } 50% { opacity:.6 } }
@keyframes je-love { 0%,100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } }
@keyframes je-jealousy { 0%,100% { transform: translateX(-50%) translateY(0) rotate(1deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(-1deg) } }
@keyframes je-eye { 0% { opacity:.3; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.4; transform: scale(.9) } }
@keyframes je-chain { 0%,100% { transform: rotate(25deg) } 50% { transform: rotate(35deg) } }
@keyframes je-floor { 0% { opacity:.4 } 50% { opacity:.6 } }
@keyframes je-mist { 0% { opacity:.3 } 100% { opacity:.5 } }

.scn-dream-riddle { background: linear-gradient(135deg, #1a1a3a 0%, #2a2a4a 50%, #1a1a3a 100%), radial-gradient(ellipse at 30% 40%, #4a4a7a 0%, transparent 70%); }
.scn-dream-riddle .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 100%); animation: dr-night 20s ease-in-out infinite; }
.scn-dream-riddle .bed-frame { position:absolute; bottom:20%; left:30%; width:80px; height:50px; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: dr-bed 15s ease-in-out infinite; }
.scn-dream-riddle .bed-sheet { position:absolute; bottom:22%; left:32%; width:76px; height:30px; background: linear-gradient(180deg, #4a4a6a 0%, #3a3a5a 100%); border-radius:2px; animation: dr-sheet 15s ease-in-out infinite; }
.scn-dream-riddle .figure-spirit { position:absolute; bottom:38%; left:50%; width:24px; height:44px; background: linear-gradient(180deg, #6a6a8a 0%, #4a4a6a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); opacity:.6; animation: dr-spirit 12s ease-in-out infinite alternate; }
.scn-dream-riddle .figure-dreamer { position:absolute; bottom:25%; left:45%; width:28px; height:56px; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: dr-dreamer 10s ease-in-out infinite; }
.scn-dream-riddle .moonlight { position:absolute; top:10%; left:40%; width:30px; height:30px; background: radial-gradient(circle, #c0c0e0 0%, #a0a0c0 50%, transparent 70%); border-radius:50%; filter:blur(8px); animation: dr-moon 8s ease-in-out infinite alternate; }
.scn-dream-riddle .particles { position:absolute; inset:0; background: radial-gradient(circle at 20% 30%, rgba(200,200,255,.08) 0%, transparent 20%), radial-gradient(circle at 70% 60%, rgba(200,200,255,.06) 0%, transparent 25%); pointer-events:none; animation: dr-particles 40s linear infinite; }
@keyframes dr-night { 0%,100% { opacity:.7 } 50% { opacity:.9 } }
@keyframes dr-bed { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes dr-sheet { 0%,100% { opacity:.7 } 50% { opacity:.9 } }
@keyframes dr-spirit { 0% { transform: translateX(-50%) translateY(0) scale(1); opacity:.4 } 50% { opacity:.7 } 100% { transform: translateX(-50%) translateY(-4px) scale(1.02); opacity:.5 } }
@keyframes dr-dreamer { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0) } 50% { transform: translateX(-50%) translateY(-1px) rotate(2deg) } }
@keyframes dr-moon { 0% { opacity:.4; transform: scale(1) } 100% { opacity:.7; transform: scale(1.1) } }
@keyframes dr-particles { 0% { background-position: 0% 0% } 100% { background-position: 100% 100% } }

.scn-hymn-notes { background: linear-gradient(180deg, #1e1410 0%, #2c1d15 40%, #3d2a1f 100%), radial-gradient(ellipse at 50% 80%, #f2c864 0%, transparent 60%); }
.scn-hymn-notes .desk { position: absolute; bottom: 0; left: 10%; right: 10%; height: 55%; background: linear-gradient(180deg, #4a3a2a 0%, #2f2015 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 15px 30px rgba(0,0,0,.6); }
.scn-hymn-notes .paper { position: absolute; bottom: 30%; left: 50%; width: 60%; height: 30%; background: #f5eedd; transform: translateX(-50%) rotate(-1deg); border-radius: 2px; box-shadow: 0 8px 12px rgba(0,0,0,.4); }
.scn-hymn-notes .inkwell { position: absolute; bottom: 35%; left: 20%; width: 18px; height: 22px; background: radial-gradient(circle, #2a2018 0%, #0e0a06 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-hymn-notes .quill { position: absolute; bottom: 38%; left: 23%; width: 4px; height: 60px; background: linear-gradient(180deg, #e8ddd0 0%, #c4b5a0 100%); transform: rotate(25deg); border-radius: 0 0 40% 40%; transform-origin: bottom center; animation: hn-quill 8s ease-in-out infinite alternate; }
.scn-hymn-notes .candlestick { position: absolute; bottom: 40%; right: 20%; width: 12px; height: 40px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 10% 10% 8% 8%; }
.scn-hymn-notes .candle-flame { position: absolute; bottom: 78%; right: 20%; width: 8px; height: 16px; background: radial-gradient(ellipse at 50% 30%, #ffe88a 0%, #f0a030 60%, transparent 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 10px rgba(240, 160, 48, .5); animation: hn-flame 2s ease-in-out infinite alternate; }
.scn-hymn-notes .note-1, .scn-hymn-notes .note-2, .scn-hymn-notes .note-3 { position: absolute; width: 8px; height: 12px; background: radial-gradient(ellipse, #2a2018 0%, transparent 100%); filter: blur(1px); }
.scn-hymn-notes .note-1 { top: 25%; left: 40%; animation: hn-note1 20s linear infinite; }
.scn-hymn-notes .note-2 { top: 30%; left: 60%; animation: hn-note2 25s linear infinite; animation-delay: -5s; }
.scn-hymn-notes .note-3 { top: 20%; left: 30%; animation: hn-note3 30s linear infinite; animation-delay: -10s; }
@keyframes hn-quill { 0% { transform: rotate(20deg) scaleY(1); } 50% { transform: rotate(28deg) scaleY(1.03); } 100% { transform: rotate(22deg) scaleY(1); } }
@keyframes hn-flame { 0% { transform: scaleY(1) scaleX(1); opacity: .8; } 50% { transform: scaleY(1.2) scaleX(.9); opacity: 1; } 100% { transform: scaleY(1) scaleX(1); opacity: .85; } }
@keyframes hn-note1 { 0% { transform: translate(0, 0) rotate(0deg); opacity: 0; } 10% { opacity: 0.4; } 30% { transform: translate(20px, -60px) rotate(15deg); opacity: 0.6; } 60% { transform: translate(40px, -140px) rotate(30deg); opacity: 0.3; } 100% { transform: translate(80px, -250px) rotate(45deg); opacity: 0; } }
@keyframes hn-note2 { 0% { transform: translate(0, 0) rotate(0deg); opacity: 0; } 10% { opacity: 0.3; } 40% { transform: translate(-15px, -80px) rotate(-10deg); opacity: 0.5; } 70% { transform: translate(-35px, -160px) rotate(-20deg); opacity: 0.2; } 100% { transform: translate(-60px, -300px) rotate(-35deg); opacity: 0; } }
@keyframes hn-note3 { 0% { transform: translate(0, 0) rotate(0deg); opacity: 0; } 15% { opacity: 0.4; } 45% { transform: translate(30px, -100px) rotate(20deg); opacity: 0.6; } 75% { transform: translate(50px, -200px) rotate(35deg); opacity: 0.2; } 100% { transform: translate(90px, -350px) rotate(50deg); opacity: 0; } }

.scn-hymn-variants { background: linear-gradient(180deg, #2a1d15 0%, #3d2a1f 50%, #1e1410 100%), radial-gradient(ellipse at 30% 60%, #f2c864 0%, transparent 70%); }
.scn-hymn-variants .bookshelf { position: absolute; top: 10%; left: 5%; right: 5%; height: 40%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
.scn-hymn-variants .book-open { position: absolute; bottom: 30%; left: 50%; width: 50%; height: 28%; background: #ebdbb8; transform: translateX(-50%) rotate(-2deg); border-radius: 2px; box-shadow: 0 10px 18px rgba(0,0,0,.4); }
.scn-hymn-variants .page-left { position: absolute; bottom: 32%; left: 27%; width: 22%; height: 24%; background: #f5eedd; transform: rotateY(5deg); border-radius: 1px; box-shadow: inset 0 0 8px rgba(0,0,0,.1); }
.scn-hymn-variants .page-right { position: absolute; bottom: 32%; right: 27%; width: 22%; height: 24%; background: #f5eedd; transform: rotateY(-5deg); border-radius: 1px; box-shadow: inset 0 0 8px rgba(0,0,0,.1); }
.scn-hymn-variants .glasses { position: absolute; bottom: 35%; left: 45%; width: 40px; height: 16px; background: radial-gradient(circle at 30% 50%, transparent 8px, #6a5a4a 8px, #6a5a4a 9px, transparent 9px); border-radius: 50%; filter: blur(1px); opacity: 0.6; }
.scn-hymn-variants .lantern { position: absolute; bottom: 50%; right: 15%; width: 20px; height: 30px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: hv-lantern 4s ease-in-out infinite alternate; }
.scn-hymn-variants .lantern::after { content: ''; position: absolute; top: 20%; left: 20%; width: 60%; height: 50%; background: radial-gradient(ellipse, #ffe88a 0%, transparent 100%); border-radius: 50%; }
.scn-hymn-variants .shadow { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 100%); pointer-events: none; }
@keyframes hv-lantern { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }

.scn-mahomet-fragment { background: linear-gradient(180deg, #1c2838 0%, #2a3a4a 40%, #3a4a5a 70%, #2a3a3a 100%), radial-gradient(ellipse at 50% 30%, #4a5a6a 0%, transparent 60%); }
.scn-mahomet-fragment .sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #0a1a2a 0%, #1c2a3a 100%); animation: mf-sky 12s ease-in-out infinite alternate; }
.scn-mahomet-fragment .storm-clouds { position: absolute; top: 15%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 50%, #1a2a3a 100%); filter: blur(8px); animation: mf-clouds 8s ease-in-out infinite alternate; }
.scn-mahomet-fragment .sand-dunes { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 50% 60% 0 0 / 30% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.4); }
.scn-mahomet-fragment .figure { position: absolute; bottom: 35%; left: 50%; width: 20px; height: 50px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: translateX(-50%); animation: mf-figure 6s ease-in-out infinite alternate; }
.scn-mahomet-fragment .scroll { position: absolute; bottom: 40%; left: 45%; width: 40px; height: 20px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); transform: rotate(10deg); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-mahomet-fragment .lightning { position: absolute; top: 10%; left: 70%; width: 2px; height: 60px; background: #e0e8f0; transform: skewX(-10deg); box-shadow: 0 0 20px 10px rgba(224,232,240,.3); animation: mf-lightning 4s ease-in-out infinite; }
@keyframes mf-sky { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .6; } }
@keyframes mf-clouds { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-10px) scaleY(1.2); } 100% { transform: translateX(5px) scaleY(1); } }
@keyframes mf-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-4deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(4deg); } }
@keyframes mf-lightning { 0% { opacity: 0; } 50% { opacity: 0.8; } 51% { opacity: 0; } 100% { opacity: 0; } }

.scn-love-genevieve-intro { background: linear-gradient(180deg, #2a1a3a 0%, #4a2a4a 30%, #6a3a4a 60%, #8a5a4a 100%), radial-gradient(ellipse at 30% 20%, #d0a060 0%, transparent 70%); }
.scn-love-genevieve-intro .hills { position: absolute; bottom: 20%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 40% 60% 0 0 / 60% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: lg-hills 18s ease-in-out infinite alternate; }
.scn-love-genevieve-intro .ruined-tower { position: absolute; bottom: 25%; left: 20%; width: 60px; height: 100px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 8% 8% 4% 4%; clip-path: polygon(0% 0%, 100% 0%, 90% 20%, 100% 40%, 90% 60%, 100% 80%, 85% 100%, 15% 100%, 0% 80%, 10% 60%, 0% 40%, 10% 20%); }
.scn-love-genevieve-intro .tower-shadow { position: absolute; bottom: 25%; left: 20%; width: 60px; height: 100px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 100%); filter: blur(10px); transform: translateY(10px); opacity: 0.6; }
.scn-love-genevieve-intro .moon { position: absolute; top: 12%; left: 60%; width: 40px; height: 40px; background: radial-gradient(circle, #f0e090 0%, #e0c060 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(224,192,96,.3); animation: lg-moon 30s linear infinite alternate; }
.scn-love-genevieve-intro .statue { position: absolute; bottom: 30%; left: 55%; width: 18px; height: 50px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform: rotate(5deg); }
.scn-love-genevieve-intro .genevieve { position: absolute; bottom: 28%; left: 50%; width: 24px; height: 55px; background: linear-gradient(180deg, #4a2a3a 0%, #2a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: lg-genevieve 6s ease-in-out infinite alternate; }
.scn-love-genevieve-intro .evening-sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #1a0a1a 0%, #2a1a2a 40%, #4a2a3a 70%, transparent 100%); opacity: 0.8; }
.scn-love-genevieve-intro .stars { position: absolute; top: 5%; left: 30%; width: 4px; height: 4px; background: #f0e8d0; border-radius: 50%; box-shadow: 10px 20px 0 #f0e8d0, -20px 40px 0 #f0e8d0, 30px -10px 0 #f0e8d0, -40px 15px 0 #f0e8d0, 50px 25px 0 #f0e8d0; animation: lg-stars 10s ease-in-out infinite alternate; }
@keyframes lg-hills { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes lg-moon { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(10px) translateY(-4px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes lg-genevieve { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes lg-stars { 0% { opacity: 0.3; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* Scene: snow-drop-refrain */
.scn-snow-drop-refrain { background: linear-gradient(180deg, #b0b8b8 0%, #8a9494 40%, #6a7575 100%), radial-gradient(ellipse at 50% 0%, #c0c8c8 0%, transparent 60%); }
.scn-snow-drop-refrain .landscape { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #9aa5a5 0%, #7a8585 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; animation: ss1-sky 12s ease-in-out infinite alternate; }
.scn-snow-drop-refrain .snow-mound { position:absolute; bottom:20%; left:10%; width:40%; height:30%; background: radial-gradient(ellipse at 30% 40%, #d8dcdc 0%, #a8b0b0 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset -10px -10px 20px rgba(0,0,0,0.2); animation: ss1-mound 16s ease-in-out infinite; }
.scn-snow-drop-refrain .flower-stem { position:absolute; bottom:30%; left:30%; width:3px; height:45px; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 2px; transform-origin: bottom center; animation: ss1-stem 10s ease-in-out infinite; }
.scn-snow-drop-refrain .flower-petal { position:absolute; bottom:60%; left:29%; width:16px; height:14px; background: radial-gradient(circle, #e8eef0 0%, #c0d0d0 70%); border-radius: 50% 50% 0 50% / 60% 60% 20% 40%; transform: rotate(-20deg); box-shadow: 0 2px 4px rgba(0,0,0,0.1); animation: ss1-bloom 8s ease-in-out infinite alternate; }
.scn-snow-drop-refrain .figure { position:absolute; bottom:28%; right:25%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ss1-figure 6s ease-in-out infinite; }
.scn-snow-drop-refrain .tear-drop { position:absolute; bottom:48%; right:30%; width:4px; height:6px; background: radial-gradient(circle, #c0d8e8 0%, #80a8c0 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; filter: blur(1px); animation: ss1-tear 4s ease-in-out infinite; }
@keyframes ss1-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ss1-mound { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.03) translateY(-4px) } }
@keyframes ss1-stem { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes ss1-bloom { 0% { transform: rotate(-20deg) scale(0.9) } 50% { transform: rotate(-10deg) scale(1.1) } 100% { transform: rotate(-15deg) scale(1) } }
@keyframes ss1-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(0deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes ss1-tear { 0%,100% { opacity:0.4; transform: translateY(0) } 50% { opacity:0.9; transform: translateY(5px) } }

/* Scene: snow-drop-variants */
.scn-snow-drop-variants { background: linear-gradient(180deg, #1a1a28 0%, #2a2a3e 40%, #3a3a4e 100%), radial-gradient(ellipse at 60% 80%, #4a4a5e 0%, transparent 70%); }
.scn-snow-drop-variants .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2e2e3e 0%, #1e1e2e 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); }
.scn-snow-drop-variants .desk { position:absolute; bottom:10%; left:20%; width:60%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.6); animation: sv1-desk 20s ease-in-out infinite; }
.scn-snow-drop-variants .manuscript { position:absolute; bottom:15%; left:25%; width:35%; height:12%; background: linear-gradient(135deg, #d8c8a0 0%, #c0b090 100%); border-radius: 2px; transform: rotate(-2deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: sv1-paper 12s ease-in-out infinite alternate; }
.scn-snow-drop-variants .inkwell { position:absolute; bottom:20%; left:55%; width:12px; height:14px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: sv1-ink 8s ease-in-out infinite; }
.scn-snow-drop-variants .candle { position:absolute; bottom:16%; left:60%; width:6px; height:18px; background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%); border-radius: 2px; box-shadow: 0 0 12px 2px rgba(200,180,140,0.4); animation: sv1-candle 6s ease-in-out infinite alternate; }
.scn-snow-drop-variants .window { position:absolute; bottom:50%; left:65%; width:30px; height:40px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border: 2px solid #4a4a5e; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,20,40,0.5); animation: sv1-window 18s ease-in-out infinite; }
.scn-snow-drop-variants .ship-shadow { position:absolute; bottom:12%; right:15%; width:20px; height:8px; background: linear-gradient(90deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 50% 50% 0 0; filter: blur(2px); transform: rotate(-10deg); animation: sv1-ship 30s linear infinite; }
@keyframes sv1-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sv1-paper { 0% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(2deg) scale(1.02) } 100% { transform: rotate(-1deg) scale(0.98) } }
@keyframes sv1-ink { 0%,100% { transform: scale(1) } 50% { transform: scale(0.95) translateY(-1px) } }
@keyframes sv1-candle { 0% { opacity:0.7; transform: scaleY(0.9) } 50% { opacity:1; transform: scaleY(1) } 100% { opacity:0.8; transform: scaleY(0.95) } }
@keyframes sv1-window { 0%,100% { opacity:0.5 } 50% { opacity:0.8 } }
@keyframes sv1-ship { 0% { transform: translateX(0) rotate(-10deg) } 50% { transform: translateX(-5px) rotate(-5deg) } 100% { transform: translateX(0) rotate(-15deg) } }

/* Scene: ocean-hopes */
.scn-ocean-hopes { background: linear-gradient(180deg, #7a8a8a 0%, #4a5a5a 40%, #3a4a4a 100%), radial-gradient(ellipse at 30% 70%, #5a6a6a 0%, transparent 60%); }
.scn-ocean-hopes .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #8a9a9a 0%, #6a7a7a 100%); border-radius: 0 0 30% 30%; animation: oh1-sky 15s ease-in-out infinite alternate; }
.scn-ocean-hopes .ocean { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #3a5a5a 0%, #2a4a4a 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: oh1-ocean 20s ease-in-out infinite; }
.scn-ocean-hopes .shore { position:absolute; bottom:30%; left:10%; width:80%; height:15%; background: linear-gradient(135deg, #c0b090 0%, #a09880 100%); border-radius: 0 0 20% 20%; box-shadow: 0 -5px 10px rgba(0,0,0,0.2); animation: oh1-shore 12s ease-in-out infinite; }
.scn-ocean-hopes .wave-left { position:absolute; bottom:35%; left:5%; width:30%; height:10%; background: linear-gradient(90deg, #4a7a7a 0%, #3a6a6a 100%); border-radius: 50%; filter: blur(2px); animation: oh1-wave-l 8s ease-in-out infinite; }
.scn-ocean-hopes .wave-right { position:absolute; bottom:30%; right:10%; width:20%; height:8%; background: linear-gradient(90deg, #3a6a6a 0%, #2a5a5a 100%); border-radius: 50%; filter: blur(2px); animation: oh1-wave-r 10s ease-in-out infinite reverse; }
.scn-ocean-hopes .figure { position:absolute; bottom:25%; left:45%; width:18px; height:36px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oh1-figure 7s ease-in-out infinite; }
.scn-ocean-hopes .clouds { position:absolute; top:12%; left:20%; width:70px; height:20px; background: linear-gradient(90deg, rgba(200,200,210,0.6) 0%, rgba(180,180,190,0.2) 100%); border-radius: 50%; filter: blur(6px); animation: oh1-cloud 40s linear infinite; }
@keyframes oh1-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes oh1-ocean { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes oh1-shore { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes oh1-wave-l { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(15px) scale(1.2) } 100% { transform: translateX(0) scale(0.9) } }
@keyframes oh1-wave-r { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-10px) scale(1.3) } 100% { transform: translateX(0) scale(0.8) } }
@keyframes oh1-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes oh1-cloud { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }

/* Scene: ocean-poem-notes */
.scn-ocean-poem-notes { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 30%, #3a3a4e 100%), radial-gradient(ellipse at 80% 60%, #4a4a5e 0%, transparent 70%); }
.scn-ocean-poem-notes .wall-shadow { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2e2e3e 0%, #1e1e2e 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6); }
.scn-ocean-poem-notes .desk { position:absolute; bottom:5%; left:15%; width:70%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 6px; box-shadow: 0 8px 16px rgba(0,0,0,0.7); animation: op1-desk 25s ease-in-out infinite; }
.scn-ocean-poem-notes .book { position:absolute; bottom:15%; left:20%; width:25%; height:20%; background: linear-gradient(135deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 4px; transform: rotate(-3deg); box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: op1-book 14s ease-in-out infinite alternate; }
.scn-ocean-poem-notes .paper { position:absolute; bottom:18%; left:45%; width:20%; height:12%; background: linear-gradient(135deg, #d8c8a0 0%, #c0b090 100%); border-radius: 2px; transform: rotate(2deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: op1-paper 10s ease-in-out infinite alternate; }
.scn-ocean-poem-notes .quill { position:absolute; bottom:20%; left:62%; width:2px; height:20px; background: linear-gradient(180deg, #806050 0%, #c0b0a0 100%); border-radius: 1px; transform: rotate(15deg); transform-origin: bottom center; box-shadow: 0 0 4px rgba(0,0,0,0.2); animation: op1-quill 6s ease-in-out infinite; }
.scn-ocean-poem-notes .candle-glow { position:absolute; bottom:12%; left:70%; width:8px; height:16px; background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%); border-radius: 2px; box-shadow: 0 0 24px 8px rgba(220,200,160,0.5), 0 0 48px 16px rgba(220,200,160,0.2); animation: op1-candle 5s ease-in-out infinite alternate; }
.scn-ocean-poem-notes .notes-branch { position:absolute; bottom:10%; left:10%; width:2px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 1px; transform: rotate(-5deg); animation: op1-branch 18s ease-in-out infinite; }
@keyframes op1-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes op1-book { 0% { transform: rotate(-3deg) scale(1) } 50% { transform: rotate(0deg) scale(1.02) } 100% { transform: rotate(-1deg) scale(0.98) } }
@keyframes op1-paper { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-3px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes op1-quill { 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(10deg) } }
@keyframes op1-candle { 0% { opacity:0.6; transform: scaleY(0.9) } 50% { opacity:1; transform: scaleY(1) } 100% { opacity:0.7; transform: scaleY(0.95) } }
@keyframes op1-branch { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(0deg) } }

.scn-ode-georgiana-stanza-two {
  background:
    linear-gradient(180deg, #1a1512 0%, #2a1f1a 30%, #3a2a22 60%, #2a1f1a 100%),
    radial-gradient(ellipse at 50% 40%, #4a3528 0%, transparent 70%);
}
.scn-ode-georgiana-stanza-two .wall     { position:absolute; inset:0; background: linear-gradient(135deg, #2a1f1a 0%, #1a1512 50%, #2a2218 100%); animation: sog-wl 15s ease-in-out infinite; }
.scn-ode-georgiana-stanza-two .crest    { position:absolute; top:12%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #8a7030 0%, #5a4020 60%, #3a2818 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 4px 20px rgba(0,0,0,.6), inset 0 -20px 30px rgba(0,0,0,.4); animation: sog-cr 20s ease-in-out infinite; }
.scn-ode-georgiana-stanza-two .table    { position:absolute; bottom:18%; left:15%; right:15%; height:12%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 4px; box-shadow: 0 8px 30px rgba(0,0,0,.7); animation: sog-tb 12s ease-in-out infinite; }
.scn-ode-georgiana-stanza-two .goblet   { position:absolute; bottom:18%; left:50%; width:10px; height:24px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a060 0%, #a08040 50%, #806030 100%); border-radius: 0 0 20% 20%; box-shadow: 0 0 12px 2px rgba(200,160,96,.3); animation: sog-gl 4s ease-in-out infinite; }
.scn-ode-georgiana-stanza-two .tapestry { position:absolute; top:8%; left:8%; width:28%; height:50%; background: linear-gradient(135deg, #4a2a2a 0%, #3a1a1a 40%, #2a1a12 100%); border-radius: 4px; box-shadow: inset 0 0 40px rgba(0,0,0,.5); animation: sog-tp 25s ease-in-out infinite; }
.scn-ode-georgiana-stanza-two .candle   { position:absolute; bottom:22%; left:28%; width:4px; height:30px; background: linear-gradient(180deg, #f0e0c0 0%, #e0c8a0 60%, #8a6a3a 100%); border-radius: 2px; animation: sog-cn 3s ease-in-out infinite; }
.scn-ode-georgiana-stanza-two .shadow   { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, transparent 40%, rgba(0,0,0,.5) 100%); animation: sog-sh 8s ease-in-out infinite; }
@keyframes sog-wl { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes sog-cr { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } }
@keyframes sog-tb { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes sog-gl { 0%,100% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) translateY(-1px) } }
@keyframes sog-tp { 0%,100% { transform: scale(1) } 50% { transform: scale(1.01) } }
@keyframes sog-cn { 0%,100% { transform: scaleY(1); opacity:.9 } 50% { transform: scaleY(1.05); opacity:1 } }
@keyframes sog-sh { 0%,100% { opacity:.6 } 50% { opacity:.8 } }

.scn-ode-georgiana-stanza-three {
  background:
    linear-gradient(180deg, #8a9a7a 0%, #aab89e 30%, #c8d4ba 60%, #e2e8d6 100%),
    radial-gradient(ellipse at 50% 20%, #d8e0cc 0%, transparent 60%);
}
.scn-ode-georgiana-stanza-three .sky     { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b8c8a8 0%, #d0dcc4 60%, transparent 100%); animation: sgs-sk 20s ease-in-out infinite alternate; }
.scn-ode-georgiana-stanza-three .ground  { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7a8a6a 0%, #5a6a4a 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.2); animation: sgs-gr 15s ease-in-out infinite; }
.scn-ode-georgiana-stanza-three .figure  { position:absolute; bottom:32%; left:45%; width:40px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 60%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 0 30px rgba(255,220,100,.15); animation: sgs-fg 6s ease-in-out infinite; }
.scn-ode-georgiana-stanza-three .flame   { position:absolute; bottom:60%; left:45%; width:14px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #ffe080 0%, #ffc040 40%, #e08020 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 40px 10px rgba(255,200,60,.6), 0 0 80px 20px rgba(255,200,60,.3); animation: sgs-fl 3s ease-in-out infinite; }
.scn-ode-georgiana-stanza-three .spear   { position:absolute; bottom:30%; right:38%; width:3px; height:70px; background: linear-gradient(180deg, #a0a0a0 0%, #606060 100%); transform: rotate(-15deg); transform-origin: bottom center; border-radius: 2px; box-shadow: 0 0 4px rgba(255,255,255,.2); animation: sgs-sp 8s ease-in-out infinite; }
.scn-ode-georgiana-stanza-three .halo    { position:absolute; top:8%; left:50%; width:120px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, rgba(255,220,100,.2) 0%, transparent 70%); filter: blur(8px); animation: sgs-ha 10s ease-in-out infinite alternate; }
.scn-ode-georgiana-stanza-three .bird    { position:absolute; top:18%; left:70%; width:20px; height:10px; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 80% 20% 50% 50% / 60% 40% 60% 40%; transform: rotate(-20deg); animation: sgs-bd 14s ease-in-out infinite; }
@keyframes sgs-sk { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes sgs-gr { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes sgs-fg { 0%,100% { transform: translateX(-50%) scale(1) rotate(-1deg) } 50% { transform: translateX(-50%) scale(1.02) rotate(1deg) } }
@keyframes sgs-fl { 0%,100% { transform: translateX(-50%) scaleY(1) translateY(0); opacity:.8 } 50% { transform: translateX(-50%) scaleY(1.2) translateY(-4px); opacity:1 } }
@keyframes sgs-sp { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(-12deg) } }
@keyframes sgs-ha { 0%,100% { opacity:.4; transform: translateX(-50%) scale(1) } 50% { opacity:.7; transform: translateX(-50%) scale(1.1) } }
@keyframes sgs-bd { 0%,100% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-25deg) translateX(8px) translateY(-3px) } }

.scn-ode-georgiana-stanza-four {
  background:
    linear-gradient(180deg, #121018 0%, #1a1620 30%, #221c28 60%, #18141c 100%),
    radial-gradient(ellipse at 50% 50%, #2a2230 0%, transparent 70%);
}
.scn-ode-georgiana-stanza-four .wall      { position:absolute; inset:0; background: linear-gradient(135deg, #1a1620 0%, #121018 50%, #1a1822 100%); animation: sgf-wl 18s ease-in-out infinite; }
.scn-ode-georgiana-stanza-four .bookshelf { position:absolute; top:10%; right:8%; width:30%; height:70%; background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%); border-radius: 2px 2px 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.7); animation: sgf-bk 25s ease-in-out infinite; }
.scn-ode-georgiana-stanza-four .laurel    { position:absolute; top:6%; left:15%; width:50px; height:30px; background: radial-gradient(ellipse at 50% 40%, #5a7a3a 0%, #3a5a2a 60%, #1a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: sgf-lr 12s ease-in-out infinite; }
.scn-ode-georgiana-stanza-four .plume     { position:absolute; top:10%; left:22%; width:8px; height:40px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 0 0 40% 40%; transform: rotate(15deg); transform-origin: top center; box-shadow: 0 0 6px rgba(0,0,0,.3); animation: sgf-pl 9s ease-in-out infinite; }
.scn-ode-georgiana-stanza-four .desk      { position:absolute; bottom:20%; left:10%; right:10%; height:14%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); border-radius: 4px; box-shadow: 0 6px 20px rgba(0,0,0,.7); animation: sgf-dk 15s ease-in-out infinite; }
.scn-ode-georgiana-stanza-four .scroll    { position:absolute; bottom:24%; left:22%; width:30px; height:8px; background: linear-gradient(180deg, #d8c8a0 0%, #b8a880 60%, #a89870 100%); border-radius: 10% 10% 10% 10% / 50% 50% 50% 50%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: sgf-sc 6s ease-in-out infinite; }
.scn-ode-georgiana-stanza-four .lamp      { position:absolute; bottom:28%; left:50%; width:6px; height:8px; transform:translateX(-50%); background: radial-gradient(circle, #c0a060 0%, #a08040 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 4px rgba(192,160,96,.4), 0 0 40px 8px rgba(192,160,96,.15); animation: sgf-lm 4s ease-in-out infinite; }
@keyframes sgf-wl { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes sgf-bk { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } }
@keyframes sgf-lr { 0%,100% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(5deg) scale(1.05) } }
@keyframes sgf-pl { 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(8deg) } }
@keyframes sgf-dk { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes sgf-sc { 0%,100% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(4px) scaleX(1.05) } }
@keyframes sgf-lm { 0%,100% { opacity:.7; box-shadow: 0 0 15px 3px rgba(192,160,96,.3) } 50% { opacity:1; box-shadow: 0 0 28px 6px rgba(192,160,96,.5) } }

.scn-ode-georgiana-mother {
  background:
    linear-gradient(180deg, #d4c8b0 0%, #c8bca4 30%, #e0d4c0 60%, #f0e4d0 100%),
    radial-gradient(ellipse at 50% 30%, #f0e8d8 0%, transparent 70%);
}
.scn-ode-georgiana-mother .arch    { position:absolute; top:0; left:10%; right:10%; height:60%; background: linear-gradient(180deg, #c8b898 0%, #b8a888 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: inset 0 -20px 60px rgba(0,0,0,.15); animation: sgm-ar 20s ease-in-out infinite; }
.scn-ode-georgiana-mother .altar   { position:absolute; bottom:20%; left:35%; right:35%; height:10%; background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%); border-radius: 6px; box-shadow: 0 4px 20px rgba(0,0,0,.2); animation: sgm-al 15s ease-in-out infinite; }
.scn-ode-georgiana-mother .mother  { position:absolute; bottom:18%; left:40%; width:30px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 60%, #4a3a2a 100%); border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%; box-shadow: 0 0 20px rgba(255,240,220,.2); animation: sgm-mo 7s ease-in-out infinite; }
.scn-ode-georgiana-mother .child   { position:absolute; bottom:18%; left:47%; width:18px; height:35px; transform:translateX(-50%); background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%); border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%; box-shadow: 0 0 10px rgba(255,240,220,.15); animation: sgm-ch 5s ease-in-out infinite; }
.scn-ode-georgiana-mother .window  { position:absolute; top:8%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #b0c8d8 0%, #d0e0f0 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 0 40px rgba(176,200,216,.4), inset 0 0 20px rgba(255,255,255,.5); animation: sgm-wn 12s ease-in-out infinite; }
.scn-ode-georgiana-mother .flower  { position:absolute; bottom:20%; left:52%; width:8px; height:12px; background: radial-gradient(ellipse at 50% 40%, #e0a0a0 0%, #c08080 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 8px rgba(224,160,160,.4); animation: sgm-fl 9s ease-in-out infinite; }
.scn-ode-georgiana-mother .light   { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(ellipse at 50% 20%, rgba(255,248,230,.15) 0%, transparent 70%); filter: blur(12px); animation: sgm-lt 8s ease-in-out infinite alternate; }
@keyframes sgm-ar { 0%,100% { transform: scale(1) } 50% { transform: scale(1.005) } }
@keyframes sgm-al { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes sgm-mo { 0%,100% { transform: translateX(-50%) translateY(0); opacity:.95 } 50% { transform: translateX(-50%) translateY(-2px); opacity:1 } }
@keyframes sgm-ch { 0%,100% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) translateY(-1px) } }
@keyframes sgm-wn { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes sgm-fl { 0%,100% { transform: scale(1); opacity:.7 } 50% { transform: scale(1.1); opacity:1 } }
@keyframes sgm-lt { 0%,100% { opacity:.3 } 50% { opacity:.6 } }

.scn-berengarius-last-words { background: linear-gradient(180deg, #0d0a14 0%, #1a1428 40%, #2a1e3a 100%), radial-gradient(ellipse at 50% 20%, #4a3a5e 0%, transparent 60%); }
.scn-berengarius-last-words .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a1428 0%, #2a1e3a 100%); }
.scn-berengarius-last-words .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1e3a 0%, #1a1428 100%); }
.scn-berengarius-last-words .light-beam { position:absolute; top:0; left:40%; width:20%; height:90%; background: linear-gradient(180deg, rgba(200,180,120,0.25) 0%, rgba(200,180,120,0.05) 60%, transparent 100%); transform: skewX(-10deg); animation: blw-beam 8s ease-in-out infinite alternate; }
.scn-berengarius-last-words .figure-kneeling { position:absolute; bottom:18%; left:45%; width:30px; height:60px; background: linear-gradient(180deg, #1a1428 0%, #0d0a14 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: blw-kneel 6s ease-in-out infinite; }
.scn-berengarius-last-words .crucifix { position:absolute; bottom:40%; left:50%; width:4px; height:40px; background: #4a3a2a; transform: translateX(-50%); border-radius: 2px; box-shadow: 0 0 6px 2px rgba(200,180,120,0.3); animation: blw-cross 12s ease-in-out infinite; }
.scn-berengarius-last-words .shadow-dark { position:absolute; bottom:18%; left:38%; width:40%; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 70%); animation: blw-shadow 10s ease-in-out infinite alternate; }
.scn-berengarius-last-words .dust-motes { position:absolute; top:10%; left:20%; width:5px; height:5px; background: rgba(220,200,160,0.3); border-radius: 50%; box-shadow: 40px 30px 12px 3px rgba(220,200,160,0.2), 80px 60px 8px 2px rgba(220,200,160,0.15), 120px 20px 16px 4px rgba(220,200,160,0.25); animation: blw-dust 30s linear infinite; }
@keyframes blw-beam { 0% { opacity: 0.4; transform: skewX(-10deg) scaleY(1); } 50% { opacity: 0.8; transform: skewX(-8deg) scaleY(1.05); } 100% { opacity: 0.3; transform: skewX(-12deg) scaleY(0.95); } }
@keyframes blw-kneel { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes blw-cross { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); box-shadow: 0 0 12px 4px rgba(200,180,120,0.5); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes blw-shadow { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.6; transform: scaleY(1.1); } 100% { opacity: 0.4; transform: scaleY(0.9); } }
@keyframes blw-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: 0.6; } 50% { transform: translate(60px, 80px) scale(1.5); opacity: 0.3; } 90% { opacity: 0.5; } 100% { transform: translate(120px, 160px) scale(0.5); opacity: 0; } }

.scn-epitaphium-testamentarium { background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 30%, #3a3a2a 60%, #2a2a1a 100%), radial-gradient(ellipse at 50% 50%, #4a4a3a 0%, transparent 70%); }
.scn-epitaphium-testamentarium .wall-tomb { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #2a2a2a 0%, #3a3a2a 100%); border-bottom: 2px solid #4a4a3a; }
.scn-epitaphium-testamentarium .table { position:absolute; bottom:15%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-epitaphium-testamentarium .scroll { position:absolute; bottom:22%; left:38%; width:24%; height:6%; background: linear-gradient(180deg, #c8b88a 0%, #a89868 100%); border-radius: 2px; transform: rotate(-2deg); animation: eat-scroll 6s ease-in-out infinite alternate; }
.scn-epitaphium-testamentarium .skull { position:absolute; bottom:24%; left:52%; width:24px; height:28px; background: linear-gradient(180deg, #b8a888 0%, #887868 100%); border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%; transform: rotate(10deg); box-shadow: inset 0 -2px 4px rgba(0,0,0,0.3); animation: eat-skull 12s ease-in-out infinite; }
.scn-epitaphium-testamentarium .candle { position:absolute; bottom:23%; left:34%; width:6px; height:20px; background: linear-gradient(180deg, #e8d8c8 0%, #a89888 100%); border-radius: 2px; transform: rotate(-5deg); }
.scn-epitaphium-testamentarium .candle-glow { position:absolute; bottom:28%; left:33.5%; width:10px; height:10px; background: radial-gradient(circle, rgba(255,200,100,0.8) 0%, rgba(255,200,100,0.2) 50%, transparent 100%); border-radius: 50%; animation: eat-glow 3s ease-in-out infinite alternate; }
@keyframes eat-scroll { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes eat-skull { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes eat-glow { 0% { opacity: 0.6; transform: scale(1); box-shadow: 0 0 8px 4px rgba(255,200,100,0.6); } 33% { opacity: 0.9; transform: scale(1.2); box-shadow: 0 0 14px 6px rgba(255,200,100,0.8); } 66% { opacity: 0.7; transform: scale(1.1); box-shadow: 0 0 10px 5px rgba(255,200,100,0.7); } 100% { opacity: 0.5; transform: scale(1); box-shadow: 0 0 6px 3px rgba(255,200,100,0.5); } }

.scn-improvisatore-intro { background: linear-gradient(180deg, #1a1a1a 0%, #2a1a1a 30%, #3a2a1a 60%, #2a1a0a 100%), radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%); }
.scn-improvisatore-intro .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a1a 0%, #3a2a1a 50%, #2a1a0a 100%); }
.scn-improvisatore-intro .window-night { position:absolute; top:8%; right:12%; width:20%; height:30%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border: 4px solid #4a3a2a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: imt-window 15s ease-in-out infinite alternate; }
.scn-improvisatore-intro .fireplace { position:absolute; bottom:10%; left:15%; width:25%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
.scn-improvisatore-intro .figure-lady { position:absolute; bottom:12%; left:30%; width:20px; height:45px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: imt-lady 8s ease-in-out infinite; }
.scn-improvisatore-intro .figure-gent { position:absolute; bottom:12%; left:48%; width:22px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: imt-gent 10s ease-in-out infinite; }
.scn-improvisatore-intro .chair { position:absolute; bottom:10%; left:50%; width:30px; height:35px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 4% 4% 0 0; transform: translateX(-50%); }
.scn-improvisatore-intro .fire-glow { position:absolute; bottom:18%; left:20%; width:20%; height:15%; background: radial-gradient(ellipse at 50% 100%, rgba(255,160,60,0.3) 0%, transparent 70%); animation: imt-fire 4s ease-in-out infinite alternate; }
@keyframes imt-window { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes imt-lady { 0% { transform: translateX(0) rotate(-2deg); } 33% { transform: translateX(3px) rotate(1deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes imt-gent { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes imt-fire { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.7; transform: scaleY(1.2); } 100% { opacity: 0.4; transform: scaleY(0.9); } }

.scn-improvisatore-discourse { background: linear-gradient(180deg, #1a1210 0%, #2a1a18 30%, #3a2a20 60%, #2a1a10 100%), radial-gradient(ellipse at 60% 30%, #4a3a30 0%, transparent 70%); }
.scn-improvisatore-discourse .study-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a18 0%, #3a2a20 50%, #2a1a10 100%); }
.scn-improvisatore-discourse .bookshelf { position:absolute; top:5%; right:5%; width:25%; height:60%; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 20%, #3a2a1a 100%); border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); animation: imd-shelf 20s ease-in-out infinite alternate; }
.scn-improvisatore-discourse .figure-profile { position:absolute; bottom:12%; left:25%; width:22px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 50% 40% 40% / 50% 60% 40% 40%; transform: rotate(5deg); transform-origin: bottom center; animation: imd-figure 12s ease-in-out infinite; }
.scn-improvisatore-discourse .book-open { position:absolute; bottom:18%; left:38%; width:30px; height:20px; background: linear-gradient(180deg, #c8b88a 0%, #a89868 100%); border-radius: 2px; transform: rotate(-8deg); box-shadow: 2px 2px 4px rgba(0,0,0,0.4); animation: imd-book 8s ease-in-out infinite alternate; }
.scn-improvisatore-discourse .lamp { position:absolute; bottom:22%; right:20%; width:8px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 2px; transform: rotate(-10deg); }
.scn-improvisatore-discourse .lamp-glow { position:absolute; bottom:25%; right:17%; width:20%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(255,200,120,0.25) 0%, transparent 70%); animation: imd-glow 5s ease-in-out infinite alternate; }
.scn-improvisatore-discourse .shadow-thought { position:absolute; bottom:10%; left:20%; width:40%; height:15%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 70%); animation: imd-shadow 14s ease-in-out infinite alternate; }
@keyframes imd-shelf { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes imd-figure { 0% { transform: rotate(5deg) translateY(0); } 33% { transform: rotate(3deg) translateY(-2px); } 66% { transform: rotate(6deg) translateY(0); } 100% { transform: rotate(5deg) translateY(-1px); } }
@keyframes imd-book { 0% { transform: rotate(-8deg) translateX(0); } 50% { transform: rotate(-6deg) translateX(2px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes imd-glow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(0.95); } }
@keyframes imd-shadow { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.5; transform: scaleY(1.15); } 100% { opacity: 0.4; transform: scaleY(0.9); } }

.scn-anne-ballads {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #0f0f25 100%), radial-gradient(ellipse at 50% 30%, #2a2a5e 0%, transparent 70%);
}
.scn-anne-ballads .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0f0f2a 0%, #1a1a3e 60%, transparent 100%);
  animation: ab-sky 20s ease-in-out infinite alternate;
}
.scn-anne-ballads .stars {
  position: absolute; inset: 0 0 50% 0;
  background: radial-gradient(2px 2px at 20% 15%, #fff, transparent),
              radial-gradient(3px 3px at 45% 10%, #ffe, transparent),
              radial-gradient(1px 1px at 70% 20%, #fff, transparent),
              radial-gradient(2px 2px at 85% 8%, #ffe, transparent),
              radial-gradient(1px 2px at 10% 30%, #fff, transparent);
  opacity: 0.8;
  animation: ab-stars 5s ease-in-out infinite alternate;
}
.scn-anne-ballads .moon {
  position: absolute; top: 8%; left: 65%; width: 30px; height: 30px;
  background: radial-gradient(circle, #d0d0e0 0%, #a0a0c0 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(160,160,200,0.3);
  animation: ab-moon 30s ease-in-out infinite alternate;
}
.scn-anne-ballads .clouds-a {
  position: absolute; top: 5%; left: -10%; width: 40%; height: 12%;
  background: linear-gradient(180deg, rgba(30,30,50,0.6) 0%, transparent 100%);
  border-radius: 30% 70% 50% 50% / 40% 60% 30% 70%;
  filter: blur(8px);
  animation: ab-clouds 25s linear infinite;
}
.scn-anne-ballads .clouds-b {
  position: absolute; top: 12%; right: -5%; width: 35%; height: 10%;
  background: linear-gradient(180deg, rgba(40,40,60,0.5) 0%, transparent 100%);
  border-radius: 60% 40% 40% 60% / 50% 50% 40% 60%;
  filter: blur(6px);
  animation: ab-clouds 35s linear infinite reverse;
}
.scn-anne-ballads .cottage {
  position: absolute; bottom: 25%; left: 25%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ab-cottage 6s ease-in-out infinite;
}
.scn-anne-ballads .window-light {
  position: absolute; bottom: 35%; left: 30%; width: 14px; height: 18px;
  background: radial-gradient(circle, #f0c868 0%, #b08040 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.4);
  animation: ab-glow 3s ease-in-out infinite alternate;
}
.scn-anne-ballads .figure-singing {
  position: absolute; bottom: 24%; left: 28%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ab-sway 4s ease-in-out infinite;
}
.scn-anne-ballads .shipwreck {
  position: absolute; bottom: 30%; right: 10%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  opacity: 0.6;
  transform: rotate(15deg);
  animation: ab-shipwreck 8s ease-in-out infinite alternate;
}
@keyframes ab-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ab-stars {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1); }
  100% { opacity: 0.7; transform: scale(0.98); }
}
@keyframes ab-moon {
  0% { transform: translateY(0) scale(1); opacity: 0.9; }
  50% { transform: translateY(-4px) scale(1.02); opacity: 1; }
  100% { transform: translateY(0) scale(0.98); opacity: 0.85; }
}
@keyframes ab-clouds {
  0% { transform: translateX(0); }
  50% { transform: translateX(40px); }
  100% { transform: translateX(80px); }
}
@keyframes ab-cottage {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ab-glow {
  0% { box-shadow: 0 0 15px 4px #b08040; opacity: 0.8; }
  50% { box-shadow: 0 0 30px 10px #f0c868; opacity: 1; }
  100% { box-shadow: 0 0 20px 6px #b08040; opacity: 0.9; }
}
@keyframes ab-sway {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(6px) rotate(-1deg); }
  75% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ab-shipwreck {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-2px); }
  100% { transform: rotate(12deg) translateY(0); }
}

.scn-westphalian-song {
  background: linear-gradient(180deg, #1a1814 0%, #2a2420 50%, #3a322e 100%), radial-gradient(ellipse at 50% 80%, #4a423e 0%, transparent 70%);
}
.scn-westphalian-song .room-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a322e 0%, #2a2420 60%, transparent 100%);
  animation: ws-wall 12s ease-in-out infinite alternate;
}
.scn-westphalian-song .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1e16 0%, #1a100a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 10px 15px rgba(0,0,0,0.5);
  animation: ws-floor 18s ease-in-out infinite alternate;
}
.scn-westphalian-song .door {
  position: absolute; bottom: 20%; left: 15%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 2% 2%;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.4);
  transform: skewY(-3deg);
  animation: ws-door 8s ease-in-out infinite;
}
.scn-westphalian-song .table {
  position: absolute; bottom: 22%; left: 40%; width: 70px; height: 15px;
  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: ws-table 6s ease-in-out infinite;
}
.scn-westphalian-song .candle {
  position: absolute; bottom: 35%; left: 48%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #e0c070 0%, #a08030 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  animation: ws-candle 4s ease-in-out infinite;
}
.scn-westphalian-song .candle-glow {
  position: absolute; bottom: 30%; left: 48%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(240,200,100,0.6) 0%, transparent 100%);
  border-radius: 50%;
  transform: translate(-50%, 50%);
  animation: ws-glow 3s ease-in-out infinite alternate;
}
.scn-westphalian-song .figure-greeting {
  position: absolute; bottom: 18%; left: 55%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #1a1620 0%, #0a0810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ws-bow 4s ease-in-out infinite;
}
@keyframes ws-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ws-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ws-door { 0% { transform: skewY(-3deg); } 50% { transform: skewY(-1deg); } 100% { transform: skewY(-3deg); } }
@keyframes ws-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ws-candle {
  0% { transform: translateX(-50%) scale(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scale(1.05); opacity: 1; }
  100% { transform: translateX(-50%) scale(1); opacity: 0.95; }
}
@keyframes ws-glow {
  0% { transform: translate(-50%, 50%) scale(1); opacity: 0.6; }
  50% { transform: translate(-50%, 50%) scale(1.2); opacity: 1; }
  100% { transform: translate(-50%, 50%) scale(0.9); opacity: 0.7; }
}
@keyframes ws-bow {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(5deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}

.scn-hymn-to-earth-intro {
  background: linear-gradient(180deg, #f5e0c0 0%, #f0d4a8 30%, #d8b880 60%, #b09060 100%), radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 70%);
}
.scn-hymn-to-earth-intro .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0d0e8 0%, #e0f0ff 40%, transparent 100%);
  animation: he-sky 10s ease-in-out infinite alternate;
}
.scn-hymn-to-earth-intro .sun-rays {
  position: absolute; top: 0; left: 30%; width: 100px; height: 200px;
  background: linear-gradient(180deg, rgba(255,220,100,0.3) 0%, transparent 100%);
  clip-path: polygon(40% 0%, 60% 0%, 100% 100%, 0% 100%);
  filter: blur(10px);
  animation: he-rays 6s ease-in-out infinite alternate;
}
.scn-hymn-to-earth-intro .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a9a5a 0%, #5a7a3a 100%);
  border-radius: 50% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: he-hills 18s ease-in-out infinite alternate;
}
.scn-hymn-to-earth-intro .meadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a8a3a 0%, #3a5a1a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: he-meadow 12s ease-in-out infinite alternate;
}
.scn-hymn-to-earth-intro .flowers {
  position: absolute; bottom: 18%; left: 20%; width: 30px; height: 20px;
  background: radial-gradient(circle at 50% 0%, #f0a080 0%, #d07050 50%, transparent 60%),
              radial-gradient(circle at 70% 20%, #f0c060 0%, #d0a040 50%, transparent 60%),
              radial-gradient(circle at 30% 10%, #e07090 0%, #c05070 50%, transparent 60%);
  filter: blur(1px);
  animation: he-flowers 4s ease-in-out infinite;
}
.scn-hymn-to-earth-intro .figure-reclining {
  position: absolute; bottom: 18%; left: 40%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: he-recline 8s ease-in-out infinite;
}
@keyframes he-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes he-rays {
  0% { transform: translateX(0) rotate(-5deg); opacity: 0.5; }
  50% { transform: translateX(10px) rotate(0deg); opacity: 0.8; }
  100% { transform: translateX(0) rotate(5deg); opacity: 0.6; }
}
@keyframes he-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes he-meadow { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes he-flowers { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes he-recline {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}

.scn-hexameter-technique {
  background: linear-gradient(180deg, #2a2420 0%, #3a322e 40%, #4a423e 100%), radial-gradient(ellipse at 50% 60%, #5a524e 0%, transparent 70%);
}
.scn-hexameter-technique .study-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a322e 0%, #2a2420 60%, transparent 100%);
  animation: ht-wall 14s ease-in-out infinite alternate;
}
.scn-hexameter-technique .desk {
  position: absolute; bottom: 25%; left: 20%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: ht-desk 6s ease-in-out infinite;
}
.scn-hexameter-technique .inkpot {
  position: absolute; bottom: 35%; left: 25%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 30% 30% 20% 20%;
  transform: translateY(0);
  animation: ht-inkpot 4s ease-in-out infinite;
}
.scn-hexameter-technique .quill {
  position: absolute; bottom: 38%; left: 30%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: ht-quill 3s ease-in-out infinite;
}
.scn-hexameter-technique .scroll {
  position: absolute; bottom: 32%; left: 50%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: scaleX(0.9);
  animation: ht-scroll 5s ease-in-out infinite alternate;
}
.scn-hexameter-technique .candle {
  position: absolute; bottom: 35%; left: 60%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #e0c070 0%, #a08030 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateY(0);
  animation: ht-candle 4s ease-in-out infinite;
}
.scn-hexameter-technique .candle-light {
  position: absolute; bottom: 30%; left: 60%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(240,200,100,0.4) 0%, transparent 100%);
  border-radius: 50%;
  transform: translate(-50%, 50%);
  animation: ht-candle-glow 3s ease-in-out infinite alternate;
}
.scn-hexameter-technique .figure-writing {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 34px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ht-write 4s ease-in-out infinite;
}
@keyframes ht-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ht-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ht-inkpot { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ht-quill {
  0% { transform: rotate(15deg); }
  50% { transform: rotate(20deg) translateX(2px); }
  100% { transform: rotate(15deg); }
}
@keyframes ht-scroll { 0% { transform: scaleX(0.9) translateY(0); } 50% { transform: scaleX(0.92) translateY(-2px); } 100% { transform: scaleX(0.9) translateY(0); } }
@keyframes ht-candle {
  0% { transform: translateY(0) scale(1); opacity: 0.9; }
  50% { transform: translateY(-2px) scale(1.03); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.95; }
}
@keyframes ht-candle-glow {
  0% { transform: translate(-50%, 50%) scale(1); opacity: 0.5; }
  50% { transform: translate(-50%, 50%) scale(1.3); opacity: 0.8; }
  100% { transform: translate(-50%, 50%) scale(0.9); opacity: 0.6; }
}
@keyframes ht-write {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-2deg); }
  100% { transform: rotate(0deg); }
}

/* improvisatore-resolution – calm, dim-interior */
.scn-improvisatore-resolution {
  background: linear-gradient(180deg, #1e1a2e 0%, #2a2438 40%, #3d2e4a 100%),
              radial-gradient(ellipse at 50% 80%, #3d2e4a 0%, transparent 70%);
}
.scn-improvisatore-resolution .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(90deg, #2a2438 0%, #3a3048 50%, #2a2438 100%); }
.scn-improvisatore-resolution .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a2e3a 0%, #1e1a2a 100%); border-radius: 40% 0 0 0; }
.scn-improvisatore-resolution .window { position: absolute; top: 12%; left: 50%; width: 30%; height: 40%; transform: translateX(-50%); background: radial-gradient(ellipse at center, #4a3a5a 0%, #1a162a 100%); border: 4px solid #2a1e2e; border-radius: 4% 4% 40% 40%; box-shadow: inset 0 0 30px rgba(0,0,0,.5), 0 0 20px rgba(74,58,90,.3); animation: ir-glow 8s ease-in-out infinite alternate; }
.scn-improvisatore-resolution .table { position: absolute; bottom: 30%; left: 50%; width: 40%; height: 6%; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%); border-radius: 4%; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-improvisatore-resolution .plant { position: absolute; bottom: 36%; left: 55%; width: 10%; height: 20%; background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ir-sway 6s ease-in-out infinite; }
.scn-improvisatore-resolution .figure { position: absolute; bottom: 30%; left: 38%; width: 12%; height: 35%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ir-breathe 12s ease-in-out infinite; }
.scn-improvisatore-resolution .candle { position: absolute; bottom: 33%; left: 46%; width: 2%; height: 10%; background: linear-gradient(180deg, #d4a060 0%, #8a6030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 10px 2px #d4a060; animation: ir-flicker 3s ease-in-out infinite; }
.scn-improvisatore-resolution .glow { position: absolute; bottom: 30%; left: 44%; width: 12%; height: 18%; background: radial-gradient(ellipse, rgba(212,160,96,.3) 0%, transparent 70%); filter: blur(8px); animation: ir-glow-pulse 4s ease-in-out infinite alternate; }
.scn-improvisatore-resolution .shadow { position: absolute; bottom: 30%; left: 35%; width: 20%; height: 20%; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); transform: rotate(15deg); animation: ir-shadow-drift 10s ease-in-out infinite; }
@keyframes ir-glow { 0% { opacity: .7; box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 0 10px rgba(74,58,90,.2); } 50% { opacity: .85; box-shadow: inset 0 0 30px rgba(0,0,0,.5), 0 0 20px rgba(74,58,90,.3); } 100% { opacity: .75; box-shadow: inset 0 0 25px rgba(0,0,0,.5), 0 0 15px rgba(74,58,90,.25); } }
@keyframes ir-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes ir-breathe { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes ir-flicker { 0% { opacity: .9; transform: scaleY(1); } 25% { opacity: 1; transform: scaleY(1.05); } 50% { opacity: .85; transform: scaleY(.95); } 75% { opacity: 1; transform: scaleY(1.03); } 100% { opacity: .9; transform: scaleY(1); } }
@keyframes ir-glow-pulse { 0% { opacity: .5; transform: scale(1); } 50% { opacity: .8; transform: scale(1.1); } 100% { opacity: .6; transform: scale(1.05); } }
@keyframes ir-shadow-drift { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(18deg) translateX(5px); } 100% { transform: rotate(15deg) translateX(0); } }

/* to-mary-pridham – warm, dim-interior */
.scn-to-mary-pridham {
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 40%, #5a4a3a 100%),
              radial-gradient(ellipse at 50% 70%, #5a4a3a 0%, transparent 60%);
}
.scn-to-mary-pridham .bg-warm { position: absolute; inset: 0; background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 100%); opacity: .8; }
.scn-to-mary-pridham .desk { position: absolute; bottom: 20%; left: 10%; right: 10%; height: 8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4%; box-shadow: 0 6px 20px rgba(0,0,0,.5); }
.scn-to-mary-pridham .album { position: absolute; bottom: 28%; left: 50%; width: 20%; height: 15%; transform: translateX(-50%); background: linear-gradient(180deg, #8a7050 0%, #5a4a3a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 12px rgba(0,0,0,.4), inset 0 2px 4px rgba(255,255,255,.1); transform-origin: bottom center; animation: mp-breathe 10s ease-in-out infinite; }
.scn-to-mary-pridham .quill { position: absolute; bottom: 30%; left: 58%; width: 2%; height: 20%; background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 100%); border-radius: 80% 80% 10% 10%; transform: rotate(15deg); transform-origin: bottom center; animation: mp-quill 5s ease-in-out infinite; }
.scn-to-mary-pridham .candle { position: absolute; bottom: 25%; left: 42%; width: 3%; height: 14%; background: linear-gradient(180deg, #e0c080 0%, #a08050 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 4px #e0c080; animation: mp-candle 3s ease-in-out infinite; }
.scn-to-mary-pridham .glow { position: absolute; bottom: 20%; left: 40%; width: 20%; height: 30%; background: radial-gradient(ellipse, rgba(224,192,128,.3) 0%, transparent 70%); filter: blur(10px); animation: mp-glow 4s ease-in-out infinite alternate; }
.scn-to-mary-pridham .marginalia { position: absolute; bottom: 28%; left: 38%; width: 10%; height: 12%; background: linear-gradient(135deg, #6a5a4a 20%, transparent 20%, transparent 40%, #6a5a4a 40%, #6a5a4a 60%, transparent 60%, transparent 80%, #6a5a4a 80%); opacity: .4; border-radius: 2%; animation: mp-marg 15s linear infinite; }
@keyframes mp-breathe { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes mp-quill { 0% { transform: rotate(15deg); } 50% { transform: rotate(20deg) translateY(-3px); } 100% { transform: rotate(15deg); } }
@keyframes mp-candle { 0% { opacity: .9; transform: scaleY(1); } 25% { opacity: 1; transform: scaleY(1.04); } 50% { opacity: .85; transform: scaleY(.96); } 75% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: .9; transform: scaleY(1); } }
@keyframes mp-glow { 0% { opacity: .4; transform: scale(1); } 50% { opacity: .7; transform: scale(1.15); } 100% { opacity: .5; transform: scale(1.05); } }
@keyframes mp-marg { 0% { background-position: 0 0; } 100% { background-position: 100% 100%; } }

/* alice-du-clos-intro – tense, overcast */
.scn-alice-du-clos-intro {
  background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 40%, #5a5a6a 100%),
              radial-gradient(ellipse at 50% 0%, #5a5a6a 0%, transparent 60%);
}
.scn-alice-du-clos-intro .sky-overcast { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #4a4a5a 0%, #5a5a6a 100%); animation: ac-sky 15s ease-in-out infinite alternate; }
.scn-alice-du-clos-intro .castle-wall { position: absolute; bottom: 30%; left: 0; right: 0; height: 70%; background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 30%, #4a4a5a 70%, #2a2a3a 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.5); }
.scn-alice-du-clos-intro .doorway { position: absolute; bottom: 30%; left: 50%; width: 20%; height: 50%; transform: translateX(-50%); background: radial-gradient(ellipse at bottom, #1a1a2a 0%, #2a2a3a 100%); border: 3px solid #4a4a5a; border-bottom: none; border-radius: 40% 40% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.7); }
.scn-alice-du-clos-intro .knight { position: absolute; bottom: 32%; left: 38%; width: 14%; height: 40%; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 40%, #2a2a3a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ac-knight 4s ease-in-out infinite; }
.scn-alice-du-clos-intro .alice { position: absolute; bottom: 32%; left: 52%; width: 10%; height: 30%; background: linear-gradient(180deg, #6a5a5a 0%, #4a3a3a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ac-alice 6s ease-in-out infinite; }
.scn-alice-du-clos-intro .sword { position: absolute; bottom: 40%; left: 36%; width: 2%; height: 25%; background: linear-gradient(180deg, #8a8a9a 0%, #5a5a6a 100%); border-radius: 10%; transform: rotate(-20deg); transform-origin: bottom center; animation: ac-sword 4s ease-in-out infinite; }
.scn-alice-du-clos-intro .clouds { position: absolute; top: 5%; left: 0; right: 0; height: 25%; background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.2) 30%, rgba(255,255,255,.1) 70%, transparent 100%); filter: blur(12px); animation: ac-clouds 25s linear infinite; }
.scn-alice-du-clos-intro .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 32%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 80% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
@keyframes ac-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes ac-knight { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ac-alice { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-3px) scaleY(1.02); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes ac-sword { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg) translateY(-2px); } 100% { transform: rotate(-20deg); } }
@keyframes ac-clouds { 0% { transform: translateX(-20%); } 50% { transform: translateX(10%); } 100% { transform: translateX(-20%); } }

/* alice-du-clos-two – tense, overcast, studious */
.scn-alice-du-clos-two {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 50%, #4a4a5a 100%),
              radial-gradient(ellipse at 50% 20%, #4a4a5a 0%, transparent 70%);
}
.scn-alice-du-clos-two .wall-light { position: absolute; inset: 0 0 20% 0; background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 30%, #4a4a5a 70%, #2a2a3a 100%); }
.scn-alice-du-clos-two .window-bower { position: absolute; top: 10%; left: 50%; width: 30%; height: 50%; transform: translateX(-50%); background: radial-gradient(ellipse at center, #4a4a5a 0%, #2a2a3a 100%); border: 4px solid #3a3a4a; border-radius: 30% 30% 10% 10%; box-shadow: inset 0 0 30px rgba(0,0,0,.5), 0 0 10px rgba(0,0,0,.3); animation: ac2-window 10s ease-in-out infinite alternate; }
.scn-alice-du-clos-two .star { position: absolute; top: 18%; left: 52%; width: 2%; height: 2%; background: radial-gradient(circle, #c0d0ff 0%, #8090c0 100%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(128,144,192,.6), 0 0 24px 8px rgba(128,144,192,.3); animation: ac2-star 5s ease-in-out infinite alternate; }
.scn-alice-du-clos-two .alice-reading { position: absolute; bottom: 30%; left: 50%; width: 14%; height: 35%; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ac2-alice 8s ease-in-out infinite; }
.scn-alice-du-clos-two .book { position: absolute; bottom: 33%; left: 50%; width: 10%; height: 8%; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ac2-book 12s ease-in-out infinite; }
.scn-alice-du-clos-two .curtains { position: absolute; top: 10%; left: 35%; width: 12%; height: 50%; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 20% 20% 10% 10%; transform-origin: top; animation: ac2-curtain 20s ease-in-out infinite alternate; }
.scn-alice-du-clos-two .cushion { position: absolute; bottom: 28%; left: 46%; width: 18%; height: 6%; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.4); }
.scn-alice-du-clos-two .shadow-strip { position: absolute; bottom: 30%; left: 0; right: 0; height: 4%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.3) 40%, transparent 60%, rgba(0,0,0,.2) 80%, transparent 100%); animation: ac2-shadow 15s linear infinite; }
@keyframes ac2-window { 0% { opacity: .7; box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 0 5px rgba(0,0,0,.2); } 50% { opacity: .9; box-shadow: inset 0 0 30px rgba(0,0,0,.5), 0 0 15px rgba(0,0,0,.3); } 100% { opacity: .75; box-shadow: inset 0 0 25px rgba(0,0,0,.5), 0 0 10px rgba(0,0,0,.25); } }
@keyframes ac2-star { 0% { opacity: .6; transform: scale(1); box-shadow: 0 0 8px 2px rgba(128,144,192,.4), 0 0 16px 4px rgba(128,144,192,.2); } 50% { opacity: 1; transform: scale(1.2); box-shadow: 0 0 14px 6px rgba(128,144,192,.7), 0 0 28px 10px rgba(128,144,192,.4); } 100% { opacity: .7; transform: scale(1.1); box-shadow: 0 0 10px 3px rgba(128,144,192,.5), 0 0 20px 6px rgba(128,144,192,.3); } }
@keyframes ac2-alice { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-52%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ac2-book { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ac2-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(1); } }
@keyframes ac2-shadow { 0% { transform: translateX(-20%); } 100% { transform: translateX(20%); } }

/* dirge-for-king-eight */
.scn-dirge-for-king-eight { background: linear-gradient(180deg, #1c1620 0%, #2d2233 40%, #3d2a3a 100%), radial-gradient(ellipse at 50% 80%, #4a2e3e 0%, transparent 70%); }
.scn-dirge-for-king-eight .wall { position: absolute; inset: 0; background: linear-gradient(180deg, #2a2030 0%, #1c1620 100%); opacity: 0.8; }
.scn-dirge-for-king-eight .window-warm { position: absolute; top: 8%; left: 25%; width: 28%; height: 40%; background: linear-gradient(135deg, #6b5a4a 0%, #8a7050 50%, #5a4a3a 100%); border-radius: 4% 4% 8% 8%; box-shadow: inset 0 0 30px rgba(200,170,120,0.4), 0 0 40px rgba(200,170,120,0.15); animation: dk8-window 6s ease-in-out infinite alternate; }
.scn-dirge-for-king-eight .desk { position: absolute; bottom: 12%; left: 10%; right: 10%; height: 8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 2% 2% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.6); }
.scn-dirge-for-king-eight .candle { position: absolute; bottom: 20%; left: 50%; width: 6px; height: 16px; background: linear-gradient(180deg, #e8c8a0 0%, #c8a070 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 30px 10px rgba(232,200,160,0.6), 0 0 60px 20px rgba(232,200,160,0.2); animation: dk8-candle 2s ease-in-out infinite; transform: translateX(-50%); }
.scn-dirge-for-king-eight .vine { position: absolute; top: 0; left: 60%; width: 30%; height: 70%; background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%); border-radius: 30% 60% 40% 20% / 20% 50% 30% 60%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); filter: blur(1px); animation: dk8-vine 12s ease-in-out infinite alternate; }
.scn-dirge-for-king-eight .crown { position: absolute; top: 5%; left: 65%; width: 40px; height: 20px; background: linear-gradient(135deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); transform: rotate(-15deg); animation: dk8-crown 4s ease-in-out infinite; }
.scn-dirge-for-king-eight .fig-silhouette { position: absolute; bottom: 18%; left: 30%; width: 30px; height: 60px; background: linear-gradient(180deg, #1a1218 0%, #0c080e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: dk8-fig 8s ease-in-out infinite; }
@keyframes dk8-window { 0% { opacity: 0.9; box-shadow: 0 0 30px rgba(200,170,120,0.4), 0 0 40px rgba(200,170,120,0.15); } 50% { opacity: 1; box-shadow: 0 0 40px rgba(220,190,140,0.6), 0 0 80px rgba(220,190,140,0.2); } 100% { opacity: 0.85; box-shadow: 0 0 20px rgba(180,150,100,0.3), 0 0 30px rgba(180,150,100,0.1); } }
@keyframes dk8-candle { 0% { transform: translateX(-50%) scaleY(1); } 25% { transform: translateX(-50%) scaleY(1.02); } 50% { transform: translateX(-50%) scaleY(0.98); } 75% { transform: translateX(-50%) scaleY(1.01); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes dk8-vine { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.02); } 100% { transform: translateY(3px) scaleX(0.98); } }
@keyframes dk8-crown { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-18deg) translateY(-2px); } 100% { transform: rotate(-12deg) translateY(1px); } }
@keyframes dk8-fig { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 60% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* youth-and-age-intro */
.scn-youth-and-age-intro { background: linear-gradient(180deg, #ecdbc8 0%, #d4c0a8 50%, #b8a088 100%), radial-gradient(ellipse at 50% 100%, #c8b098 0%, transparent 60%); }
.scn-youth-and-age-intro .wall-soft { position: absolute; inset: 0; background: linear-gradient(180deg, #f0e6d8 0%, #e0d0c0 100%); opacity: 0.5; }
.scn-youth-and-age-intro .window-blossom { position: absolute; top: 6%; left: 20%; width: 35%; height: 45%; background: linear-gradient(135deg, #9ab8d4 0%, #b0d0e8 50%, #c8e0f0 100%); border-radius: 4% 4% 10% 10%; box-shadow: inset 0 0 40px rgba(255,255,240,0.3), 0 0 30px rgba(200,220,240,0.2); animation: ya1-window 10s ease-in-out infinite alternate; }
.scn-youth-and-age-intro .table { position: absolute; bottom: 15%; left: 5%; right: 5%; height: 6%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.2); }
.scn-youth-and-age-intro .book { position: absolute; bottom: 21%; left: 40%; width: 40px; height: 50px; background: linear-gradient(135deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 6% 6% 4% 4%; box-shadow: 2px 2px 6px rgba(0,0,0,0.3); transform: rotate(-5deg); animation: ya1-book 8s ease-in-out infinite; }
.scn-youth-and-age-intro .figure-reading { position: absolute; bottom: 21%; left: 50%; width: 40px; height: 70px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: translateX(-50%); animation: ya1-fig 6s ease-in-out infinite; }
.scn-youth-and-age-intro .bee { position: absolute; top: 25%; left: 10%; width: 8px; height: 6px; background: linear-gradient(135deg, #c8a040 0%, #8a6a20 100%); border-radius: 50%; box-shadow: 0 0 6px rgba(200,160,64,0.5); animation: ya1-bee 4s ease-in-out infinite; }
.scn-youth-and-age-intro .petal-1 { position: absolute; top: 12%; left: 30%; width: 16px; height: 12px; background: linear-gradient(180deg, #f0c8b0 0%, #d8a888 100%); border-radius: 50% 50% 20% 20%; filter: blur(1px); animation: ya1-petal 14s linear infinite; }
.scn-youth-and-age-intro .petal-2 { position: absolute; top: 18%; left: 65%; width: 12px; height: 8px; background: linear-gradient(180deg, #e0b8a0 0%, #c89878 100%); border-radius: 50% 50% 20% 20%; filter: blur(1px); animation: ya1-petal 18s linear infinite reverse; }
@keyframes ya1-window { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes ya1-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-6deg) translateY(1px); } }
@keyframes ya1-fig { 0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(2deg); } 60% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(1deg); } }
@keyframes ya1-bee { 0% { transform: translate(0,0) scaleY(1); } 25% { transform: translate(15px,-10px) scaleY(0.9); } 50% { transform: translate(30px,0) scaleY(1.1); } 75% { transform: translate(15px,10px) scaleY(0.95); } 100% { transform: translate(0,0) scaleY(1); } }
@keyframes ya1-petal { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(40px) rotate(180deg); } 100% { transform: translateY(80px) rotate(360deg); } }

/* youth-and-age-two */
.scn-youth-and-age-two { background: linear-gradient(180deg, #1a1a1e 0%, #2a2830 40%, #1e1c24 100%), radial-gradient(ellipse at 50% 30%, #3a3a46 0%, transparent 60%); }
.scn-youth-and-age-two .bg-dark { position: absolute; inset: 0; background: linear-gradient(180deg, #121016 0%, #1a1820 100%); opacity: 0.8; }
.scn-youth-and-age-two .door { position: absolute; bottom: 10%; left: 50%; width: 90px; height: 140px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 6% 6% 0 0; box-shadow: 0 6px 20px rgba(0,0,0,0.7), inset 0 0 20px rgba(0,0,0,0.5); animation: ya2-door 12s ease-in-out infinite alternate; }
.scn-youth-and-age-two .figure-depart { position: absolute; bottom: 10%; left: 35%; width: 34px; height: 76px; background: linear-gradient(180deg, #2a2830 0%, #16141a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ya2-fig 6s ease-in-out infinite; }
.scn-youth-and-age-two .lantern-sad { position: absolute; bottom: 30%; left: 25%; width: 12px; height: 18px; background: radial-gradient(circle, #c0a070 0%, #806040 70%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 8px rgba(192,160,112,0.4), 0 0 60px 16px rgba(192,160,112,0.1); animation: ya2-lantern 3s ease-in-out infinite alternate; }
.scn-youth-and-age-two .shadow-stair { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, transparent 0%, #1a181e 100%); border-radius: 60% 40% 0 0 / 100% 80% 0 0; animation: ya2-stair 10s ease-in-out infinite alternate; }
.scn-youth-and-age-two .bag { position: absolute; bottom: 10%; left: 18%; width: 30px; height: 24px; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); transform: rotate(10deg); animation: ya2-bag 8s ease-in-out infinite; }
@keyframes ya2-door { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(0.98); } 100% { transform: translateX(-50%) scaleX(1.02); } }
@keyframes ya2-fig { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(3deg); } 50% { transform: translateX(8px) rotate(0deg); } 75% { transform: translateX(4px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ya2-lantern { 0% { opacity: 0.8; box-shadow: 0 0 20px 4px rgba(192,160,112,0.3), 0 0 40px 8px rgba(192,160,112,0.1); } 50% { opacity: 1; box-shadow: 0 0 40px 12px rgba(220,180,120,0.6), 0 0 80px 20px rgba(220,180,120,0.2); } 100% { opacity: 0.7; box-shadow: 0 0 15px 3px rgba(160,130,90,0.2), 0 0 30px 6px rgba(160,130,90,0.05); } }
@keyframes ya2-stair { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ya2-bag { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(12deg) translateY(1px); } }

/* youth-and-age-notes */
.scn-youth-and-age-notes { background: linear-gradient(180deg, #2a2a30 0%, #3a3840 40%, #2c2a32 100%), radial-gradient(ellipse at 50% 60%, #4a4850 0%, transparent 60%); }
.scn-youth-and-age-notes .study-wall { position: absolute; inset: 0; background: linear-gradient(180deg, #201e26 0%, #18161c 100%); opacity: 0.7; }
.scn-youth-and-age-notes .desk-wide { position: absolute; bottom: 10%; left: 5%; right: 5%; height: 12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 6% 6% 0 0; box-shadow: 0 -4px 16px rgba(0,0,0,0.5); }
.scn-youth-and-age-notes .inkwell { position: absolute; bottom: 20%; left: 45%; width: 14px; height: 18px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.6); transform: translateX(-50%); animation: yan-inkwell 8s ease-in-out infinite; }
.scn-youth-and-age-notes .manuscript { position: absolute; bottom: 22%; left: 35%; width: 50px; height: 36px; background: linear-gradient(135deg, #f0e8c0 0%, #c8b888 100%); border-radius: 4% 4% 2% 2%; box-shadow: 2px 2px 8px rgba(0,0,0,0.3); transform: rotate(-2deg); animation: yan-manuscript 10s ease-in-out infinite; }
.scn-youth-and-age-notes .candle-desk { position: absolute; bottom: 22%; left: 50%; width: 8px; height: 20px; background: linear-gradient(180deg, #e8c8a0 0%, #c8a070 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 20px 6px rgba(232,200,160,0.5), 0 0 40px 12px rgba(232,200,160,0.15); animation: yan-candle 3s ease-in-out infinite; transform: translateX(-50%); }
.scn-youth-and-age-notes .hand-writing { position: absolute; bottom: 19%; left: 38%; width: 20px; height: 30px; background: linear-gradient(180deg, #c0b090 0%, #a08870 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform: rotate(10deg); animation: yan-hand 4s ease-in-out infinite; }
.scn-youth-and-age-notes .quill { position: absolute; bottom: 22%; left: 42%; width: 30px; height: 4px; background: linear-gradient(90deg, #e0d0c0 0%, #c0b0a0 50%, #a09080 100%); border-radius: 0 50% 50% 0; transform: rotate(-40deg); transform-origin: left center; animation: yan-quill 5s ease-in-out infinite; }
@keyframes yan-inkwell { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(1px); } }
@keyframes yan-manuscript { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(1px); } }
@keyframes yan-candle { 0% { transform: translateX(-50%) scaleY(1); } 25% { transform: translateX(-50%) scaleY(1.03); } 50% { transform: translateX(-50%) scaleY(0.97); } 75% { transform: translateX(-50%) scaleY(1.01); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes yan-hand { 0% { transform: rotate(10deg) translateX(0); } 30% { transform: rotate(12deg) translateX(2px); } 60% { transform: rotate(8deg) translateX(-1px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes yan-quill { 0% { transform: rotate(-40deg); } 25% { transform: rotate(-35deg); } 50% { transform: rotate(-45deg); } 75% { transform: rotate(-38deg); } 100% { transform: rotate(-40deg); } }

.scn-dejection-variants-thirteen {
  background: 
    linear-gradient(180deg, #1e1a2e 0%, #2c2440 40%, #3a2e50 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a5a 0%, transparent 70%);
}
.scn-dejection-variants-thirteen .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a2040 0%, #1e1a2e 100%); 
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6); 
  animation: dvt13-wall 20s ease-in-out infinite alternate;
}
.scn-dejection-variants-thirteen .window {
  position: absolute; top: 10%; left: 55%; width: 120px; height: 160px; 
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); 
  border: 6px solid #3a2a1a; border-radius: 4px; 
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8); 
  animation: dvt13-window 12s ease-in-out infinite alternate;
}
.scn-dejection-variants-thirteen .storm {
  position: absolute; top: 12%; left: 57%; width: 100px; height: 140px; 
  background: linear-gradient(135deg, rgba(180,200,220,0.1) 0%, rgba(100,120,140,0.2) 100%); 
  filter: blur(3px); 
  animation: dvt13-storm 5s ease-in-out infinite alternate;
}
.scn-dejection-variants-thirteen .desk {
  position: absolute; bottom: 15%; left: 30%; width: 140px; height: 20px; 
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); 
  border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-dejection-variants-thirteen .figure {
  position: absolute; bottom: 18%; left: 35%; width: 50px; height: 80px; 
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: dvt13-figure 8s ease-in-out infinite;
}
.scn-dejection-variants-thirteen .lute {
  position: absolute; bottom: 22%; left: 42%; width: 60px; height: 30px; 
  background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 100%); 
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; 
  transform: rotate(-20deg); 
  animation: dvt13-lute 4s ease-in-out infinite;
}
.scn-dejection-variants-thirteen .candle {
  position: absolute; bottom: 24%; left: 38%; width: 8px; height: 50px; 
  background: linear-gradient(180deg, #8a7050 0%, #4a3a2a 100%); 
  border-radius: 2px; 
  animation: dvt13-candle 3s ease-in-out infinite alternate;
}
.scn-dejection-variants-thirteen .glow {
  position: absolute; bottom: 28%; left: 37%; width: 30px; height: 30px; 
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 70%); 
  border-radius: 50%; 
  animation: dvt13-glow 3s ease-in-out infinite alternate;
}
@keyframes dvt13-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes dvt13-window { 0% { box-shadow: inset 0 0 30px rgba(0,0,0,0.8) } 50% { box-shadow: inset 0 0 50px rgba(0,0,0,0.9) } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.7) } }
@keyframes dvt13-storm { 0% { opacity: 0.3; transform: translateX(0) } 50% { opacity: 0.6; transform: translateX(5px) } 100% { opacity: 0.2; transform: translateX(-3px) } }
@keyframes dvt13-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes dvt13-lute { 0% { transform: rotate(-20deg) scale(1) } 50% { transform: rotate(-18deg) scale(0.95) } 100% { transform: rotate(-22deg) scale(1) } }
@keyframes dvt13-candle { 0% { height: 50px } 50% { height: 48px } 100% { height: 52px } }
@keyframes dvt13-glow { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: 0.6; transform: scale(0.9) } }

.scn-dejection-variants-fourteen {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2030 50%, #3a2a3a 100%),
    radial-gradient(ellipse at 30% 80%, #4a3a3a 0%, transparent 60%);
}
.scn-dejection-variants-fourteen .hearth {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%; 
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); 
  border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: dvt14-hearth 15s ease-in-out infinite;
}
.scn-dejection-variants-fourteen .fire {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 80px; 
  background: linear-gradient(180deg, #d06030 0%, #b04020 40%, #802010 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  filter: blur(2px); 
  animation: dvt14-fire 3s ease-in-out infinite alternate;
}
.scn-dejection-variants-fourteen .chair {
  position: absolute; bottom: 15%; right: 30%; width: 70px; height: 60px; 
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); 
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; 
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: dvt14-chair 10s ease-in-out infinite alternate;
}
.scn-dejection-variants-fourteen .figure {
  position: absolute; bottom: 18%; right: 38%; width: 40px; height: 90px; 
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); 
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; 
  transform-origin: bottom center; 
  animation: dvt14-figure 6s ease-in-out infinite;
}
.scn-dejection-variants-fourteen .shadow {
  position: absolute; bottom: 10%; left: 35%; width: 120px; height: 40px; 
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); 
  filter: blur(4px); 
  animation: dvt14-shadow 8s ease-in-out infinite alternate;
}
.scn-dejection-variants-fourteen .mantel {
  position: absolute; top: 30%; left: 15%; right: 15%; height: 12px; 
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); 
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-dejection-variants-fourteen .clock {
  position: absolute; top: 28%; left: 40%; width: 40px; height: 40px; 
  background: radial-gradient(circle, #6a5a4a 0%, #3a2a1a 100%); 
  border-radius: 50%; box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: dvt14-clock 60s linear infinite;
}
@keyframes dvt14-hearth { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes dvt14-fire { 0% { transform: scale(1) translateY(0); opacity: 0.9 } 50% { transform: scale(1.1) translateY(-5px); opacity: 1 } 100% { transform: scale(0.95) translateY(2px); opacity: 0.8 } }
@keyframes dvt14-chair { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes dvt14-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes dvt14-shadow { 0% { transform: scaleX(1); opacity: 0.4 } 50% { transform: scaleX(1.1); opacity: 0.6 } 100% { transform: scaleX(0.9); opacity: 0.3 } }
@keyframes dvt14-clock { 0% { box-shadow: 0 0 10px rgba(0,0,0,0.5) } 50% { box-shadow: 0 0 20px rgba(0,0,0,0.7) } 100% { box-shadow: 0 0 10px rgba(0,0,0,0.5) } }

.scn-dejection-variants-fifteen {
  background: 
    linear-gradient(180deg, #1e1a1e 0%, #2a2428 40%, #3a3038 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a3a 0%, transparent 70%);
}
.scn-dejection-variants-fifteen .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a202a 0%, #1e1a1e 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.7);
  animation: dvt15-wall 18s ease-in-out infinite alternate;
}
.scn-dejection-variants-fifteen .desk {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 15px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-dejection-variants-fifteen .inkwell {
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 20px;
  background: radial-gradient(circle, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: dvt15-inkwell 6s ease-in-out infinite alternate;
}
.scn-dejection-variants-fifteen .paper {
  position: absolute; bottom: 16%; left: 40%; width: 70px; height: 50px;
  background: linear-gradient(135deg, #d4c8b0 0%, #b8a890 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: rotate(-3deg);
  animation: dvt15-paper 12s ease-in-out infinite;
}
.scn-dejection-variants-fifteen .hand {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dvt15-hand 4s ease-in-out infinite;
}
.scn-dejection-variants-fifteen .quill {
  position: absolute; bottom: 28%; left: 48%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #e0d0c0 0%, #a09080 100%);
  border-radius: 2px; transform: rotate(30deg);
  animation: dvt15-quill 3s ease-in-out infinite alternate;
}
.scn-dejection-variants-fifteen .lamp {
  position: absolute; top: 15%; left: 60%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 0 30px rgba(200,180,100,0.3);
  animation: dvt15-lamp 5s ease-in-out infinite alternate;
}
.scn-dejection-variants-fifteen .pool {
  position: absolute; bottom: 10%; left: 35%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,180,100,0.15) 0%, transparent 70%);
  filter: blur(4px);
  animation: dvt15-pool 8s ease-in-out infinite;
}
@keyframes dvt15-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes dvt15-inkwell { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dvt15-paper { 0% { transform: rotate(-3deg) } 50% { transform: rotate(-1deg) } 100% { transform: rotate(-4deg) } }
@keyframes dvt15-hand { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(2px) translateY(-1px) } 50% { transform: translateX(0) translateY(0) } 75% { transform: translateX(-2px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes dvt15-quill { 0% { transform: rotate(30deg) scaleY(1) } 50% { transform: rotate(32deg) scaleY(0.95) } 100% { transform: rotate(28deg) scaleY(1) } }
@keyframes dvt15-lamp { 0% { box-shadow: 0 0 30px rgba(200,180,100,0.3) } 50% { box-shadow: 0 0 50px rgba(200,180,100,0.5) } 100% { box-shadow: 0 0 20px rgba(200,180,100,0.2) } }
@keyframes dvt15-pool { 0% { opacity: 0.3; transform: scale(1) } 50% { opacity: 0.5; transform: scale(1.1) } 100% { opacity: 0.2; transform: scale(0.9) } }

.scn-the-picture-intro {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #3a3a4a 100%),
    radial-gradient(ellipse at 50% 30%, #4a4a5a 0%, transparent 60%);
}
.scn-the-picture-intro .bg-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.5);
  animation: tpi-wall 25s ease-in-out infinite alternate;
}
.scn-the-picture-intro .frame {
  position: absolute; top: 10%; left: 25%; width: 50%; height: 70%; 
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); 
  border: 8px solid #5a4a3a; border-radius: 4px; 
  box-shadow: 0 0 40px rgba(0,0,0,0.7); 
  animation: tpi-frame 8s ease-in-out infinite alternate;
}
.scn-the-picture-intro .portrait {
  position: absolute; top: 15%; left: 30%; width: 40%; height: 60%; 
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); 
  border-radius: 2px; 
  animation: tpi-portrait 12s ease-in-out infinite;
}
.scn-the-picture-intro .eyes {
  position: absolute; top: 35%; left: 38%; width: 8px; height: 8px; 
  background: radial-gradient(circle, #1a1a2a 0%, #0a0a1a 100%); 
  border-radius: 50%; box-shadow: 0 0 6px rgba(0,0,0,0.8); 
  animation: tpi-eyes 4s ease-in-out infinite alternate;
}
.scn-the-picture-intro .shadow-line {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 2px; 
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 50%, transparent 100%); 
  filter: blur(1px);
  animation: tpi-shadow-line 8s ease-in-out infinite;
}
.scn-the-picture-intro .dust-mote {
  position: absolute; top: 40%; left: 20%; width: 4px; height: 4px; 
  background: rgba(200,200,220,0.4); border-radius: 50%; 
  filter: blur(2px); 
  animation: tpi-dust 15s linear infinite;
}
.scn-the-picture-intro .panel {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 30px; 
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); 
  border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
}
@keyframes tpi-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes tpi-frame { 0% { box-shadow: 0 0 40px rgba(0,0,0,0.7) } 50% { box-shadow: 0 0 60px rgba(0,0,0,0.9) } 100% { box-shadow: 0 0 30px rgba(0,0,0,0.6) } }
@keyframes tpi-portrait { 0% { transform: scale(1) } 50% { transform: scale(0.98) } 100% { transform: scale(1) } }
@keyframes tpi-eyes { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(-2px) } }
@keyframes tpi-shadow-line { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.2 } }
@keyframes tpi-dust { 0% { transform: translate(0, 0); opacity: 0.4 } 25% { transform: translate(10px, -5px); opacity: 0.6 } 50% { transform: translate(20px, 0); opacity: 0.3 } 75% { transform: translate(30px, -3px); opacity: 0.5 } 100% { transform: translate(40px, 0); opacity: 0.4 } }

/* talleyrand-woolsack */
.scn-talleyrand-woolsack {
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #1a0e06 100%), radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #1a0e06 80%);
}
.scn-talleyrand-woolsack .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a352a 0%, #2a1a0e 100%);
  animation: tw-wall 15s ease-in-out infinite alternate;
}
.scn-talleyrand-woolsack .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a120e 0%, #0e0a06 100%);
}
.scn-talleyrand-woolsack .woolsack {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 80px;
  background: radial-gradient(ellipse at 50% 60%, #6a4a3a 0%, #3a2a1a 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.6);
  animation: tw-sack 6s ease-in-out infinite;
}
.scn-talleyrand-woolsack .lord-figure {
  position: absolute; bottom: 30%; left: 45%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tw-lord 4s ease-in-out infinite;
}
.scn-talleyrand-woolsack .candle {
  position: absolute; bottom: 40%; left: 70%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #e0c080 0%, #6a4a2a 100%);
  border-radius: 30%;
  transform: rotate(-5deg);
}
.scn-talleyrand-woolsack .candle-glow {
  position: absolute; bottom: 38%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.4) 50%, transparent 70%);
  border-radius: 50%;
  animation: tw-glow 3s ease-in-out infinite alternate;
}
.scn-talleyrand-woolsack .drapery {
  position: absolute; top: 0; left: 10%; width: 80px; height: 100%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0e 100%);
  border-radius: 20% 40% 0 0;
  filter: blur(2px);
  animation: tw-drape 8s ease-in-out infinite alternate;
}
.scn-talleyrand-woolsack .shadow-bag {
  position: absolute; bottom: 18%; left: 38%; width: 30px; height: 20px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(4px);
}
@keyframes tw-wall {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes tw-sack {
  0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05); } 100% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes tw-lord {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-3px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes tw-glow {
  0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.7; }
}
@keyframes tw-drape {
  0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(2px) rotate(-1deg); }
}

/* talleyrand-lungs */
.scn-talleyrand-lungs {
  background: linear-gradient(180deg, #1e1410 0%, #2a1e1a 50%, #0e0a06 100%), radial-gradient(ellipse at 50% 40%, #2a1e1a 0%, transparent 70%);
}
.scn-talleyrand-lungs .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a22 0%, #1a0e0a 100%);
  animation: tl-room 12s ease-in-out infinite alternate;
}
.scn-talleyrand-lungs .clock {
  position: absolute; top: 20%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #5a4a3a 0%, #2a1e12 70%);
  border-radius: 50%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
  animation: tl-clock 60s linear infinite;
}
.scn-talleyrand-lungs .lord-chest {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 60px;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0a06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: tl-chest 4s ease-in-out infinite;
}
.scn-talleyrand-lungs .lungs-left {
  position: absolute; bottom: 42%; left: 44%; width: 30px; height: 35px;
  background: radial-gradient(ellipse at 60% 40%, #c8a080 0%, #8a6a4a 70%);
  border-radius: 50% 40% 50% 40% / 60% 50% 50% 40%;
  animation: tl-lungs 3s ease-in-out infinite alternate;
}
.scn-talleyrand-lungs .lungs-right {
  position: absolute; bottom: 42%; left: 56%; width: 30px; height: 35px;
  background: radial-gradient(ellipse at 40% 40%, #c8a080 0%, #8a6a4a 70%);
  border-radius: 40% 50% 40% 50% / 50% 60% 40% 50%;
  animation: tl-lungs 3s ease-in-out infinite alternate-reverse;
}
.scn-talleyrand-lungs .spoon {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 20px;
  background: linear-gradient(180deg, #c0a080 0%, #806040 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  transform: rotate(30deg);
  animation: tl-spoon 5s ease-in-out infinite;
}
.scn-talleyrand-lungs .drip {
  position: absolute; bottom: 20%; left: 25%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #d0b090 0%, #a08060 100%);
  border-radius: 50% 50% 0 0;
  animation: tl-drip 2s ease-in infinite;
}
@keyframes tl-room {
  0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes tl-clock {
  0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); }
}
@keyframes tl-chest {
  0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.15); } 100% { transform: translateX(-50%) scaleY(0.95); }
}
@keyframes tl-lungs {
  0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.2) translateX(3px); } 100% { transform: scale(0.9) translateX(-2px); }
}
@keyframes tl-spoon {
  0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(45deg) translateY(-6px); } 100% { transform: rotate(20deg) translateY(0); }
}
@keyframes tl-drip {
  0% { transform: translateY(0); opacity: 1; } 100% { transform: translateY(40px); opacity: 0; }
}

/* talleyrand-stars */
.scn-talleyrand-stars {
  background: linear-gradient(180deg, #0a0a1e 0%, #16163a 40%, #0a0a1e 100%), radial-gradient(ellipse at 50% 80%, #1a1a3a 0%, transparent 60%);
}
.scn-talleyrand-stars .night-sky {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #12123a 0%, #0a0a1e 100%);
  animation: ts-sky 20s ease-in-out infinite alternate;
}
.scn-talleyrand-stars .moon {
  position: absolute; top: 12%; left: 75%; width: 60px; height: 60px;
  background: radial-gradient(circle, #e0e0f0 0%, #a0a0c0 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(160,160,192,0.3);
  animation: ts-moon 8s ease-in-out infinite alternate;
}
.scn-talleyrand-stars .star {
  position: absolute; width: 4px; height: 4px;
  background: #f0f0ff;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(240,240,255,0.5);
}
.scn-talleyrand-stars .star-1 {
  top: 20%; left: 20%;
  animation: ts-star-1 3s ease-in-out infinite;
}
.scn-talleyrand-stars .star-2 {
  top: 30%; left: 50%;
  animation: ts-star-2 4s ease-in-out infinite alternate;
}
.scn-talleyrand-stars .star-3 {
  top: 15%; left: 40%;
  animation: ts-star-3 2.5s ease-in-out infinite reverse;
}
.scn-talleyrand-stars .lord-silhouette {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 70px;
  background: linear-gradient(180deg, #0e0e1e 0%, #050510 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: ts-lord 6s ease-in-out infinite;
}
.scn-talleyrand-stars .courtiers {
  position: absolute; bottom: 25%; right: 18%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: scaleX(-1);
  animation: ts-court 8s ease-in-out infinite;
}
.scn-talleyrand-stars .journal {
  position: absolute; bottom: 15%; left: 15%; width: 40px; height: 25px;
  background: linear-gradient(180deg, #d0c0a0 0%, #908070 100%);
  border-radius: 10%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
@keyframes ts-sky {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes ts-moon {
  0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-8px) scale(1.05); } 100% { transform: translateX(4px) scale(0.95); }
}
@keyframes ts-star-1 {
  0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(0.9); }
}
@keyframes ts-star-2 {
  0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.2; }
}
@keyframes ts-star-3 {
  0% { opacity: 0.6; transform: translateY(0); } 50% { opacity: 0.2; transform: translateY(-4px); } 100% { opacity: 0.8; transform: translateY(2px); }
}
@keyframes ts-lord {
  0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(4deg) translateY(-3px); } 100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes ts-court {
  0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-5px); } 100% { transform: scaleX(-1) translateY(2px); }
}

/* talleyrand-boots */
.scn-talleyrand-boots {
  background: linear-gradient(180deg, #1e1410 0%, #2a1e1a 50%, #0e0a06 100%), radial-gradient(ellipse at 50% 30%, #2a1e1a 0%, transparent 70%);
}
.scn-talleyrand-boots .chamber-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a22 0%, #1a0e0a 100%);
  animation: tb-bg 10s ease-in-out infinite alternate;
}
.scn-talleyrand-boots .boot-left {
  position: absolute; bottom: 30%; left: 35%; width: 55px; height: 70px;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0a06 100%);
  border-radius: 20% 20% 60% 40% / 30% 30% 40% 60%;
  transform: rotate(-10deg);
  animation: tb-boot-left 4s ease-in-out infinite;
}
.scn-talleyrand-boots .boot-right {
  position: absolute; bottom: 30%; left: 50%; width: 55px; height: 70px;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0a06 100%);
  border-radius: 20% 20% 40% 60% / 30% 30% 60% 40%;
  transform: rotate(5deg);
  animation: tb-boot-right 4s ease-in-out infinite alternate;
}
.scn-talleyrand-boots .ambassador-ghost {
  position: absolute; bottom: 25%; left: 60%; width: 30px; height: 55px;
  background: rgba(200,200,220,0.15);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: tb-ghost 6s ease-in-out infinite;
}
.scn-talleyrand-boots .newspaper {
  position: absolute; bottom: 10%; left: 20%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #e0d0b0 0%, #a09070 100%);
  border-radius: 10%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.scn-talleyrand-boots .inkwell {
  position: absolute; bottom: 15%; right: 20%; width: 12px; height: 15px;
  background: radial-gradient(ellipse at 50% 30%, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 30% 30%;
}
.scn-talleyrand-boots .quill {
  position: absolute; bottom: 22%; right: 22%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #e0d0b0 0%, #806050 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(15deg);
  animation: tb-quill 3s ease-in-out infinite;
}
.scn-talleyrand-boots .shadow {
  position: absolute; bottom: 28%; left: 40%; width: 60px; height: 15px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(6px);
}
@keyframes tb-bg {
  0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes tb-boot-left {
  0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-4px); } 100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes tb-boot-right {
  0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(7deg) translateY(-4px); } 100% { transform: rotate(3deg) translateY(0); }
}
@keyframes tb-ghost {
  0% { opacity: 0; transform: translateY(0); } 50% { opacity: 0.4; transform: translateY(-10px); } 100% { opacity: 0; transform: translateY(-20px); }
}
@keyframes tb-quill {
  0% { transform: rotate(15deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(15deg); }
}

/* Scene 1: Writing Desk */
.scn-ode-georgiana-linenotes {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a14 40%, #1a1210 100%), radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, transparent 60%);
}
.scn-ode-georgiana-linenotes .bg-wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2a1a14 0%, #1a1210 100%); }
.scn-ode-georgiana-linenotes .desk { position: absolute; bottom: 10%; left: 18%; right: 18%; height: 28%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 50%, #2a1a14 100%); border-radius: 0 0 8% 8%; box-shadow: 0 -6px 12px rgba(0,0,0,0.4); animation: g1-desk 15s ease-in-out infinite; }
.scn-ode-georgiana-linenotes .candle-glow { position: absolute; bottom: 45%; left: 50%; width: 20px; height: 30px; transform: translateX(-50%); background: radial-gradient(circle, #f0c080 0%, #c08040 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px #c08040; animation: g1-candle 3s ease-in-out infinite alternate; }
.scn-ode-georgiana-linenotes .paper-scroll { position: absolute; bottom: 30%; left: 35%; width: 80px; height: 40px; background: linear-gradient(180deg, #e0c8a0 0%, #c0a080 100%); border-radius: 10% 80% 60% 10%; transform: rotate(-8deg); box-shadow: 0 2px 8px rgba(0,0,0,0.3); animation: g1-paper 8s ease-in-out infinite; }
.scn-ode-georgiana-linenotes .inkwell { position: absolute; bottom: 38%; left: 42%; width: 14px; height: 18px; background: radial-gradient(ellipse at 50% 30%, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.6); animation: g1-ink 12s ease-in-out infinite; }
.scn-ode-georgiana-linenotes .hand-shadow { position: absolute; bottom: 30%; left: 50%; width: 30px; height: 50px; background: radial-gradient(ellipse at 50% 20%, #1a1210 0%, transparent 100%); border-radius: 40% 40% 50% 50% / 60% 60% 30% 30%; transform-origin: bottom left; animation: g1-hand 6s ease-in-out infinite alternate; }
@keyframes g1-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes g1-candle { 0% { opacity: 0.75; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.85; transform: scale(0.95); } }
@keyframes g1-paper { 0% { transform: rotate(-8deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(2px); } 100% { transform: rotate(-8deg) translateX(0); } }
@keyframes g1-ink { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes g1-hand { 0% { transform: rotate(-10deg) translateX(0); } 100% { transform: rotate(5deg) translateX(8px); } }

/* Scene 2: Window and Chair */
.scn-ode-georgiana-linenotes-two {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 30%, #0a0a1a 0%, transparent 70%);
}
.scn-ode-georgiana-linenotes-two .bg-wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a2e 100%); }
.scn-ode-georgiana-linenotes-two .window-frame { position: absolute; bottom: 30%; left: 28%; width: 120px; height: 160px; border: 6px solid #4a3a2a; background: #0a0a1a; border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 30px #2a2a4e; animation: g2-window 20s ease-in-out infinite; }
.scn-ode-georgiana-linenotes-two .moon-glow { position: absolute; bottom: 55%; left: 35%; width: 30px; height: 30px; background: radial-gradient(circle, #c0d0e0 0%, #8090a0 40%, transparent 80%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(192,208,224,0.3); animation: g2-moon 6s ease-in-out infinite alternate; }
.scn-ode-georgiana-linenotes-two .chair { position: absolute; bottom: 10%; left: 50%; width: 60px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,0.5); animation: g2-chair 10s ease-in-out infinite; }
.scn-ode-georgiana-linenotes-two .shadow-figure { position: absolute; bottom: 10%; left: 50%; width: 40px; height: 60px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #0a0a1a 0%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: g2-figure 7s ease-in-out infinite; }
.scn-ode-georgiana-linenotes-two .curtain { position: absolute; bottom: 30%; left: 24%; width: 20px; height: 150px; background: linear-gradient(180deg, #5a3a3a 0%, #3a2a2a 100%); border-radius: 0 10% 10% 0; transform-origin: top left; animation: g2-curtain 12s ease-in-out infinite alternate; }
@keyframes g2-window { 0% { border-color: #4a3a2a; box-shadow: inset 0 0 30px #2a2a4e; } 50% { border-color: #5a4a3a; box-shadow: inset 0 0 40px #3a3a5e; } 100% { border-color: #4a3a2a; box-shadow: inset 0 0 30px #2a2a4e; } }
@keyframes g2-moon { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.9; transform: scale(0.95); } }
@keyframes g2-chair { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-52%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes g2-figure { 0% { opacity: 0.6; transform: translateX(-50%) scale(1); } 50% { opacity: 0.8; transform: translateX(-51%) scale(1.02); } 100% { opacity: 0.6; transform: translateX(-50%) scale(1); } }
@keyframes g2-curtain { 0% { transform: rotate(0deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(0deg); } }

/* Scene 3: Fireplace */
.scn-ode-georgiana-linenotes-three {
  background: linear-gradient(180deg, #1a1010 0%, #2a1810 50%, #1a1010 100%), radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 60%);
}
.scn-ode-georgiana-linenotes-three .bg-wall { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #2a1810 0%, #1a1010 100%); }
.scn-ode-georgiana-linenotes-three .mantle { position: absolute; bottom: 30%; left: 20%; right: 20%; height: 12px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: g3-mantle 20s ease-in-out infinite; }
.scn-ode-georgiana-linenotes-three .fire-glow { position: absolute; bottom: 18%; left: 50%; width: 80px; height: 100px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 60%, #e08040 0%, #c06030 40%, transparent 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 60px 30px #c06030; animation: g3-fire 4s ease-in-out infinite alternate; }
.scn-ode-georgiana-linenotes-three .log { position: absolute; bottom: 15%; left: 42%; width: 60px; height: 14px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a10 100%); border-radius: 50% 50% 10% 10%; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.6); animation: g3-log 18s ease-in-out infinite; }
.scn-ode-georgiana-linenotes-three .embers { position: absolute; bottom: 18%; left: 48%; width: 8px; height: 8px; background: #ffd080; border-radius: 50%; box-shadow: 0 0 10px 2px rgba(255,208,128,0.8); animation: g3-ember 6s ease-in-out infinite; }
.scn-ode-georgiana-linenotes-three .portrait-silhouette { position: absolute; bottom: 40%; left: 32%; width: 40px; height: 50px; background: radial-gradient(ellipse at 50% 30%, #0a0a0a 0%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(2deg); animation: g3-portrait 14s ease-in-out infinite; }
.scn-ode-georgiana-linenotes-three .rug { position: absolute; bottom: 0; left: 10%; right: 10%; height: 12%; background: linear-gradient(180deg, #4a2a2a 0%, #3a1a1a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); animation: g3-rug 22s ease-in-out infinite; }
@keyframes g3-mantle { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes g3-fire { 0% { opacity: 0.7; transform: translateX(-50%) scaleY(1); } 50% { opacity: 1; transform: translateX(-50%) scaleY(1.05); } 100% { opacity: 0.8; transform: translateX(-50%) scaleY(0.98); } }
@keyframes g3-log { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes g3-ember { 0% { opacity: 0.5; transform: translateY(0) scale(0.8); } 50% { opacity: 1; transform: translateY(-10px) scale(1.2); } 100% { opacity: 0.5; transform: translateY(0) scale(0.8); } }
@keyframes g3-portrait { 0% { transform: rotate(2deg) scale(1); } 50% { transform: rotate(0deg) scale(1.02); } 100% { transform: rotate(2deg) scale(1); } }
@keyframes g3-rug { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); } }

/* Scene 4: Staircase */
.scn-ode-georgiana-linenotes-four {
  background: linear-gradient(180deg, #121214 0%, #1a1a20 40%, #121214 100%), radial-gradient(ellipse at 50% 10%, #2a2020 0%, transparent 60%);
}
.scn-ode-georgiana-linenotes-four .bg-wall { position: absolute; inset: 0 0 10% 0; background: linear-gradient(180deg, #1a1a20 0%, #121214 100%); }
.scn-ode-georgiana-linenotes-four .stairs { position: absolute; bottom: 0; left: 30%; right: 30%; height: 40%; background: repeating-linear-gradient(0deg, #2a2218 0px, #2a2218 12px, #1a1410 12px, #1a1410 24px); border-radius: 0 0 8% 8%; box-shadow: inset 0 -6px 12px rgba(0,0,0,0.6); animation: g4-stairs 30s ease-in-out infinite; }
.scn-ode-georgiana-linenotes-four .lantern { position: absolute; bottom: 45%; left: 50%; width: 16px; height: 24px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #c08040 0%, #8a6030 60%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 30px 10px rgba(192,128,64,0.4); animation: g4-lantern 5s ease-in-out infinite alternate; }
.scn-ode-georgiana-linenotes-four .railing { position: absolute; bottom: 30%; left: 30%; right: 30%; height: 8px; background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 50%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: g4-rail 14s ease-in-out infinite; }
.scn-ode-georgiana-linenotes-four .shadow-figure-climb { position: absolute; bottom: 8%; left: 48%; width: 20px; height: 40px; background: radial-gradient(ellipse at 50% 20%, #0a0a0a 0%, transparent 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom; animation: g4-climb 12s ease-in-out infinite; }
.scn-ode-georgiana-linenotes-four .arch { position: absolute; bottom: 40%; left: 25%; right: 25%; height: 30%; background: radial-gradient(ellipse at 50% 0%, #1a1a20 0%, transparent 70%); border: 4px solid #3a2a2a; border-radius: 50% 50% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); animation: g4-arch 25s ease-in-out infinite; }
@keyframes g4-stairs { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes g4-lantern { 0% { opacity: 0.7; transform: translateX(-50%) rotate(-3deg) scale(1); } 50% { opacity: 1; transform: translateX(-50%) rotate(0deg) scale(1.05); } 100% { opacity: 0.8; transform: translateX(-50%) rotate(3deg) scale(0.95); } }
@keyframes g4-rail { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes g4-climb { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-12px) rotate(-3deg); } 50% { transform: translateY(-24px) rotate(2deg); } 75% { transform: translateY(-36px) rotate(-1deg); } 100% { transform: translateY(-48px) rotate(0deg); } }
@keyframes g4-arch { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

/* limbo-blind-man */
.scn-limbo-blind-man {
  background: linear-gradient(180deg, #0b0e1a 0%, #191a3a 40%, #2a2a4a 100%),
              radial-gradient(ellipse at 50% 30%, #3a3a5a 0%, transparent 70%);
}
.scn-limbo-blind-man .sky   { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #15162a 0%, transparent 100%); animation: limbo-sky 15s ease-in-out infinite alternate; }
.scn-limbo-blind-man .moon  { position:absolute; top:8%; right:22%; width:50px; height:50px; background: radial-gradient(circle, #c0c8d8 0%, #8090a8 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 12px #a0b0c8; animation: limbo-moon 12s ease-in-out infinite alternate; }
.scn-limbo-blind-man .hills { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a2430 0%, #0e1420 100%); border-radius: 50% 40% 0 0 / 70% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: limbo-hills 20s ease-in-out infinite alternate; }
.scn-limbo-blind-man .figure{ position:absolute; bottom:22%; left:38%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: limbo-figure 8s ease-in-out infinite; }
.scn-limbo-blind-man .ghost-a{ position:absolute; top:40%; left:15%; width:30px; height:45px; background: radial-gradient(ellipse at 50% 30%, rgba(180,190,200,.3) 0%, transparent 70%); border-radius: 50% 50% 40% 40%; filter: blur(3px); animation: limbo-ghost 14s ease-in-out infinite; }
.scn-limbo-blind-man .ghost-b{ position:absolute; top:35%; right:20%; width:25px; height:40px; background: radial-gradient(ellipse at 50% 30%, rgba(180,190,200,.25) 0%, transparent 70%); border-radius: 50% 50% 40% 40%; filter: blur(2px); animation: limbo-ghost 18s ease-in-out infinite 4s; }
.scn-limbo-blind-man .cloud { position:absolute; top:12%; left:5%; width:100px; height:20px; background: linear-gradient(180deg, rgba(200,210,220,.2) 0%, rgba(200,210,220,.05) 100%); border-radius:50%; filter: blur(8px); animation: limbo-cloud 40s linear infinite; }

@keyframes limbo-sky   { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes limbo-moon  { 0% { transform: translate(0,0) scale(1); opacity:.7 } 50% { transform: translate(-4px,-2px) scale(1.05); opacity:1 } 100% { transform: translate(0,0) scale(.95); opacity:.8 } }
@keyframes limbo-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes limbo-figure{ 0% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(8px) translateY(-2px) rotate(2deg) } 60% { transform: translateX(16px) translateY(0) rotate(-1deg) } 100% { transform: translateX(24px) translateY(0) rotate(0deg) } }
@keyframes limbo-ghost { 0% { transform: translateY(0) translateX(0); opacity:.3 } 50% { transform: translateY(-10px) translateX(5px); opacity:.5 } 100% { transform: translateY(0) translateX(0); opacity:.3 } }
@keyframes limbo-cloud { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }

/* ne-plus-ultra */
.scn-ne-plus-ultra {
  background: linear-gradient(180deg, #0a0c14 0%, #151a24 40%, #1e2636 100%),
              radial-gradient(ellipse at 50% 50%, #1a2230 0%, transparent 70%);
}
.scn-ne-plus-ultra .deep-bg{ position:absolute; inset:0; background: linear-gradient(180deg, #0a0c14 0%, #101420 50%, #12182a 100%); animation: ne-deep 20s ease-in-out infinite alternate; }
.scn-ne-plus-ultra .star   { position:absolute; top:12%; left:50%; width:8px; height:8px; margin-left:-4px; background: radial-gradient(circle, #e0e8f0 0%, #a0b0c0 70%); border-radius:50%; box-shadow: 0 0 30px 10px #8090a8; animation: ne-star 8s ease-in-out infinite alternate; }
.scn-ne-plus-ultra .tomb   { position:absolute; bottom:15%; left:30%; width:60px; height:50px; background: linear-gradient(180deg, #2a3040 0%, #1a1e2a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: ne-tomb 12s ease-in-out infinite; }
.scn-ne-plus-ultra .birch  { position:absolute; bottom:10%; left:55%; width:20px; height:80px; background: linear-gradient(180deg, #3a4050 0%, #2a2e3a 100%); border-radius: 4px 4px 10% 10%; transform-origin: bottom center; animation: ne-birch 10s ease-in-out infinite; }
.scn-ne-plus-ultra .spring{ position:absolute; bottom:12%; left:45%; width:30px; height:15px; background: radial-gradient(ellipse at 50% 100%, #3a5060 0%, transparent 70%); border-radius: 50%; animation: ne-spring 6s ease-in-out infinite alternate; }
.scn-ne-plus-ultra .mist-a{ position:absolute; bottom:20%; left:0; width:100%; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(50,60,70,.15) 50%, transparent 100%); filter: blur(6px); animation: ne-mist 25s linear infinite; }
.scn-ne-plus-ultra .mist-b{ position:absolute; bottom:10%; right:0; width:80%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(50,60,70,.1) 50%, transparent 100%); filter: blur(5px); animation: ne-mist 30s linear infinite 10s; }

@keyframes ne-deep   { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ne-star   { 0% { transform: scale(1) rotate(0deg); opacity:.6; box-shadow: 0 0 20px 6px #8090a8 } 50% { transform: scale(1.3) rotate(15deg); opacity:1; box-shadow: 0 0 40px 14px #a0b0c8 } 100% { transform: scale(.9) rotate(-5deg); opacity:.7; box-shadow: 0 0 25px 8px #8090a8 } }
@keyframes ne-tomb   { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ne-birch  { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes ne-spring { 0% { transform: scaleY(1); opacity:.4 } 50% { transform: scaleY(1.2); opacity:.6 } 100% { transform: scaleY(1); opacity:.4 } }
@keyframes ne-mist   { 0% { transform: translateX(0) } 50% { transform: translateX(30px) } 100% { transform: translateX(-30px) } }

/* on-donnes-poetry */
.scn-on-donnes-poetry {
  background: linear-gradient(180deg, #3a2818 0%, #4a3620 40%, #3a2818 100%),
              radial-gradient(ellipse at 50% 60%, #5a3e1e 0%, transparent 70%);
}
.scn-on-donnes-poetry .wall   { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #4a3820 0%, #2a1e10 100%); border-radius: 0 0 30% 30%; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: donne-wall 25s ease-in-out infinite alternate; }
.scn-on-donnes-poetry .forge  { position:absolute; bottom:5%; left:20%; width:60px; height:40px; background: linear-gradient(180deg, #6a4a20 0%, #3a2a10 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.6), inset 0 4px 10px #7a5a2a; animation: donne-forge 8s ease-in-out infinite; }
.scn-on-donnes-poetry .camel  { position:absolute; bottom:0; left:55%; width:70px; height:50px; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius: 40% 40% 50% 50% / 60% 60% 30% 30%; transform-origin: bottom center; animation: donne-camel 10s ease-in-out infinite; }
.scn-on-donnes-poetry .muse   { position:absolute; bottom:50%; left:60%; width:18px; height:30px; background: linear-gradient(180deg, #a08050 0%, #6a4a20 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: donne-muse 6s ease-in-out infinite; }
.scn-on-donnes-poetry .poker-a{ position:absolute; bottom:18%; left:25%; width:4px; height:35px; background: linear-gradient(180deg, #8a7020 0%, #4a3010 100%); border-radius: 2px; transform: rotate(-15deg); transform-origin: bottom center; animation: donne-poker 4s ease-in-out infinite; }
.scn-on-donnes-poetry .poker-b{ position:absolute; bottom:18%; left:30%; width:4px; height:30px; background: linear-gradient(180deg, #8a7020 0%, #4a3010 100%); border-radius: 2px; transform: rotate(20deg); transform-origin: bottom center; animation: donne-poker 5s ease-in-out infinite 2s; }
.scn-on-donnes-poetry .knot   { position:absolute; bottom:32%; left:28%; width:20px; height:20px; background: radial-gradient(circle, #b09840 0%, #7a6020 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 12px 4px #8a7020; animation: donne-knot 9s ease-in-out infinite; }

@keyframes donne-wall   { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes donne-forge  { 0% { transform: translateX(0) rotate(0deg); box-shadow: 0 0 15px 5px #8a5020 } 50% { transform: translateX(2px) rotate(2deg); box-shadow: 0 0 25px 10px #b07030 } 100% { transform: translateX(0) rotate(0deg); box-shadow: 0 0 15px 5px #8a5020 } }
@keyframes donne-camel  { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(5px) translateY(-2px) rotate(3deg) } 50% { transform: translateX(10px) translateY(0) rotate(0deg) } 75% { transform: translateX(5px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes donne-muse   { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-5px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes donne-poker  { 0% { transform: rotate(-25deg) scaleY(1) } 50% { transform: rotate(25deg) scaleY(1.05) } 100% { transform: rotate(-25deg) scaleY(1) } }
@keyframes donne-knot   { 0% { transform: scale(1) rotate(0deg); opacity:.6 } 50% { transform: scale(1.2) rotate(30deg); opacity:1 } 100% { transform: scale(1) rotate(0deg); opacity:.6 } }

/* dirge-for-princess-charlotte */
.scn-dirge-for-princess-charlotte {
  background: linear-gradient(180deg, #0e0a18 0%, #1a1028 40%, #1e142a 100%),
              radial-gradient(ellipse at 50% 40%, #2a1e3a 0%, transparent 70%);
}
.scn-dirge-for-princess-charlotte .darkness { position:absolute; inset:0; background: linear-gradient(180deg, #0a0610 0%, #120a1e 50%, #160e22 100%); animation: dirge-dark 20s ease-in-out infinite alternate; }
.scn-dirge-for-princess-charlotte .candle   { position:absolute; bottom:30%; left:50%; width:12px; height:30px; margin-left:-6px; background: linear-gradient(180deg, #d0b050 0%, #a08030 100%); border-radius: 2px 2px 10% 10%; box-shadow: 0 0 30px 10px #b09040; animation: dirge-candle 5s ease-in-out infinite alternate; }
.scn-dirge-for-princess-charlotte .figure   { position:absolute; bottom:5%; left:35%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a3a 0%, #1a101a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dirge-figure 12s ease-in-out infinite; }
.scn-dirge-for-princess-charlotte .veil     { position:absolute; bottom:10%; left:32%; width:40px; height:45px; background: linear-gradient(180deg, rgba(80,60,80,.3) 0%, rgba(40,30,40,.1) 100%); border-radius: 50% 50% 40% 40%; filter: blur(4px); animation: dirge-veil 15s ease-in-out infinite; }
.scn-dirge-for-princess-charlotte .tear-a   { position:absolute; bottom:50%; left:42%; width:4px; height:6px; background: radial-gradient(circle, #a0a0b8 0%, transparent 80%); border-radius: 50%; animation: dirge-tear 6s ease-in-out infinite; }
.scn-dirge-for-princess-charlotte .tear-b   { position:absolute; bottom:55%; left:48%; width:3px; height:5px; background: radial-gradient(circle, #a0a0b8 0%, transparent 80%); border-radius: 50%; animation: dirge-tear 7s ease-in-out infinite 3s; }
.scn-dirge-for-princess-charlotte .drape    { position:absolute; top:0; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #2a1e2a 0%, #1a101a 100%); border-radius: 0 0 40% 40%; box-shadow: 0 8px 16px rgba(0,0,0,.6); animation: dirge-drape 18s ease-in-out infinite alternate; }

@keyframes dirge-dark   { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes dirge-candle { 0% { transform: scaleY(1); opacity:.6; box-shadow: 0 0 15px 5px #b09040 } 50% { transform: scaleY(1.05); opacity:.8; box-shadow: 0 0 30px 12px #c0a050 } 100% { transform: scaleY(1); opacity:.6; box-shadow: 0 0 15px 5px #b09040 } }
@keyframes dirge-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(5px) translateY(-3px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes dirge-veil   { 0% { transform: translateY(0) rotate(-2deg); opacity:.3 } 50% { transform: translateY(-8px) rotate(2deg); opacity:.5 } 100% { transform: translateY(0) rotate(-2deg); opacity:.3 } }
@keyframes dirge-tear   { 0% { transform: translateY(0) scale(1); opacity:.4 } 50% { transform: translateY(-12px) scale(.8); opacity:.1 } 100% { transform: translateY(0) scale(1); opacity:.4 } }
@keyframes dirge-drape  { 0% { transform: scaleY(1) } 50% { transform: scaleY(.95) } 100% { transform: scaleY(1) } }

.scn-mad-ox-news { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a1208 100%), radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%); }
.scn-mad-ox-news .wall    { position:absolute; inset:0; background: linear-gradient(180deg, #4a3828 0%, #2a1a0a 100%); opacity:.6; }
.scn-mad-ox-news .desk   { position:absolute; bottom:15%; left:5%; right:5%; height:22%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius:4px; box-shadow:0 -4px 12px rgba(0,0,0,.6); }
.scn-mad-ox-news .press  { position:absolute; bottom:28%; left:12%; width:30%; height:38%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:6px 6px 2px 2px; box-shadow:inset 0 2px 8px rgba(255,200,100,.15), 0 8px 16px rgba(0,0,0,.5); transform:rotate(-2deg); animation: mon-shake 6s ease-in-out infinite; }
.scn-mad-ox-news .paper-1{ position:absolute; bottom:32%; left:46%; width:18%; height:14%; background: linear-gradient(135deg, #e8d8b8 0%, #c8b898 100%); border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.3); transform:rotate(6deg); animation: mon-fly-1 5s ease-in-out infinite; }
.scn-mad-ox-news .paper-2{ position:absolute; bottom:38%; left:52%; width:14%; height:10%; background: linear-gradient(135deg, #d8c8a8 0%, #b8a888 100%); border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.3); transform:rotate(-8deg); animation: mon-fly-2 7s ease-in-out infinite; }
.scn-mad-ox-news .ox-head{ position:absolute; bottom:30%; left:30%; width:22%; height:16%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(15deg); box-shadow:0 4px 8px rgba(0,0,0,.4); z-index:5; animation: mon-mad 2.5s ease-in-out infinite; }
.scn-mad-ox-news .ox-body{ position:absolute; bottom:16%; left:24%; width:30%; height:20%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a12 100%); border-radius:40% 60% 50% 50% / 60% 70% 40% 40%; box-shadow:0 4px 8px rgba(0,0,0,.4); transform:rotate(-5deg); z-index:4; animation: mon-buck 3s ease-in-out infinite; }
.scn-mad-ox-news .lantern{ position:absolute; top:18%; right:10%; width:8%; aspect-ratio:1/1.4; background: radial-gradient(circle at 50% 40%, #e8b860 0%, #c09030 60%, #4a2a0a 100%); border-radius:40% 40% 20% 20%; box-shadow:0 0 24px 8px rgba(200,150,60,.6), 0 0 48px 16px rgba(200,150,60,.3); animation: mon-glimmer 4s ease-in-out infinite alternate; }
.scn-mad-ox-news .ink-splash{ position:absolute; bottom:20%; left:44%; width:8%; aspect-ratio:1; background: radial-gradient(circle, #2a1a0a 0%, #0a0a0a 60%, transparent 100%); border-radius:50%; opacity:.7; animation: mon-splat 8s ease-in-out infinite; }
@keyframes mon-shake   { 0%,100% { transform:rotate(-2deg) translateY(0); } 25% { transform:rotate(-3deg) translateY(-2px); } 50% { transform:rotate(-1deg) translateY(0); } 75% { transform:rotate(-4deg) translateY(-1px); } }
@keyframes mon-fly-1   { 0%,100% { transform:rotate(6deg) translateX(0) translateY(0); opacity:.8; } 25% { transform:rotate(12deg) translateX(8px) translateY(-6px); opacity:.6; } 50% { transform:rotate(4deg) translateX(4px) translateY(-2px); opacity:.9; } 75% { transform:rotate(10deg) translateX(12px) translateY(-10px); opacity:.5; } }
@keyframes mon-fly-2   { 0%,100% { transform:rotate(-8deg) translateX(0) translateY(0); opacity:.7; } 30% { transform:rotate(-14deg) translateX(-6px) translateY(-4px); opacity:.5; } 60% { transform:rotate(-4deg) translateX(-2px) translateY(-1px); opacity:.8; } }
@keyframes mon-mad     { 0%,100% { transform:rotate(15deg) translateY(0) scale(1); } 25% { transform:rotate(20deg) translateY(-4px) scale(1.05); } 50% { transform:rotate(12deg) translateY(0) scale(0.98); } 75% { transform:rotate(18deg) translateY(-2px) scale(1.02); } }
@keyframes mon-buck    { 0%,100% { transform:rotate(-5deg) translateY(0); } 30% { transform:rotate(-8deg) translateY(-3px); } 60% { transform:rotate(-3deg) translateY(0); } }
@keyframes mon-glimmer { 0%,100% { opacity:.7; box-shadow:0 0 20px 6px rgba(200,150,60,.5); } 50% { opacity:1; box-shadow:0 0 40px 14px rgba(240,180,80,.8); } }
@keyframes mon-splat   { 0%,100% { transform:scale(1); opacity:.5; } 50% { transform:scale(1.3); opacity:.8; } }

.scn-mad-ox-notes { background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 50%, #1a1a0e 100%), radial-gradient(ellipse at 50% 60%, #4a4a3a 0%, transparent 70%); }
.scn-mad-ox-notes .bg-wall  { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); opacity:.4; }
.scn-mad-ox-notes .table   { position:absolute; bottom:12%; left:8%; right:8%; height:18%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a10 100%); border-radius:6px; box-shadow:0 -6px 16px rgba(0,0,0,.5); }
.scn-mad-ox-notes .candle  { position:absolute; bottom:28%; left:26%; width:4%; height:16%; background: linear-gradient(180deg, #e8d8b0 0%, #c8b888 60%, #8a7a5a 100%); border-radius:10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow:0 0 20px 8px rgba(200,180,120,.4); transform:rotate(2deg); animation: mon-candle 5s ease-in-out infinite alternate; }
.scn-mad-ox-notes .note-1  { position:absolute; bottom:22%; left:38%; width:16%; height:12%; background: linear-gradient(135deg, #e8d8b8 0%, #c8b898 100%); border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.3); transform:rotate(-4deg); animation: mon-float-1 8s ease-in-out infinite; }
.scn-mad-ox-notes .note-2  { position:absolute; bottom:20%; left:56%; width:14%; height:10%; background: linear-gradient(135deg, #d8c8a8 0%, #b8a888 100%); border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.3); transform:rotate(7deg); animation: mon-float-2 10s ease-in-out infinite; }
.scn-mad-ox-notes .inkwell { position:absolute; bottom:26%; left:24%; width:5%; aspect-ratio:1/1.2; background: radial-gradient(circle at 50% 30%, #6a5a3a 0%, #2a1a0a 80%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow:0 2px 6px rgba(0,0,0,.5); }
.scn-mad-ox-notes .quill   { position:absolute; bottom:32%; left:26%; width:14%; height:6%; background: linear-gradient(135deg, #d8c8a8 0%, #b8a888 50%, #8a7a5a 100%); border-radius:2px 40% 60% 2px; transform:rotate(-35deg) translate(-4px, -2px); animation: mon-quill 12s ease-in-out infinite; }
.scn-mad-ox-notes .hand    { position:absolute; bottom:20%; left:42%; width:12%; aspect-ratio:1/1.3; background: radial-gradient(ellipse at 50% 40%, #c8b898 0%, #8a7a5a 60%, #5a4a2a 100%); border-radius:50% 50% 40% 40% / 70% 70% 40% 40%; transform:rotate(-10deg); box-shadow:0 4px 8px rgba(0,0,0,.3); animation: mon-write 3s ease-in-out infinite; }
@keyframes mon-candle { 0%,100% { opacity:.8; transform:rotate(2deg) scaleY(1); } 50% { opacity:1; transform:rotate(3deg) scaleY(1.02); } }
@keyframes mon-float-1 { 0%,100% { transform:rotate(-4deg) translateY(0); } 50% { transform:rotate(-6deg) translateY(-3px); } }
@keyframes mon-float-2 { 0%,100% { transform:rotate(7deg) translateY(0); } 50% { transform:rotate(5deg) translateY(-2px); } }
@keyframes mon-quill   { 0%,100% { transform:rotate(-35deg) translate(-4px, -2px); } 50% { transform:rotate(-28deg) translate(-2px, -4px); } }
@keyframes mon-write   { 0%,100% { transform:rotate(-10deg) translateY(0) scaleX(1); } 25% { transform:rotate(-12deg) translateY(-1px) scaleX(1.02); } 50% { transform:rotate(-8deg) translateY(0) scaleX(0.98); } 75% { transform:rotate(-14deg) translateY(-1px) scaleX(1.01); } }

.scn-mad-ox-superstition { background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 40%, #1a0e04 100%), radial-gradient(ellipse at 50% 80%, #5a3a2a 0%, transparent 70%); }
.scn-mad-ox-superstition .hearth   { position:absolute; bottom:0; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #6a4a2a 0%, #2a1a0a 100%); border-radius:30% 30% 0 0 / 50% 50% 0 0; box-shadow:inset 0 20px 40px rgba(200,80,20,.3); }
.scn-mad-ox-superstition .mantel   { position:absolute; bottom:35%; left:12%; right:12%; height:5%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.5); }
.scn-mad-ox-superstition .straw    { position:absolute; bottom:40%; left:35%; width:30%; height:3%; background: linear-gradient(90deg, #d8b888 0%, #b89868 50%, #a08858 100%); border-radius:10px; transform:rotate(-15deg); box-shadow:0 2px 4px rgba(0,0,0,.3); animation: mos-straw 7s ease-in-out infinite; }
.scn-mad-ox-superstition .devil-horn{ position:absolute; bottom:48%; left:42%; width:8%; height:10%; background: radial-gradient(ellipse at 50% 100%, #1a0a0a 0%, #0a0a0a 100%); border-radius:50% 50% 10% 10% / 80% 80% 20% 20%; transform:rotate(-30deg); box-shadow:0 0 12px 2px rgba(200,40,40,.2); animation: mos-horn 4s ease-in-out infinite; }
.scn-mad-ox-superstition .devil-tail{ position:absolute; bottom:28%; left:58%; width:12%; height:4%; background: linear-gradient(90deg, #1a0a0a 0%, #2a1a0a 100%); border-radius:0 60% 60% 0 / 0 80% 80% 0; transform:rotate(20deg); animation: mos-tail 3s ease-in-out infinite; }
.scn-mad-ox-superstition .figure-arm{ position:absolute; bottom:32%; left:28%; width:10%; height:18%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%); border-radius:30% 30% 40% 40% / 50% 50% 40% 40%; transform:rotate(25deg); animation: mos-arm 5s ease-in-out infinite; }
.scn-mad-ox-superstition .crucifix { position:absolute; bottom:42%; left:55%; width:6%; height:16%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a12 100%); border-radius:2px; box-shadow:0 0 8px 2px rgba(200,180,120,.2); animation: mos-cross 8s ease-in-out infinite alternate; }
.scn-mad-ox-superstition .ember-1  { position:absolute; bottom:10%; left:30%; width:4%; aspect-ratio:1; background: radial-gradient(circle, #e86030 0%, #c04020 50%, transparent 100%); border-radius:50%; animation: mos-ember-1 3s ease-in-out infinite; }
.scn-mad-ox-superstition .ember-2  { position:absolute; bottom:14%; right:32%; width:3%; aspect-ratio:1; background: radial-gradient(circle, #e07040 0%, #c04020 50%, transparent 100%); border-radius:50%; animation: mos-ember-2 4.5s ease-in-out infinite; }
@keyframes mos-straw   { 0%,100% { transform:rotate(-15deg) translateY(0); opacity:.6; } 50% { transform:rotate(-12deg) translateY(-2px); opacity:.8; } }
@keyframes mos-horn    { 0%,100% { transform:rotate(-30deg) scaleY(1); } 50% { transform:rotate(-35deg) scaleY(1.1); } }
@keyframes mos-tail    { 0%,100% { transform:rotate(20deg) translateX(0); } 50% { transform:rotate(25deg) translateX(3px); } }
@keyframes mos-arm     { 0%,100% { transform:rotate(25deg) translateY(0); } 50% { transform:rotate(30deg) translateY(-3px); } }
@keyframes mos-cross   { 0%,100% { opacity:.3; transform:translateY(0); } 50% { opacity:.7; transform:translateY(-2px); } }
@keyframes mos-ember-1 { 0%,100% { opacity:.4; transform:scale(1) translateY(0); } 50% { opacity:.8; transform:scale(1.4) translateY(-4px); } }
@keyframes mos-ember-2 { 0%,100% { opacity:.3; transform:scale(1) translateY(0); } 50% { opacity:.7; transform:scale(1.5) translateY(-6px); } }

.scn-hexameters-intro { background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0e0e1a 100%), radial-gradient(ellipse at 50% 40%, #3a3a4a 0%, transparent 70%); }
.scn-hexameters-intro .bookstand  { position:absolute; bottom:10%; left:20%; right:20%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:6px 6px 20% 20% / 6px 6px 40% 40%; box-shadow:0 -8px 20px rgba(0,0,0,.6); }
.scn-hexameters-intro .bookpage   { position:absolute; bottom:16%; left:22%; right:22%; height:26%; background: linear-gradient(180deg, #e8d8b8 0%, #c8b898 100%); border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,.15); transform:rotate(-1deg); animation: hex-book 14s ease-in-out infinite; }
.scn-hexameters-intro .figure-left{ position:absolute; bottom:16%; left:6%; width:14%; height:42%; background: radial-gradient(ellipse at 50% 20%, #5a4a3a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform:rotate(5deg); box-shadow:0 4px 8px rgba(0,0,0,.4); animation: hex-fig-l 6s ease-in-out infinite; }
.scn-hexameters-intro .figure-right{ position:absolute; bottom:14%; right:6%; width:12%; height:38%; background: radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, #1a0e08 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform:rotate(-4deg); box-shadow:0 4px 8px rgba(0,0,0,.4); animation: hex-fig-r 7s ease-in-out infinite; }
.scn-hexameters-intro .lamp-glow  { position:absolute; top:12%; left:40%; right:40%; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(200,180,120,.25) 0%, transparent 70%); border-radius:50%; animation: hex-glow 8s ease-in-out infinite alternate; }
.scn-hexameters-intro .lamp-base  { position:absolute; top:6%; left:46%; right:46%; height:10%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%); border-radius:20% 20% 40% 40% / 30% 30% 50% 50%; box-shadow:0 0 16px 4px rgba(200,180,120,.2); }
.scn-hexameters-intro .shadow-arm{ position:absolute; bottom:30%; left:18%; width:8%; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:30% 30% 40% 40% / 50% 50% 40% 40%; transform:rotate(-20deg); opacity:.5; animation: hex-arm 9s ease-in-out infinite; }
.scn-hexameters-intro .line-guide{ position:absolute; bottom:28%; left:24%; right:24%; height:1%; background: linear-gradient(90deg, rgba(200,180,120,0) 0%, rgba(200,180,120,.5) 50%, rgba(200,180,120,0) 100%); animation: hex-line 4s ease-in-out infinite; }
@keyframes hex-book   { 0%,100% { transform:rotate(-1deg) scaleY(1); } 50% { transform:rotate(1deg) scaleY(1.005); } }
@keyframes hex-fig-l  { 0%,100% { transform:rotate(5deg) translateY(0); } 50% { transform:rotate(3deg) translateY(-2px); } }
@keyframes hex-fig-r  { 0%,100% { transform:rotate(-4deg) translateY(0); } 50% { transform:rotate(-2deg) translateY(-1px); } }
@keyframes hex-glow   { 0%,100% { opacity:.6; } 50% { opacity:.9; } }
@keyframes hex-arm    { 0%,100% { transform:rotate(-20deg) translateX(0); } 50% { transform:rotate(-15deg) translateX(4px); } }
@keyframes hex-line   { 0%,100% { opacity:.2; transform:scaleX(1); } 50% { opacity:.5; transform:scaleX(1.05); } }

.scn-ode-georgiana-motherhood {
  background: linear-gradient(180deg, #1f1a15 0%, #2a2218 35%, #3a2e1e 70%, #2a1f14 100%),
              radial-gradient(ellipse at 40% 50%, #4a3826 0%, transparent 70%);
}
.scn-ode-georgiana-motherhood .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #2a2218 0%, #1a1510 50%, #3a2a1a 100%);
  animation: ogm-breath 12s ease-in-out infinite alternate;
}
.scn-ode-georgiana-motherhood .window-arch {
  position: absolute; top: 8%; left: 55%; width: 30%; height: 45%;
  background: radial-gradient(ellipse at 50% 40%, #4a5a6a 0%, #2a2a38 60%, transparent 80%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
  animation: ogm-window 20s ease-in-out infinite alternate;
}
.scn-ode-georgiana-motherhood .mother {
  position: absolute; bottom: 12%; left: 38%; width: 80px; height: 120px;
  background: linear-gradient(135deg, #3a2a1e 0%, #2a1a12 50%, #4a3020 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  animation: ogm-mother 6s ease-in-out infinite;
}
.scn-ode-georgiana-motherhood .babe-left {
  position: absolute; bottom: 8%; left: 32%; width: 28px; height: 36px;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: ogm-babe-l 4s ease-in-out infinite;
}
.scn-ode-georgiana-motherhood .babe-right {
  position: absolute; bottom: 6%; left: 52%; width: 30px; height: 38px;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: ogm-babe-r 5s ease-in-out infinite;
}
.scn-ode-georgiana-motherhood .hearth-glow {
  position: absolute; bottom: 0; left: 10%; width: 35%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #c08040 0%, #8a5020 40%, transparent 70%);
  border-radius: 50% 50% 0 0;
  animation: ogm-hearth 4s ease-in-out infinite alternate;
}
.scn-ode-georgiana-motherhood .candle {
  position: absolute; top: 30%; left: 20%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #e0c080 0%, #8a6a3a 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: 0 0 20px 6px rgba(200,140,60,.6);
  animation: ogm-candle 3s ease-in-out infinite alternate;
}
.scn-ode-georgiana-motherhood .shadow-drape {
  position: absolute; top: 0; right: 0; width: 40%; height: 100%;
  background: linear-gradient(270deg, rgba(10,8,6,.7) 0%, transparent 100%);
  animation: ogm-drape 15s ease-in-out infinite alternate;
}
@keyframes ogm-breath { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes ogm-window { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.35 } }
@keyframes ogm-mother { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes ogm-babe-l { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(2deg) } }
@keyframes ogm-babe-r { 0%,100% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-3px) rotate(-1deg) } }
@keyframes ogm-hearth { 0% { opacity:.4; transform: scaleY(1) } 50% { opacity:.7; transform: scaleY(1.08) } 100% { opacity:.5; transform: scaleY(.95) } }
@keyframes ogm-candle { 0% { opacity:.6; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.04) } 100% { opacity:.7; transform: scaleY(.97) } }
@keyframes ogm-drape { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.35 } }

.scn-ode-georgiana-angel {
  background: linear-gradient(180deg, #c8b898 0%, #e0d0b0 30%, #d4c4a0 60%, #b8a888 100%),
              radial-gradient(ellipse at 50% 30%, #f0e4c8 0%, transparent 70%);
}
.scn-ode-georgiana-angel .sky-overcast {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d8ccb0 0%, #e8dcc0 40%, #c8b898 100%);
  animation: oga-sky 20s ease-in-out infinite alternate;
}
.scn-ode-georgiana-angel .angel-wing {
  position: absolute; top: 18%; width: 120px; height: 160px;
  background: linear-gradient(135deg, #f0e4c8 0%, #d4c098 50%, #b8a078 100%);
  border-radius: 60% 40% 50% 50% / 70% 60% 40% 30%;
  filter: blur(2px);
}
.scn-ode-georgiana-angel .wing-left {
  left: 12%; transform-origin: right center;
  animation: oga-wing-l 8s ease-in-out infinite alternate;
}
.scn-ode-georgiana-angel .wing-right {
  right: 12%; transform-origin: left center;
  animation: oga-wing-r 8s ease-in-out infinite alternate;
}
.scn-ode-georgiana-angel .angel-body {
  position: absolute; top: 24%; left: 50%; width: 60px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0e8d8 0%, #d8ccb0 60%, #c0b898 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  animation: oga-body 6s ease-in-out infinite;
}
.scn-ode-georgiana-angel .angel-halo {
  position: absolute; top: 16%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0e0a0 0%, #d4c080 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,180,100,.4);
  animation: oga-halo 4s ease-in-out infinite alternate;
}
.scn-ode-georgiana-angel .chariot-ring {
  position: absolute; bottom: 24%; left: 50%; width: 70px; height: 70px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c8b080 0%, #a89068 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(180,160,100,.3);
  animation: oga-ring 12s linear infinite;
}
.scn-ode-georgiana-angel .planet-glow {
  position: absolute; top: 8%; left: 50%; width: 100px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0e8c0 0%, #d8cca0 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(16px);
  animation: oga-planet 15s ease-in-out infinite alternate;
}
.scn-ode-georgiana-angel .cloud-wisp {
  position: absolute; height: 20px;
  background: linear-gradient(90deg, transparent, rgba(220,210,190,.6), transparent);
  border-radius: 50%;
  filter: blur(8px);
}
.scn-ode-georgiana-angel .wisp-a { top: 16%; left: 8%; width: 180px; animation: oga-wisp-a 40s linear infinite; }
.scn-ode-georgiana-angel .wisp-b { top: 22%; right: 5%; width: 140px; animation: oga-wisp-b 55s linear infinite reverse; }
@keyframes oga-sky { 0% { opacity:.6 } 50% { opacity:.85 } 100% { opacity:.7 } }
@keyframes oga-wing-l { 0%,100% { transform: rotate(-8deg) scaleX(1) } 50% { transform: rotate(4deg) scaleX(1.06) } }
@keyframes oga-wing-r { 0%,100% { transform: rotate(8deg) scaleX(1) } 50% { transform: rotate(-4deg) scaleX(1.06) } }
@keyframes oga-body { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) } }
@keyframes oga-halo { 0% { opacity:.6; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.1) } 100% { opacity:.7; transform: translateX(-50%) scale(.95) } }
@keyframes oga-ring { 0% { transform: translateX(-50%) rotate(0deg) } 100% { transform: translateX(-50%) rotate(360deg) } }
@keyframes oga-planet { 0% { opacity:.3; transform: translateX(-50%) scale(.9) } 50% { opacity:.6; transform: translateX(-50%) scale(1.1) } 100% { opacity:.4; transform: translateX(-50%) scale(.95) } }
@keyframes oga-wisp-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes oga-wisp-b { 0% { transform: translateX(0) } 100% { transform: translateX(-150vw) } }

.scn-ode-georgiana-conclusion {
  background: linear-gradient(180deg, #2a2a30 0%, #3a3840 40%, #4a4848 70%, #383840 100%),
              radial-gradient(ellipse at 50% 0%, #4a4a50 0%, transparent 70%);
}
.scn-ode-georgiana-conclusion .cliff-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #3a3840 0%, #2a2830 50%, #484650 100%);
  animation: ogc-cliff 16s ease-in-out infinite alternate;
}
.scn-ode-georgiana-conclusion .platform-ledge {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #4a4850 0%, #3a3840 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: ogc-ledge 8s ease-in-out infinite alternate;
}
.scn-ode-georgiana-conclusion .figure-kneeling {
  position: absolute; bottom: 20%; left: 46%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #1a1818 0%, #0a0a0a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 35% 35%;
  transform: scale(.95);
  animation: ogc-figure 3s ease-in-out infinite;
}
.scn-ode-georgiana-conclusion .crossbow {
  position: absolute; bottom: 24%; left: 42%; width: 36px; height: 8px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  animation: ogc-bow 4s ease-in-out infinite;
}
.scn-ode-georgiana-conclusion .shaft-light {
  position: absolute; top: 8%; left: 44%; width: 4px; height: 50%;
  background: linear-gradient(180deg, #c0b8a8 0%, #807868 60%, transparent 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(160,150,130,.3);
  animation: ogc-shaft 5s ease-in-out infinite alternate;
}
.scn-ode-georgiana-conclusion .storm-cloud {
  position: absolute; height: 30px;
  background: linear-gradient(90deg, transparent, #3a3840 20%, #4a4850 50%, #3a3840 80%, transparent);
  border-radius: 50%;
  filter: blur(10px);
}
.scn-ode-georgiana-conclusion .cloud-top {
  top: 6%; left: 10%; width: 200px;
  animation: ogc-cloud-t 25s linear infinite;
}
.scn-ode-georgiana-conclusion .cloud-mid {
  top: 14%; right: 5%; width: 160px;
  animation: ogc-cloud-m 35s linear infinite reverse;
}
.scn-ode-georgiana-conclusion .storm-gust {
  position: absolute; top: 30%; left: 0; width: 100%; height: 8px;
  background: linear-gradient(90deg, transparent, rgba(100,100,110,.3) 30%, transparent 70%);
  filter: blur(4px);
  animation: ogc-gust 6s ease-in-out infinite;
}
@keyframes ogc-cliff { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes ogc-ledge { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ogc-figure { 0%,100% { transform: scale(.95) translateY(0) rotate(-1deg) } 50% { transform: scale(.95) translateY(-2px) rotate(1deg) } }
@keyframes ogc-bow { 0%,100% { transform: rotate(-20deg) } 50% { transform: rotate(-18deg) translateX(1px) } }
@keyframes ogc-shaft { 0% { opacity:.2; transform: scaleY(1) } 50% { opacity:.6; transform: scaleY(1.12) } 100% { opacity:.3; transform: scaleY(.95) } }
@keyframes ogc-cloud-t { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes ogc-cloud-m { 0% { transform: translateX(0) } 100% { transform: translateX(-140vw) } }
@keyframes ogc-gust { 0%,100% { opacity:.1; transform: translateY(0) } 50% { opacity:.4; transform: translateY(8px) } }

.scn-ode-georgiana-notes {
  background: linear-gradient(180deg, #1a1815 0%, #2a241e 40%, #3a3228 70%, #2a221c 100%),
              radial-gradient(ellipse at 50% 60%, #3a2e22 0%, transparent 70%);
}
.scn-ode-georgiana-notes .study-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #2a221c 0%, #1a1510 50%, #3a2e22 100%);
  animation: ogn-wall 14s ease-in-out infinite alternate;
}
.scn-ode-georgiana-notes .desk-top {
  position: absolute; bottom: 14%; left: 15%; right: 15%; height: 14%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
  animation: ogn-desk 10s ease-in-out infinite;
}
.scn-ode-georgiana-notes .paper-sheet {
  position: absolute; bottom: 20%; left: 40%; width: 50px; height: 34px;
  background: linear-gradient(135deg, #d4c8a0 0%, #c0b488 100%);
  border-radius: 1px;
  transform: rotate(2deg);
  box-shadow: 0 2px 8px rgba(0,0,0,.4);
  animation: ogn-paper 5s ease-in-out infinite;
}
.scn-ode-georgiana-notes .inkwell {
  position: absolute; bottom: 20%; left: 48%; width: 14px; height: 16px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: ogn-ink 6s ease-in-out infinite;
}
.scn-ode-georgiana-notes .quill {
  position: absolute; bottom: 24%; left: 45%; width: 4px; height: 24px;
  background: linear-gradient(180deg, #c8b898 0%, #8a7a62 100%);
  border-radius: 60% 60% 10% 10% / 80% 80% 10% 10%;
  transform-origin: bottom center;
  transform: rotate(-20deg);
  animation: ogn-quill 3s ease-in-out infinite alternate;
}
.scn-ode-georgiana-notes .candle-stand {
  position: absolute; bottom: 16%; left: 26%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 1px;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: ogn-stand 8s ease-in-out infinite;
}
.scn-ode-georgiana-notes .candle-flame {
  position: absolute; bottom: 36%; left: 25.5%; width: 10px; height: 14px;
  background: radial-gradient(circle, #f0d090 0%, #c08030 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 0 20px 8px rgba(200,120,40,.5), 0 0 40px 16px rgba(200,120,40,.2);
  animation: ogn-flame 2s ease-in-out infinite alternate;
}
.scn-ode-georgiana-notes .shadow-corner {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(90deg, rgba(10,8,6,.6) 0%, transparent 100%);
  animation: ogn-shadow 18s ease-in-out infinite alternate;
}
@keyframes ogn-wall { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.75 } }
@keyframes ogn-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ogn-paper { 0%,100% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } }
@keyframes ogn-ink { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ogn-quill { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-16deg) } 100% { transform: rotate(-22deg) } }
@keyframes ogn-stand { 0%,100% { opacity:.7 } 50% { opacity:.9 } }
@keyframes ogn-flame { 0% { opacity:.6; transform: scaleY(.9) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.7; transform: scaleY(.95) } }
@keyframes ogn-shadow { 0% { opacity:.2 } 50% { opacity:.4 } 100% { opacity:.25 } }

.two-founts-notes { background: linear-gradient(180deg, #2a1e14 0%, #4a3520 50%, #3d2b18 100%), radial-gradient(ellipse at 50% 40%, #5a4530 0%, transparent 70%); }
.two-founts-notes .bg-room { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #4a3520 0%, #1a110a 100%); }
.two-founts-notes .desk { position:absolute; bottom:20%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #6a4a2e 0%, #3a2a18 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.5); animation: tfn-desk 12s ease-in-out infinite; }
.two-founts-notes .paper { position:absolute; bottom:30%; left:42%; width:50px; height:34px; background: linear-gradient(135deg, #f5e6c8 0%, #d4b48c 100%); border-radius:2% 2% 4% 4%; box-shadow: 0 2px 6px rgba(0,0,0,.3); transform: rotate(-2deg); animation: tfn-paper 8s ease-in-out infinite alternate; }
.two-founts-notes .inkwell { position:absolute; bottom:26%; width:16px; height:20px; background: linear-gradient(180deg, #5a3a20 0%, #2a1a0e 100%); border-radius: 40% 40% 20% 20%; box-shadow: inset 0 -4px 6px rgba(0,0,0,.6); }
.two-founts-notes .inkwell-left { left:32%; transform: rotate(-5deg); animation: tfn-inkwell 14s ease-in-out infinite alternate; }
.two-founts-notes .inkwell-right { right:32%; transform: rotate(3deg); animation: tfn-inkwell 14s ease-in-out infinite alternate-reverse; }
.two-founts-notes .quill { position:absolute; bottom:32%; left:46%; width:4px; height:28px; background: linear-gradient(180deg, #c8b89a 0%, #8a7a62 50%, #4a3a2a 100%); border-radius: 20% 20% 80% 80%; transform: rotate(12deg); transform-origin: bottom; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: tfn-quill 3s ease-in-out infinite; }
.two-founts-notes .candle { position:absolute; bottom:34%; left:30%; width:8px; height:22px; background: linear-gradient(180deg, #f0d080 0%, #c8a050 60%, #8a6a30 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 16px 6px #c8a050, 0 0 32px 12px rgba(200,160,80,.3); animation: tfn-candle 3s ease-in-out infinite alternate; }
.two-founts-notes .book { position:absolute; bottom:24%; left:56%; width:40px; height:28px; background: linear-gradient(180deg, #6a4a2e 0%, #4a2a1a 100%); border-radius: 4% 4% 8% 8%; box-shadow: inset 0 2px 6px rgba(0,0,0,.4), 0 2px 4px rgba(0,0,0,.3); transform: rotate(2deg); animation: tfn-book 16s ease-in-out infinite alternate; }
@keyframes tfn-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes tfn-paper { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes tfn-inkwell { 0% { transform: rotate(-5deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-5deg) } }
@keyframes tfn-quill { 0% { transform: rotate(12deg) } 50% { transform: rotate(16deg) } 100% { transform: rotate(12deg) } }
@keyframes tfn-candle { 0% { box-shadow: 0 0 12px 4px #c8a050, 0 0 24px 8px rgba(200,160,80,.2); opacity:.9 } 50% { box-shadow: 0 0 24px 8px #e0b860, 0 0 48px 16px rgba(224,184,96,.4); opacity:1 } 100% { box-shadow: 0 0 16px 6px #c8a050, 0 0 32px 12px rgba(200,160,80,.3); opacity:.95 } }
@keyframes tfn-book { 0% { transform: rotate(2deg) } 50% { transform: rotate(-1deg) } 100% { transform: rotate(2deg) } }

.constancy-to-ideal-object { background: linear-gradient(180deg, #1e1a22 0%, #2a2630 40%, #1a1620 100%), radial-gradient(ellipse at 50% 30%, #3a3650 0%, transparent 80%); }
.constancy-to-ideal-object .bg-dark { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, #2a2630 0%, #0a0810 100%); }
.constancy-to-ideal-object .figure { position:absolute; bottom:20%; left:40%; width:30px; height:60px; background: linear-gradient(180deg, #2e2a3a 0%, #1a1622 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cio-figure 6s ease-in-out infinite; }
.constancy-to-ideal-object .head { position:absolute; bottom:65%; left:40%; width:18px; height:20px; background: radial-gradient(ellipse, #3a3648 0%, #1e1a2a 100%); border-radius: 50%; transform: translateX(24px); animation: cio-head 6s ease-in-out infinite alternate; }
.constancy-to-ideal-object .orb { position:absolute; top:20%; left:50%; width:16px; height:16px; background: radial-gradient(circle, #a0a8e0 0%, #6068b0 60%, #2a2e60 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #8088d0, 0 0 40px 12px rgba(128,136,208,.4); animation: cio-orb 4s ease-in-out infinite alternate; }
.constancy-to-ideal-object .particle { position:absolute; width:4px; height:4px; background: #b0b8e8; border-radius: 50%; filter: blur(1px); }
.constancy-to-ideal-object .particle-a { top:15%; left:30%; animation: cio-particle 8s linear infinite; }
.constancy-to-ideal-object .particle-b { top:25%; left:60%; animation: cio-particle 10s linear infinite reverse; }
.constancy-to-ideal-object .thought-stream { position:absolute; top:35%; left:48%; width:1px; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(160,168,220,.3) 50%, transparent 100%); animation: cio-stream 3s ease-in-out infinite alternate; }
@keyframes cio-figure { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(0deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes cio-head { 0% { transform: translateX(24px) rotate(-5deg) } 50% { transform: translateX(26px) rotate(0deg) } 100% { transform: translateX(24px) rotate(5deg) } }
@keyframes cio-orb { 0% { transform: scale(1) translateY(0); opacity:.7 } 50% { transform: scale(1.1) translateY(-8px); opacity:1 } 100% { transform: scale(.95) translateY(0); opacity:.8 } }
@keyframes cio-particle { 0% { transform: translate(0,0) scale(0.5); opacity:0 } 30% { opacity:1 } 70% { transform: translate(40px,-50px) scale(1); opacity:.6 } 100% { transform: translate(80px,-100px) scale(0.5); opacity:0 } }
@keyframes cio-stream { 0% { transform: scaleY(1); opacity:.2 } 50% { transform: scaleY(1.2); opacity:.5 } 100% { transform: scaleY(1); opacity:.2 } }

.constancy-home { background: linear-gradient(180deg, #1a2028 0%, #2a3040 50%, #1a1e28 100%), radial-gradient(ellipse at 50% 80%, #3a4860 0%, transparent 70%); }
.constancy-home .bg-cottage { position:absolute; inset:0; background: linear-gradient(180deg, #2a3040 0%, #1a1e28 100%); }
.constancy-home .window-frame { position:absolute; top:20%; left:25%; width:40%; height:50%; background: linear-gradient(180deg, #4a4a42 0%, #2a2a22 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.6), 0 4px 8px rgba(0,0,0,.5); }
.constancy-home .moon { position:absolute; top:12%; left:40%; width:30px; height:30px; background: radial-gradient(circle, #d0d8f0 0%, #8088b0 100%); border-radius: 50%; box-shadow: 0 0 20px 8px #a0a8d0, 0 0 40px 16px rgba(160,168,208,.3); animation: chm-moon 20s ease-in-out infinite alternate; }
.constancy-home .moonbeam { position:absolute; top:22%; left:42%; width:8px; height:60%; background: linear-gradient(180deg, rgba(176,184,224,.4) 0%, transparent 100%); transform: rotate(-8deg); filter: blur(4px); animation: chm-beam 15s ease-in-out infinite alternate; }
.constancy-home .figure-cot { position:absolute; bottom:15%; left:35%; width:24px; height:40px; background: linear-gradient(180deg, #1a1e28 0%, #0a0e18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: chm-figure 8s ease-in-out infinite; }
.constancy-home .table { position:absolute; bottom:10%; left:32%; right:30%; height:12%; background: linear-gradient(180deg, #3a3a32 0%, #1a1a16 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 2px 6px rgba(0,0,0,.5); animation: chm-table 12s ease-in-out infinite; }
@keyframes chm-moon { 0% { transform: translateY(0) scale(1); opacity:.8 } 50% { transform: translateY(-5px) scale(1.05); opacity:1 } 100% { transform: translateY(0) scale(1); opacity:.9 } }
@keyframes chm-beam { 0% { transform: rotate(-8deg) scaleY(1); opacity:.3 } 50% { transform: rotate(-6deg) scaleY(1.1); opacity:.5 } 100% { transform: rotate(-8deg) scaleY(1); opacity:.3 } }
@keyframes chm-figure { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes chm-table { 0% { background-position: 0 0 } 50% { background-position: 0 2px } 100% { background-position: 0 0 } }

.pang-more-sharp-intro { background: linear-gradient(180deg, #18151a 0%, #221e2a 40%, #141016 100%), radial-gradient(ellipse at 50% 50%, #2a2638 0%, transparent 80%); }
.pang-more-sharp-intro .bg-void { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, #2a2638 0%, #0a0812 100%); }
.pang-more-sharp-intro .pilgrim { position:absolute; bottom:15%; left:35%; width:28px; height:60px; background: linear-gradient(180deg, #2e2a3a 0%, #1a1626 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pms-pilgrim 10s ease-in-out infinite; }
.pang-more-sharp-intro .hand { position:absolute; bottom:30%; left:50%; width:6px; height:20px; background: linear-gradient(180deg, #3a364a 0%, #1e1a2e 100%); border-radius: 40% 40% 30% 30%; transform: rotate(30deg); transform-origin: bottom; box-shadow: inset 0 2px 4px rgba(0,0,0,.5); animation: pms-hand 4s ease-in-out infinite; }
.pang-more-sharp-intro .flame { position:absolute; top:20%; left:45%; width:12px; height:18px; background: radial-gradient(ellipse, #d0d8e8 0%, #7078a8 60%, #2a2e50 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 12px 4px #8088c0, 0 0 24px 8px rgba(128,136,192,.3); animation: pms-flame 2s ease-in-out infinite alternate; }
.pang-more-sharp-intro .spark { position:absolute; width:3px; height:3px; background: #a0a8d8; border-radius: 50%; filter: blur(1px); }
.pang-more-sharp-intro .spark-a { top:15%; left:40%; animation: pms-spark 6s linear infinite; }
.pang-more-sharp-intro .spark-b { top:25%; left:55%; animation: pms-spark 8s linear infinite reverse; }
@keyframes pms-pilgrim { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(0deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes pms-hand { 0% { transform: rotate(30deg) } 50% { transform: rotate(40deg) } 100% { transform: rotate(30deg) } }
@keyframes pms-flame { 0% { transform: scaleY(1) translateY(0); opacity:.8 } 50% { transform: scaleY(1.3) translateY(-3px); opacity:1 } 100% { transform: scaleY(.8) translateY(2px); opacity:.6 } }
@keyframes pms-spark { 0% { transform: translate(0,0) scale(0.3); opacity:0 } 30% { opacity:1 } 70% { transform: translate(30px,-60px) scale(1); opacity:.4 } 100% { transform: translate(60px,-120px) scale(0.3); opacity:0 } }

/* devil-genesis: dim interior, funny mood */
.scn-devil-genesis {
  background: 
    radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, transparent 60%),
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #1a1208 100%);
  box-shadow: inset 0 0 180px rgba(0,0,0,0.7);
}
.scn-devil-genesis .wall { position:absolute; inset:0; background: repeating-linear-gradient(90deg, #2f2215 0px, #2f2215 4px, #3d2e1f 4px, #3d2e1f 8px); opacity:0.15; }
.scn-devil-genesis .desk { position:absolute; bottom:18%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.6); }
.scn-devil-genesis .book-a { position:absolute; bottom:24%; left:25%; width:30px; height:22px; background: linear-gradient(180deg, #7a5a3a, #4a3020); border-radius: 2px; transform: rotate(-5deg); box-shadow: 2px 3px 6px rgba(0,0,0,0.4); animation: dg-book 6s ease-in-out infinite; }
.scn-devil-genesis .book-b { position:absolute; bottom:24%; left:35%; width:36px; height:28px; background: linear-gradient(180deg, #6a4a2a, #3a2010); border-radius: 2px; transform: rotate(3deg); box-shadow: 2px 3px 6px rgba(0,0,0,0.4); animation: dg-book 6s ease-in-out infinite reverse; }
.scn-devil-genesis .lamp { position:absolute; bottom:30%; left:30%; width:12px; height:30px; background: linear-gradient(180deg, #c0a070, #806040); border-radius: 4px 4px 2px 2px; transform-origin: bottom center; animation: dg-lamp 4s ease-in-out infinite alternate; }
.scn-devil-genesis .lamp::after { content:''; position:absolute; top:-8px; left:50%; transform:translateX(-50%); width:20px; height:16px; background: radial-gradient(circle, #ffd080 0%, #a07030 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,160,80,0.4); }
.scn-devil-genesis .devil { position:absolute; bottom:20%; left:40%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: dg-devil 8s ease-in-out infinite; }
.scn-devil-genesis .devil::before { content:''; position:absolute; top:-15px; left:50%; transform:translateX(-50%); width:10px; height:14px; background: #3a2a1a; border-radius: 50% 50% 0 0; box-shadow: 0 -8px 0 #3a2a1a; }
.scn-devil-genesis .ark { position:absolute; bottom:20%; left:55%; width:28px; height:14px; background: linear-gradient(180deg, #6a4a3a, #3a2a1a); border-radius: 50% 50% 10% 10%; box-shadow: 0 3px 6px rgba(0,0,0,0.5); animation: dg-ark 12s ease-in-out infinite; }
@keyframes dg-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes dg-lamp { 0% { transform: rotate(-8deg); } 100% { transform: rotate(8deg); } }
@keyframes dg-devil { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-6px) rotate(-3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(6px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dg-ark { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

/* devil-conflagration: dark, funny, burning face */
.scn-devil-conflagration {
  background: 
    radial-gradient(ellipse at 50% 30%, #5a1a0a 0%, #1a0a00 60%),
    linear-gradient(180deg, #0a0500 0%, #1a0a00 50%, #0a0500 100%);
  box-shadow: inset 0 0 200px #000;
}
.scn-devil-conflagration .bg-dark { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, transparent 0%, rgba(0,0,0,0.8) 100%); }
.scn-devil-conflagration .general-face { position:absolute; top:15%; left:50%; transform:translateX(-50%); width:120px; height:140px; background: radial-gradient(circle at 50% 40%, #ff7a3a 0%, #b84a1a 50%, #4a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: 0 0 60px 20px #ff5a1a, 0 0 120px 40px rgba(255,90,26,0.3); animation: dc-face 3s ease-in-out infinite alternate; }
.scn-devil-conflagration .general-face::before { content:''; position:absolute; top:20%; left:50%; transform:translateX(-50%); width:30px; height:30px; background: #ffd0a0; border-radius: 50%; box-shadow: 0 0 20px 5px #ffaa00; }
.scn-devil-conflagration .general-face::after { content:''; position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:60px; height:30px; background: linear-gradient(180deg, #c04020 0%, #802010 100%); border-radius: 0 0 20px 20px; }
.scn-devil-conflagration .devil-silhouette { position:absolute; bottom:10%; left:10%; width:40px; height:80px; background: #0a0500; border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: dc-devil 6s ease-in-out infinite; }
.scn-devil-conflagration .devil-silhouette::before { content:''; position:absolute; top:-20px; left:50%; transform:translateX(-50%); width:12px; height:18px; background: #0a0500; border-radius: 50% 50% 0 0; box-shadow: 0 -10px 0 #0a0500; }
.scn-devil-conflagration .spark-1 { position:absolute; top:30%; left:40%; width:4px; height:4px; background: #ffaa00; border-radius: 50%; box-shadow: 0 0 8px 2px #ffaa00; animation: dc-spark 2s ease-in-out infinite; }
.scn-devil-conflagration .spark-2 { position:absolute; top:35%; right:30%; width:3px; height:3px; background: #ffcc33; border-radius: 50%; box-shadow: 0 0 6px 1px #ffcc33; animation: dc-spark 2.5s ease-in-out infinite 0.5s; }
.scn-devil-conflagration .ground { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); }
@keyframes dc-face { 0% { transform: translateX(-50%) scale(1); opacity:0.9; } 50% { transform: translateX(-50%) scale(1.05); opacity:1; } 100% { transform: translateX(-50%) scale(0.95); opacity:0.85; } }
@keyframes dc-devil { 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 dc-spark { 0% { opacity:0; transform: translateY(0); } 50% { opacity:1; transform: translateY(-10px); } 100% { opacity:0; transform: translateY(-20px); } }

/* concert-rooms-disdain: tense, dim interior, concert hall */
.scn-concert-rooms-disdain {
  background: 
    radial-gradient(ellipse at 50% 30%, #3a2a3a 0%, #1a101a 60%),
    linear-gradient(180deg, #1a101a 0%, #2a1a2a 50%, #1a101a 100%);
  box-shadow: inset 0 0 150px rgba(0,0,0,0.8);
}
.scn-concert-rooms-disdain .stage { position:absolute; bottom:25%; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,0.6); }
.scn-concert-rooms-disdain .curtain-l { position:absolute; top:5%; left:5%; width:15%; height:70%; background: linear-gradient(90deg, #5a3040 0%, #3a2030 100%); border-radius: 0 30% 30% 0; box-shadow: 4px 0 20px rgba(0,0,0,0.5); animation: cr-curtain 8s ease-in-out infinite alternate; }
.scn-concert-rooms-disdain .curtain-r { position:absolute; top:5%; right:5%; width:15%; height:70%; background: linear-gradient(270deg, #5a3040 0%, #3a2030 100%); border-radius: 30% 0 0 30%; box-shadow: -4px 0 20px rgba(0,0,0,0.5); animation: cr-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-concert-rooms-disdain .singer { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:30px; height:50px; background: linear-gradient(180deg, #b87878 0%, #8a5050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cr-singer 4s ease-in-out infinite; }
.scn-concert-rooms-disdain .singer::before { content:''; position:absolute; top:-8px; left:50%; transform:translateX(-50%); width:16px; height:16px; background: #c8a0a0; border-radius: 50%; }
.scn-concert-rooms-disdain .crowd { position:absolute; bottom:15%; left:15%; right:15%; height:10%; background: repeating-linear-gradient(90deg, #1a101a 0px, #1a101a 8px, #2a1a2a 8px, #2a1a2a 16px); opacity:0.6; animation: cr-crowd 12s linear infinite; }
.scn-concert-rooms-disdain .lady { position:absolute; bottom:20%; left:20%; width:20px; height:36px; background: linear-gradient(180deg, #6a4a6a 0%, #3a203a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cr-lady 6s ease-in-out infinite; }
.scn-concert-rooms-disdain .captain { position:absolute; bottom:20%; right:25%; width:18px; height:34px; background: linear-gradient(180deg, #2a4a6a 0%, #1a2a4a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cr-captain 7s ease-in-out infinite; }
.scn-concert-rooms-disdain .priest { position:absolute; bottom:20%; right:15%; width:16px; height:38px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cr-priest 5s ease-in-out infinite; }
@keyframes cr-curtain { 0% { transform: translateX(0); } 100% { transform: translateX(-5px); } }
@keyframes cr-singer { 0% { transform: translateX(-50%) scaleY(1); } 25% { transform: translateX(-50%) scaleY(1.03); } 50% { transform: translateX(-50%) scaleY(1); } 75% { transform: translateX(-50%) scaleY(1.03); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes cr-crowd { 0% { background-position: 0 0; } 100% { background-position: 32px 0; } }
@keyframes cr-lady { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cr-captain { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cr-priest { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* scottish-tunes: warm, moonlit, hay dance */
.scn-scottish-tunes {
  background: 
    radial-gradient(ellipse at 50% 10%, #c8d0e0 0%, #6070a0 40%, #203050 100%),
    linear-gradient(180deg, #304060 0%, #203050 50%, #102030 100%);
  box-shadow: inset 0 0 200px rgba(0,0,0,0.3);
}
.scn-scottish-tunes .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #304060 0%, transparent 100%); animation: st-sky 20s ease-in-out infinite alternate; }
.scn-scottish-tunes .moon { position:absolute; top:10%; right:20%; width:60px; height:60px; background: radial-gradient(circle at 40% 40%, #f0f0ff 0%, #c0c8e0 70%, #a0a8c0 100%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(200,200,255,0.4), 0 0 80px 30px rgba(200,200,255,0.1); animation: st-moon 12s ease-in-out infinite alternate; }
.scn-scottish-tunes .hay-field { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8a7a4a 0%, #5a4a2a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.3); }
.scn-scottish-tunes .hay-bale { position:absolute; bottom:12%; width:40px; height:28px; background: linear-gradient(180deg, #b0a060 0%, #7a6a3a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: st-bale 6s ease-in-out infinite; }
.scn-scottish-tunes .bale-a { left:20%; }
.scn-scottish-tunes .bale-b { right:25%; width:48px; height:32px; animation-delay: 3s; }
.scn-scottish-tunes .piper { position:absolute; bottom:8%; left:35%; width:24px; height:48px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: st-piper 8s ease-in-out infinite; }
.scn-scottish-tunes .piper::before { content:''; position:absolute; top:-10px; left:50%; transform:translateX(-50%); width:16px; height:12px; background: #4a3a2a; border-radius: 50%; }
.scn-scottish-tunes .dancer-1 { position:absolute; bottom:8%; left:50%; width:20px; height:44px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: st-dancer 4s ease-in-out infinite; }
.scn-scottish-tunes .dancer-2 { position:absolute; bottom:8%; left:60%; width:20px; height:44px; background: linear-gradient(180deg, #7a8a6a 0%, #4a5a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: st-dancer 4.5s ease-in-out infinite reverse; }
@keyframes st-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes st-moon { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes st-bale { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes st-piper { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes st-dancer { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(-5deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-5px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-sancti-dominici-four { background: linear-gradient(180deg, #1e1816 0%, #2c241f 40%, #3a2e26 70%, #2a1f1a 100%); }

.scn-sancti-dominici-four .window   { position:absolute; top:8%; left:10%; width:30%; height:45%; background: radial-gradient(ellipse at 50% 60%, #4a3e34, #1a1410 80%); border-radius:12px; box-shadow: inset 0 0 30px #0a0806; animation: s4-window 12s ease-in-out infinite alternate; }
.scn-sancti-dominici-four .bookshelf { position:absolute; top:12%; right:8%; width:22%; height:70%; background: linear-gradient(180deg, #3a2e20, #2a1e12 60%, #1e140e); border-radius:6px; box-shadow: inset 0 4px 12px #0a0604; animation: s4-shelf 20s ease-in-out infinite; }
.scn-sancti-dominici-four .monk     { position:absolute; bottom:22%; left:35%; width:24%; height:50%; background: radial-gradient(ellipse 120% 100% at 50% 0%, #4a3a2e 0%, #2a1e16 100%); border-radius:60% 60% 40% 40% / 80% 80% 20% 20%; transform-origin: bottom center; animation: s4-monk 6s ease-in-out infinite; }
.scn-sancti-dominici-four .candle   { position:absolute; bottom:18%; left:52%; width:4%; height:30%; background: linear-gradient(180deg, #c8a878, #a08050 40%, #705030 80%, #302018); border-radius:8px; transform:rotate(2deg); animation: s4-candle 4s ease-in-out infinite; }
.scn-sancti-dominici-four .glow     { position:absolute; bottom:20%; left:48%; width:16%; height:20%; background: radial-gradient(circle, #ffd080 0%, #c8a060 40%, transparent 70%); border-radius:50%; filter:blur(6px); animation: s4-glow 3s ease-in-out infinite alternate; }
.scn-sancti-dominici-four .book     { position:absolute; bottom:15%; left:38%; width:18%; height:8%; background: linear-gradient(135deg, #5a4a38, #3a2e20 60%, #2a1e12); border-radius:4px; box-shadow: 2px 2px 6px #0a0604; transform:rotate(-5deg); animation: s4-book 8s ease-in-out infinite; }
.scn-sancti-dominici-four .shadow   { position:absolute; bottom:0; left:0; width:100%; height:30%; background: linear-gradient(180deg, transparent 0%, #1a1410 100%); animation: s4-shadow 9s ease-in-out infinite alternate; }

@keyframes s4-window   { 0% { opacity:0.8; filter:brightness(0.6) } 50% { opacity:1; filter:brightness(1) } 100% { opacity:0.85; filter:brightness(0.7) } }
@keyframes s4-shelf    { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes s4-monk     { 0% { transform:translateY(0) rotate(-1deg) } 50% { transform:translateY(-3px) rotate(2deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes s4-candle   { 0% { transform:rotate(2deg) scaleY(1) } 50% { transform:rotate(0deg) scaleY(1.02) } 100% { transform:rotate(2deg) scaleY(1) } }
@keyframes s4-glow     { 0% { opacity:0.5; transform:scale(0.95) } 50% { opacity:0.9; transform:scale(1.05) } 100% { opacity:0.6; transform:scale(0.98) } }
@keyframes s4-book     { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(-4deg) translateY(-1px) } 100% { transform:rotate(-5deg) translateY(0) } }
@keyframes s4-shadow   { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.75 } }

/* --- sancti-dominici-five --- */
.scn-sancti-dominici-five { background: linear-gradient(180deg, #1e1a16 0%, #2c2420 40%, #3a3028 70%, #2a1e1a 100%); }

.scn-sancti-dominici-five .table   { position:absolute; bottom:20%; left:5%; width:90%; height:15%; background: linear-gradient(180deg, #4a3a2e, #3a2a1e 60%, #2a1a12); border-radius:8px; box-shadow: 0 6px 20px #0a0604; animation: s5-table 10s ease-in-out infinite; }
.scn-sancti-dominici-five .tiger   { position:absolute; bottom:22%; left:30%; width:30%; height:50%; background: radial-gradient(ellipse 100% 90% at 50% 0%, #8a6a44 0%, #5a3e28 60%, #2a1a12 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: s5-tiger 5s ease-in-out infinite; }
.scn-sancti-dominici-five .kitten  { position:absolute; bottom:30%; left:55%; width:12%; height:20%; background: radial-gradient(ellipse 100% 80% at 50% 0%, #7a6a4a, #4a3a28 60%, #2a1e14); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: s5-kitten 4s ease-in-out infinite; }
.scn-sancti-dominici-five .bowl    { position:absolute; bottom:25%; left:48%; width:12%; height:8%; background: radial-gradient(ellipse at 50% 30%, #8a7a5a, #5a4a3a 60%, #3a2a1e); border-radius:50%; box-shadow: inset 0 4px 8px #1a120e; animation: s5-bowl 7s ease-in-out infinite alternate; }
.scn-sancti-dominici-five .floor   { position:absolute; bottom:0; left:0; width:100%; height:20%; background: linear-gradient(180deg, #2a221e, #1a1412); animation: s5-floor 12s ease-in-out infinite; }
.scn-sancti-dominici-five .candle  { position:absolute; bottom:30%; left:22%; width:3%; height:18%; background: linear-gradient(180deg, #c8a878, #906a48 50%, #503820 80%, #201810); border-radius:6px; animation: s5-candle 4s ease-in-out infinite; }
.scn-sancti-dominici-five .shadow  { position:absolute; bottom:0; left:0; width:100%; height:25%; background: linear-gradient(180deg, transparent 0%, #1a1412 100%); animation: s5-shadow 8s ease-in-out infinite alternate; }

@keyframes s5-table   { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-1px) scaleY(0.98) } 100% { transform:translateY(0) scaleY(1) } }
@keyframes s5-tiger   { 0% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-4px) rotate(1deg) } 100% { transform:translateY(0) rotate(-2deg) } }
@keyframes s5-kitten  { 0% { transform:translateY(0) rotate(3deg) scale(1) } 50% { transform:translateY(-2px) rotate(-2deg) scale(1.05) } 100% { transform:translateY(0) rotate(3deg) scale(1) } }
@keyframes s5-bowl    { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.02) } 100% { transform:scaleX(1) } }
@keyframes s5-floor   { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes s5-candle  { 0% { transform:rotate(2deg) scaleY(1) } 50% { transform:rotate(-1deg) scaleY(1.03) } 100% { transform:rotate(2deg) scaleY(1) } }
@keyframes s5-shadow  { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }

/* --- sancti-dominici-notes --- */
.scn-sancti-dominici-notes { background: linear-gradient(180deg, #1c1814 0%, #2a221c 40%, #382e24 70%, #2a1e18 100%); }

.scn-sancti-dominici-notes .desk    { position:absolute; bottom:15%; left:5%; width:90%; height:35%; background: linear-gradient(180deg, #4a3a2e, #3a2a1e 60%, #2a1a12); border-radius:6px 6px 0 0; box-shadow: inset 0 6px 20px #0a0604; animation: sn-desk 15s ease-in-out infinite; }
.scn-sancti-dominici-notes .paper   { position:absolute; bottom:30%; left:20%; width:35%; height:18%; background: linear-gradient(135deg, #d8c8b8, #b8a898 60%, #a08878); border-radius:2px; transform:rotate(-3deg); box-shadow: 2px 2px 6px #0a0604; animation: sn-paper 6s ease-in-out infinite; }
.scn-sancti-dominici-notes .inkwell { position:absolute; bottom:28%; left:60%; width:8%; height:10%; background: radial-gradient(ellipse at 50% 30%, #3a2a22, #1a1410 70%); border-radius:50% 50% 20% 20%; box-shadow: 0 4px 8px #0a0604; animation: sn-ink 8s ease-in-out infinite alternate; }
.scn-sancti-dominici-notes .quill   { position:absolute; bottom:38%; left:58%; width:4%; height:20%; background: linear-gradient(180deg, #c8b8a8, #8a7a6a 50%, #4a3a2a); border-radius:80% 80% 0 0 / 100% 100% 0 0; transform:rotate(30deg); transform-origin: bottom center; animation: sn-quill 4s ease-in-out infinite; }
.scn-sancti-dominici-notes .lamp    { position:absolute; bottom:45%; left:10%; width:12%; height:20%; background: radial-gradient(ellipse at 50% 0%, #c8a878 0%, #8a6a48 60%, #4a3220 100%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 30px #c8a060; animation: sn-lamp 5s ease-in-out infinite; }
.scn-sancti-dominici-notes .chair   { position:absolute; bottom:10%; left:15%; width:20%; height:35%; background: linear-gradient(180deg, #4a3a2e, #3a2a1e 60%, #2a1a12); border-radius:20% 20% 10% 10% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sn-chair 7s ease-in-out infinite; }
.scn-sancti-dominici-notes .shelf   { position:absolute; top:10%; right:5%; width:30%; height:40%; background: linear-gradient(180deg, #3a2e20, #2a1e12 60%, #1e140e); border-radius:4px; box-shadow: inset 0 2px 8px #0a0604; animation: sn-shelf 18s ease-in-out infinite; }

@keyframes sn-desk   { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes sn-paper  { 0% { transform:rotate(-3deg) translateY(0) } 50% { transform:rotate(-1deg) translateY(-2px) } 100% { transform:rotate(-3deg) translateY(0) } }
@keyframes sn-ink    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sn-quill  { 0% { transform:rotate(30deg) } 50% { transform:rotate(25deg) } 100% { transform:rotate(30deg) } }
@keyframes sn-lamp   { 0% { opacity:0.7; filter:brightness(1) } 50% { opacity:0.9; filter:brightness(1.2) } 100% { opacity:0.75; filter:brightness(1) } }
@keyframes sn-chair  { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-1px) rotate(1deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes sn-shelf  { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }

/* --- sancti-dominici-notes-two --- */
.scn-sancti-dominici-notes-two { background: linear-gradient(180deg, #1e1816 0%, #2c2420 40%, #3a2e26 70%, #2a1e1a 100%); }

.scn-sancti-dominici-notes-two .curtain { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(135deg, #2a1e16 0%, #4a3a2e 30%, #3a2a1e 70%, #1a120e 100%); clip-path: polygon(0% 0%, 20% 0%, 30% 100%, 0% 100%, 0% 0%, 100% 0%, 80% 0%, 70% 100%, 100% 100%); animation: sn2-curtain 20s ease-in-out infinite; }
.scn-sancti-dominici-notes-two .floor   { position:absolute; bottom:0; left:0; width:100%; height:25%; background: linear-gradient(180deg, #1a1412, #0e0a08); animation: sn2-floor 10s ease-in-out infinite; }
.scn-sancti-dominici-notes-two .figure1 { position:absolute; bottom:20%; left:20%; width:25%; height:55%; background: radial-gradient(ellipse 100% 90% at 50% 0%, #3a2e24 0%, #1e1612 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: sn2-fig1 7s ease-in-out infinite; }
.scn-sancti-dominici-notes-two .figure2 { position:absolute; bottom:20%; right:20%; width:25%; height:55%; background: radial-gradient(ellipse 100% 90% at 50% 0%, #4a3a2e 0%, #2a1e16 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: sn2-fig2 7s ease-in-out infinite 1s; }
.scn-sancti-dominici-notes-two .table   { position:absolute; bottom:22%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #4a3a2e, #3a2a1e 60%, #2a1a12); border-radius:6px; box-shadow: 0 6px 20px #0a0604; animation: sn2-table 12s ease-in-out infinite; }
.scn-sancti-dominici-notes-two .lamp    { position:absolute; bottom:30%; left:55%; width:8%; height:15%; background: radial-gradient(ellipse at 50% 0%, #d0b080 0%, #8a6a48 60%, #503820 100%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 40px #c8a060; animation: sn2-lamp 5s ease-in-out infinite; }
.scn-sancti-dominici-notes-two .shadow  { position:absolute; bottom:0; left:0; width:100%; height:35%; background: linear-gradient(180deg, transparent 0%, #1a1412 100%); animation: sn2-shadow 9s ease-in-out infinite alternate; }

@keyframes sn2-curtain { 0% { opacity:0.9; filter:brightness(0.8) } 50% { opacity:1; filter:brightness(1) } 100% { opacity:0.92; filter:brightness(0.85) } }
@keyframes sn2-floor  { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sn2-fig1   { 0% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-3px) rotate(1deg) } 100% { transform:translateY(0) rotate(-2deg) } }
@keyframes sn2-fig2   { 0% { transform:translateY(0) rotate(2deg) } 50% { transform:translateY(-3px) rotate(-1deg) } 100% { transform:translateY(0) rotate(2deg) } }
@keyframes sn2-table  { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes sn2-lamp   { 0% { opacity:0.7; filter:brightness(1) } 50% { opacity:0.9; filter:brightness(1.15) } 100% { opacity:0.75; filter:brightness(1) } }
@keyframes sn2-shadow { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.65 } }

/* picture-triumph – calm sunlit triumph */
.scn-picture-triumph { background: linear-gradient(180deg, #fce38a 0%, #f9d75e 40%, #f5c842 100%), radial-gradient(ellipse at 50% 20%, #fff3b0 0%, transparent 60%); }
.scn-picture-triumph .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, rgba(252,227,138,.4) 0%, transparent 100%); animation: tr-sky 8s ease-in-out infinite alternate; }
.scn-picture-triumph .sun { position:absolute; top:8%; left:65%; width:40px; height:40px; background: radial-gradient(circle, #fff9d0 0%, #f9d75e 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(249,215,94,.5); animation: tr-sun 6s ease-in-out infinite alternate; }
.scn-picture-triumph .hills-back { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #8b9a6b 0%, #5c6b3e 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; animation: tr-hills 12s ease-in-out infinite alternate; }
.scn-picture-triumph .hills-front { position:absolute; bottom:10%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6b7a4a 0%, #3a4a2a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,.4); animation: tr-hills 15s ease-in-out infinite alternate-reverse; }
.scn-picture-triumph .figure { position:absolute; bottom:20%; left:48%; width:24px; height:50px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tr-figure 5s ease-in-out infinite; }
.scn-picture-triumph .birds { position:absolute; top:15%; left:20%; width:8px; height:8px; background: radial-gradient(circle, #4a3a2a 50%, transparent 50%); border-radius:50%; box-shadow: 20px -5px 0 #4a3a2a, -15px 3px 0 #4a3a2a; animation: tr-birds 18s linear infinite; }
@keyframes tr-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes tr-sun { 0% { transform: scale(1); box-shadow: 0 0 40px 15px rgba(249,215,94,.5); } 50% { transform: scale(1.1); box-shadow: 0 0 80px 25px rgba(249,215,94,.7); } 100% { transform: scale(1.05); box-shadow: 0 0 60px 20px rgba(249,215,94,.6); } }
@keyframes tr-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes tr-figure { 0% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(4px) rotate(5deg); } 50% { transform: translateX(8px) rotate(-3deg); } 75% { transform: translateX(12px) rotate(4deg); } 100% { transform: translateX(16px) rotate(0); } }
@keyframes tr-birds { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

/* picture-pool – calm sunlit pool reflection */
.scn-picture-pool { background: linear-gradient(180deg, #a8d8ea 0%, #7ab3d4 50%, #4e8bb5 100%), radial-gradient(ellipse at 50% 100%, #6ea5c8 0%, transparent 70%); }
.scn-picture-pool .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #cfe5f0 0%, transparent 100%); animation: po-sky 10s ease-in-out infinite alternate; }
.scn-picture-pool .trees-distant { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a704a 0%, #2a3a1a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; animation: po-trees 14s ease-in-out infinite alternate; }
.scn-picture-pool .pool { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a7a9a 0%, #1a4a6a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; animation: po-pool 8s ease-in-out infinite alternate; }
.scn-picture-pool .reflection { position:absolute; bottom:5%; left:20%; width:35%; height:40%; background: radial-gradient(ellipse, rgba(255,255,255,.2) 0%, rgba(255,255,255,.05) 100%); border-radius: 50%; filter: blur(4px); animation: po-reflect 12s ease-in-out infinite alternate; }
.scn-picture-pool .figure { position:absolute; bottom:38%; left:50%; width:20px; height:40px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: po-figure 6s ease-in-out infinite; }
.scn-picture-pool .flowers { position:absolute; bottom:30%; left:10%; width:10px; height:10px; background: radial-gradient(circle, #f5c842 0%, #d4a830 80%); border-radius:50%; box-shadow: 30px 0 0 #f5c842, 60px 5px 0 #e8b830, 90px -3px 0 #d4a830; animation: po-flowers 7s ease-in-out infinite alternate; }
@keyframes po-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes po-trees { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes po-pool { 0% { background-position: 0 0; } 50% { background-position: 5px 5px; } 100% { background-position: 0 2px; } }
@keyframes po-reflect { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.4; } }
@keyframes po-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 30% { transform: translateX(-48%) translateY(-3px) rotate(2deg); } 60% { transform: translateX(-52%) translateY(-1px) rotate(-3deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes po-flowers { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(0.9); } }

/* picture-seek – tense overcast forest */
.scn-picture-seek { background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 40%, #1a2a2a 100%), linear-gradient(90deg, #5a6a6a 0%, transparent 50%, #5a6a6a 100%); }
.scn-picture-seek .sky-overcast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7a8a8a 0%, #4a5a5a 100%); animation: se-sky 5s ease-in-out infinite alternate; }
.scn-picture-seek .trees-left { position:absolute; bottom:0; left:0; width:35%; height:100%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 0 60% 60% 0 / 0 40% 40% 0; animation: se-trees 4s ease-in-out infinite alternate; }
.scn-picture-seek .trees-right { position:absolute; bottom:0; right:0; width:30%; height:100%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 60% 0 0 60% / 40% 0 0 40%; animation: se-trees 4.5s ease-in-out infinite alternate-reverse; }
.scn-picture-seek .brook { position:absolute; bottom:10%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #3a5a5a 0%, #1a3a3a 100%); border-radius: 50%; animation: se-brook 3s ease-in-out infinite; }
.scn-picture-seek .figure-seeking { position:absolute; bottom:25%; left:45%; width:18px; height:44px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: se-figure 2.5s ease-in-out infinite; }
.scn-picture-seek .path { position:absolute; bottom:0; left:38%; width:24%; height:30%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; animation: se-path 6s ease-in-out infinite alternate; }
@keyframes se-sky { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.6; } }
@keyframes se-trees { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes se-brook { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.1); } 100% { transform: translateY(2px) scaleY(0.95); } }
@keyframes se-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-3deg); } 30% { transform: translateX(-48%) translateY(-2px) rotate(2deg); } 60% { transform: translateX(-52%) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(3deg); } }
@keyframes se-path { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.5; } }

/* picture-landscape – calm sunlit hills and waterfall */
.scn-picture-landscape { background: linear-gradient(180deg, #fce38a 0%, #f9d75e 30%, #f5c842 100%), radial-gradient(ellipse at 50% 10%, #fff9d0 0%, transparent 70%); }
.scn-picture-landscape .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, rgba(252,227,138,.5) 0%, transparent 100%); animation: la-sky 9s ease-in-out infinite alternate; }
.scn-picture-landscape .sun { position:absolute; top:6%; left:55%; width:45px; height:45px; background: radial-gradient(circle, #fff9d0 0%, #f9d75e 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 70px 25px rgba(249,215,94,.4); animation: la-sun 7s ease-in-out infinite alternate; }
.scn-picture-landscape .hill-left { position:absolute; bottom:20%; left:0; width:60%; height:30%; background: linear-gradient(180deg, #6b7a4a 0%, #3a4a2a 100%); border-radius: 0 80% 80% 0 / 0 100% 100% 0; animation: la-hills 10s ease-in-out infinite alternate; }
.scn-picture-landscape .hill-right { position:absolute; bottom:15%; right:0; width:55%; height:35%; background: linear-gradient(180deg, #5c6b3e 0%, #2a3a1a 100%); border-radius: 80% 0 0 80% / 100% 0 0 100%; animation: la-hills 12s ease-in-out infinite alternate-reverse; }
.scn-picture-landscape .waterfall { position:absolute; bottom:18%; left:42%; width:16%; height:25%; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(200,230,255,.3) 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%; box-shadow: inset 0 4px 10px rgba(255,255,255,.3); animation: la-waterfall 4s ease-in-out infinite; }
.scn-picture-landscape .birch { position:absolute; bottom:25%; left:25%; width:4px; height:50px; background: linear-gradient(180deg, #c8b8a0 0%, #8a7a6a 100%); border-radius: 2px; transform-origin: bottom center; animation: la-birch 8s ease-in-out infinite; }
.scn-picture-landscape .rock { position:absolute; bottom:22%; left:35%; width:20px; height:12px; background: radial-gradient(circle, #5a5a4a 0%, #3a3a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: inset 0 3px 6px rgba(0,0,0,.3); animation: la-rock 6s ease-in-out infinite alternate; }
@keyframes la-sky { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes la-sun { 0% { transform: scale(1); box-shadow: 0 0 50px 20px rgba(249,215,94,.5); } 50% { transform: scale(1.08); box-shadow: 0 0 80px 30px rgba(249,215,94,.7); } 100% { transform: scale(1.04); box-shadow: 0 0 65px 25px rgba(249,215,94,.6); } }
@keyframes la-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes la-waterfall { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:.8; transform: scaleY(0.98); } }
@keyframes la-birch { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes la-rock { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }

/* devil-bookseller */
.scn-devil-bookseller {
  background: 
    linear-gradient(180deg, #3e2a1a 0%, #6a4a2a 40%),
    radial-gradient(ellipse at 50% 100%, #7a5a3a 0%, transparent 80%);
}
.scn-devil-bookseller .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3520 0%, #3a2a18 100%); animation: dbs-wall 20s ease-in-out infinite alternate; }
.scn-devil-bookseller .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%); border-radius: 20% 20% 0 0; }
.scn-devil-bookseller .shelf-upper { position:absolute; top:20%; left:10%; width:80%; height:8%; background: linear-gradient(180deg, #7a6040 0%, #5a4028 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-devil-bookseller .shelf-lower { position:absolute; top:40%; left:10%; width:80%; height:6%; background: linear-gradient(180deg, #7a6040 0%, #5a4028 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); transform: scale(0.95); }
.scn-devil-bookseller .book-stack { position:absolute; top:24%; left:15%; width:18%; height:14%; background: linear-gradient(180deg, #8a7048 0%, #5a4028 100%); border-radius: 2px; transform: rotate(-2deg); animation: dbs-books 4s ease-in-out infinite; }
.scn-devil-bookseller .devil-peep { position:absolute; bottom:28%; right:12%; width:24px; height:36px; background: linear-gradient(135deg, #1a1a2e 40%, #2a2a4e 100%); border-radius: 50% 20% 40% 40% / 60% 30% 50% 50%; transform-origin: 50% 100%; animation: dbs-peep 3s ease-in-out infinite alternate; }
.scn-devil-bookseller .pig-glide { position:absolute; bottom:32%; left:50%; width:30px; height:14px; background: linear-gradient(90deg, #d4a080 0%, #b08060 100%); border-radius: 50% 40% 40% 50%; animation: dbs-pig 8s linear infinite; }
.scn-devil-bookseller .lantern { position:absolute; top:10%; left:10%; width:8px; height:12px; background: radial-gradient(circle, #f0c880 0%, #b08030 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 16px 4px #d8a040, 0 0 32px 8px rgba(216,160,64,0.4); animation: dbs-glow 2s ease-in-out infinite alternate; }
@keyframes dbs-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes dbs-books { 0%,100% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } }
@keyframes dbs-peep { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-6px) rotate(5deg) } 100% { transform: translateX(-12px) rotate(0deg) } }
@keyframes dbs-pig { 0% { transform: translateX(-20px) rotate(0deg) } 25% { transform: translateX(50px) rotate(-5deg) } 50% { transform: translateX(120px) rotate(3deg) } 75% { transform: translateX(200px) rotate(-2deg) } 100% { transform: translateX(350px) rotate(0deg) } }
@keyframes dbs-glow { 0% { box-shadow: 0 0 12px 2px #d8a040, 0 0 24px 6px rgba(216,160,64,0.3); opacity:0.8 } 50% { box-shadow: 0 0 20px 6px #f0d080, 0 0 40px 12px rgba(240,208,128,0.5); opacity:1 } 100% { box-shadow: 0 0 14px 3px #d8a040, 0 0 28px 7px rgba(216,160,64,0.35); opacity:0.9 } }

/* devil-prison */
.scn-devil-prison {
  background: 
    linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 40%),
    radial-gradient(ellipse at 30% 70%, #2a2a3e 0%, transparent 70%);
}
.scn-devil-prison .cell-bg { position:absolute; inset:0; background: linear-gradient(90deg, #0a0a14 0%, #1a1a2a 50%, #0a0a14 100%); animation: dpr-cell 15s ease-in-out infinite alternate; }
.scn-devil-prison .bar-left { position:absolute; top:10%; left:30%; width:6px; height:80%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 2px; box-shadow: 2px 0 4px rgba(0,0,0,0.6); }
.scn-devil-prison .bar-right { position:absolute; top:10%; right:30%; width:6px; height:80%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 2px; box-shadow: -2px 0 4px rgba(0,0,0,0.6); }
.scn-devil-prison .turnkey { position:absolute; bottom:20%; left:10%; width:22px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: 12px 40px; animation: dpr-turnkey 4s ease-in-out infinite; }
.scn-devil-prison .prisoner { position:absolute; bottom:18%; right:15%; width:20px; height:38px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: dpr-prisoner 4s ease-in-out infinite alternate; }
.scn-devil-prison .chain { position:absolute; bottom:25%; right:18%; width:2px; height:30px; background: #5a5a6a; border-radius: 1px; transform-origin: 1px 0; animation: dpr-chain 3s ease-in-out infinite; }
.scn-devil-prison .light-beam { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(200,200,220,0.15) 0%, transparent 60%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: dpr-beam 6s ease-in-out infinite alternate; }
@keyframes dpr-cell { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes dpr-turnkey { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(10px) rotate(10deg) translateY(-4px) } 60% { transform: translateX(20px) rotate(0deg) translateY(-2px) } 100% { transform: translateX(30px) rotate(-5deg) translateY(0) } }
@keyframes dpr-prisoner { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(8px) rotate(3deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes dpr-chain { 0%,100% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(15deg) scaleY(0.9) } }
@keyframes dpr-beam { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.3 } }

/* devil-abolition */
.scn-devil-abolition {
  background: 
    linear-gradient(180deg, #7a8a8a 0%, #9a9a8a 40%),
    radial-gradient(ellipse at 50% 100%, #9a9a8a 0%, transparent 70%);
}
.scn-devil-abolition .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #8a9a9a 0%, #b0b0a0 100%); animation: dab-sky 20s ease-in-out infinite alternate; }
.scn-devil-abolition .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 100%); border-radius: 30% 30% 0 0; }
.scn-devil-abolition .turnkey-slow { position:absolute; bottom:30%; left:20%; width:24px; height:42px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 30% 30% 50% 50% / 40% 40% 50% 50%; transform-origin: 12px 42px; animation: dab-turnkey 6s ease-in-out infinite; }
.scn-devil-abolition .shackled-man { position:absolute; bottom:28%; left:45%; width:20px; height:38px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: dab-man 8s ease-in-out infinite alternate; }
.scn-devil-abolition .woman-key { position:absolute; bottom:32%; right:15%; width:18px; height:36px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 9px 36px; animation: dab-woman 5s ease-in-out infinite; }
.scn-devil-abolition .devil-nod { position:absolute; bottom:35%; left:5%; width:20px; height:34px; background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4a 100%); border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%; transform-origin: 10px 34px; animation: dab-nod 3s ease-in-out infinite; }
.scn-devil-abolition .chain-link { position:absolute; bottom:30%; left:40%; width:3px; height:20px; background: #5a5a6a; border-radius: 1px; transform: rotate(10deg); animation: dab-chain 4s ease-in-out infinite; }
@keyframes dab-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes dab-turnkey { 0% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(8px) rotate(-5deg) } 66% { transform: translateX(16px) rotate(3deg) } 100% { transform: translateX(24px) rotate(0deg) } }
@keyframes dab-man { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.02) translateY(-3px) } 100% { transform: scale(1) translateY(0) } }
@keyframes dab-woman { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-4px) rotate(8deg) } 50% { transform: translateX(-8px) rotate(-5deg) } 75% { transform: translateX(-4px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dab-nod { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(10deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-10deg) } }
@keyframes dab-chain { 0%,100% { transform: rotate(10deg) scaleY(1) } 50% { transform: rotate(20deg) scaleY(0.85) } }

/* devil-religion */
.scn-devil-religion {
  background: 
    linear-gradient(180deg, #2a1a1a 0%, #4a3a2a 40%),
    radial-gradient(ellipse at 50% 0%, #5a4a3a 0%, transparent 70%);
}
.scn-devil-religion .church-wall { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%); animation: drel-wall 25s ease-in-out infinite alternate; }
.scn-devil-religion .pew-left { position:absolute; bottom:20%; left:10%; width:30%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8% 8% 2% 2%; transform: perspective(400px) rotateX(5deg); animation: drel-pew 6s ease-in-out infinite; }
.scn-devil-religion .pew-right { position:absolute; bottom:20%; right:10%; width:30%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8% 8% 2% 2%; transform: perspective(400px) rotateX(5deg); animation: drel-pew 6s ease-in-out infinite reverse; }
.scn-devil-religion .minister { position:absolute; bottom:32%; left:30%; width:18px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: 9px 40px; animation: drel-minister 4s ease-in-out infinite; }
.scn-devil-religion .religion-figure { position:absolute; bottom:35%; right:28%; width:16px; height:38px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 8px 38px; animation: drel-religion 3s ease-in-out infinite alternate; }
.scn-devil-religion .congregation { position:absolute; bottom:15%; left:35%; width:40px; height:30px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; filter: blur(1px); animation: drel-cong 5s ease-in-out infinite; }
.scn-devil-religion .stained-glass { position:absolute; top:8%; left:35%; width:30%; height:30%; background: radial-gradient(circle at 50% 40%, #d08040 0%, #8a6030 40%, #4a2a1a 100%); clip-path: polygon(50% 0%, 100% 20%, 100% 80%, 50% 100%, 0% 80%, 0% 20%); animation: drel-glass 10s ease-in-out infinite alternate; }
.scn-devil-religion .pulpit { position:absolute; bottom:30%; left:45%; width:12px; height:28px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 6px rgba(0,0,0,0.6); animation: drel-pulpit 7s ease-in-out infinite; }
@keyframes drel-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes drel-pew { 0%,100% { transform: perspective(400px) rotateX(5deg) translateY(0) } 50% { transform: perspective(400px) rotateX(5deg) translateY(-2px) } }
@keyframes drel-minister { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(5deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-3px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes drel-religion { 0% { transform: translateX(0) rotate(0deg) scaleY(1) } 50% { transform: translateX(4px) rotate(10deg) scaleY(1.1) } 100% { transform: translateX(0) rotate(0deg) scaleY(1) } }
@keyframes drel-cong { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes drel-glass { 0% { opacity:0.7; filter: brightness(0.8) } 50% { opacity:1; filter: brightness(1) } 100% { opacity:0.9; filter: brightness(0.9) } }
@keyframes drel-pulpit { 0%,100% { transform: scale(1) translateY(0) } 50% { transform: scale(1.02) translateY(-1px) } }

/* matilda-poetess – warm dim interior */
.scn-matilda-poetess {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #5a3a1a 100%), radial-gradient(ellipse at 50% 80%, #5a3a1a 0%, transparent 70%);
}
.scn-matilda-poetess .wall   { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1a 0%, transparent 100%); animation: mp-wall 20s ease-in-out infinite alternate; }
.scn-matilda-poetess .desk   { position:absolute; bottom:30%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius:4% 4% 0 0; box-shadow:0 -4px 12px rgba(0,0,0,.6); animation: mp-desk 12s ease-in-out infinite; }
.scn-matilda-poetess .lamp   { position:absolute; bottom:45%; left:25%; width:20px; height:40px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius:50% 50% 10% 10%; box-shadow:0 0 20px 6px #b08040; animation: mp-lamp 3s ease-in-out infinite alternate; }
.scn-matilda-poetess .figure { position:absolute; bottom:32%; left:40%; width:22px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: mp-figure 6s ease-in-out infinite; }
.scn-matilda-poetess .book   { position:absolute; bottom:31%; left:55%; width:40px; height:28px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius:4% 4% 8% 8%; transform:rotate(-5deg); box-shadow:inset 0 2px 4px rgba(255,255,255,.1); animation: mp-book 8s ease-in-out infinite; }
.scn-matilda-poetess .wreath { position:absolute; bottom:40%; left:60%; width:30px; height:20px; background: radial-gradient(circle at 50% 50%, #6a8a3a 0%, #4a6a1a 100%); border-radius:50%; filter:blur(1px); animation: mp-wreath 15s ease-in-out infinite; }
.scn-matilda-poetess .glow   { position:absolute; bottom:40%; left:22%; width:50px; height:50px; background: radial-gradient(circle, #c08040 0%, transparent 70%); border-radius:50%; animation: mp-glow 4s ease-in-out infinite alternate; }
.scn-matilda-poetess .curtain{ position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:0 0 20% 20%; transform-origin:top; animation: mp-curtain 7s ease-in-out infinite alternate; }
@keyframes mp-wall    { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes mp-desk    { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes mp-lamp    { 0% { box-shadow:0 0 15px 4px #b08040, 0 0 30px 8px rgba(176,128,64,.3) } 50% { box-shadow:0 0 25px 8px #d0a060, 0 0 50px 14px rgba(208,160,96,.5) } 100% { box-shadow:0 0 18px 5px #b08040, 0 0 35px 10px rgba(176,128,64,.35) } }
@keyframes mp-figure  { 0% { transform:translateX(0) translateY(0) rotate(0) } 25% { transform:translateX(3px) translateY(-2px) rotate(2deg) } 50% { transform:translateX(0) translateY(0) rotate(0) } 75% { transform:translateX(-3px) translateY(-1px) rotate(-2deg) } 100% { transform:translateX(0) translateY(0) rotate(0) } }
@keyframes mp-book    { 0% { transform:rotate(-5deg) } 50% { transform:rotate(-3deg) translateY(-1px) } 100% { transform:rotate(-5deg) } }
@keyframes mp-wreath  { 0% { transform:scale(1) rotate(0) } 50% { transform:scale(1.05) rotate(5deg) } 100% { transform:scale(1) rotate(0) } }
@keyframes mp-glow    { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes mp-curtain { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.03) } 100% { transform:scaleX(1) } }

/* matilda-wise-bold – warm dim interior with window */
.scn-matilda-wise-bold {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #5a3a1a 100%), radial-gradient(ellipse at 70% 50%, #5a3a1a 0%, transparent 60%);
}
.scn-matilda-wise-bold .wall     { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a2a1a 0%, transparent 100%); animation: mwb-wall 18s ease-in-out infinite alternate; }
.scn-matilda-wise-bold .window   { position:absolute; bottom:40%; right:15%; width:80px; height:100px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border:4px solid #5a3a1a; border-radius:8% 8% 12% 12%; box-shadow:inset 0 0 20px rgba(255,255,200,.3); animation: mwb-window 5s ease-in-out infinite alternate; }
.scn-matilda-wise-bold .figure   { position:absolute; bottom:30%; left:30%; width:24px; height:52px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: mwb-figure 8s ease-in-out infinite; }
.scn-matilda-wise-bold .chair    { position:absolute; bottom:25%; left:25%; width:40px; height:30px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius:20% 20% 40% 40%; box-shadow:inset 0 -4px 6px rgba(0,0,0,.4); animation: mwb-chair 12s ease-in-out infinite; }
.scn-matilda-wise-bold .lightbeam{ position:absolute; bottom:40%; right:20%; width:100px; height:120px; background: linear-gradient(135deg, rgba(255,255,220,.2) 0%, transparent 100%); transform-origin:top right; animation: mwb-light 7s ease-in-out infinite alternate; }
.scn-matilda-wise-bold .ostrich  { position:absolute; bottom:25%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 20% 20%; transform:rotate(10deg); box-shadow:0 0 8px rgba(0,0,0,.5); animation: mwb-ostrich 10s ease-in-out infinite; }
@keyframes mwb-wall    { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes mwb-window  { 0% { box-shadow:inset 0 0 15px rgba(255,255,200,.2) } 50% { box-shadow:inset 0 0 30px rgba(255,255,200,.5) } 100% { box-shadow:inset 0 0 20px rgba(255,255,200,.3) } }
@keyframes mwb-figure  { 0% { transform:translateX(0) translateY(0) rotate(0) } 25% { transform:translateX(5px) translateY(-2px) rotate(3deg) } 50% { transform:translateX(0) translateY(0) rotate(0) } 75% { transform:translateX(-5px) translateY(-1px) rotate(-3deg) } 100% { transform:translateX(0) translateY(0) rotate(0) } }
@keyframes mwb-chair   { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes mwb-light   { 0% { opacity:.3; transform:scaleX(1) } 50% { opacity:.6; transform:scaleX(1.1) } 100% { opacity:.4; transform:scaleX(1) } }
@keyframes mwb-ostrich { 0% { transform:rotate(10deg) translateY(0) } 50% { transform:rotate(8deg) translateY(-3px) } 100% { transform:rotate(10deg) translateY(0) } }

/* chamouni-hymn-intro – calm overcast valley */
.scn-chamouni-hymn-intro {
  background: linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 40%, #3a4a4a 100%), radial-gradient(ellipse at 50% 100%, #4a5a5a 0%, transparent 60%);
}
.scn-chamouni-hymn-intro .sky      { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #8a9a9a 0%, transparent 100%); animation: chi-sky 30s ease-in-out infinite alternate; }
.scn-chamouni-hymn-intro .mountain { position:absolute; bottom:30%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #5a6a6a 0%, #3a4a4a 100%); clip-path:polygon(0% 100%, 50% 0%, 100% 100%); animation: chi-mtn 25s ease-in-out infinite alternate; }
.scn-chamouni-hymn-intro .pines    { position:absolute; bottom:20%; left:0; right:0; height:30%; background: repeating-linear-gradient(90deg, #4a5a3a 0px, #4a5a3a 8px, transparent 8px, transparent 16px); background-size:16px 100%; animation: chi-pines 10s linear infinite; }
.scn-chamouni-hymn-intro .river    { position:absolute; bottom:15%; left:0; right:0; height:12%; background: linear-gradient(90deg, #5a7a7a 0%, #7a9a9a 50%, #5a7a7a 100%); border-radius:50% 50% 40% 40%; animation: chi-river 8s ease-in-out infinite alternate; }
.scn-chamouni-hymn-intro .flowers  { position:absolute; bottom:15%; left:20%; width:20px; height:15px; background: radial-gradient(circle, #5a8a9a 0%, #3a5a6a 100%); border-radius:50%; box-shadow:40px 5px 0 #5a8a9a, 80px -2px 0 #4a7a8a; animation: chi-flowers 6s ease-in-out infinite; }
.scn-chamouni-hymn-intro .cloud    { position:absolute; top:12%; left:0; width:120px; height:20px; background: linear-gradient(90deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter:blur(6px); animation: chi-cloud 45s linear infinite; }
@keyframes chi-sky     { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes chi-mtn     { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(1) } }
@keyframes chi-pines   { 0% { background-position:0 0 } 100% { background-position:-32px 0 } }
@keyframes chi-river   { 0% { transform:translateY(0) scaleX(1) } 50% { transform:translateY(2px) scaleX(1.03) } 100% { transform:translateY(0) scaleX(1) } }
@keyframes chi-flowers { 0% { transform:rotate(0) } 50% { transform:rotate(5deg) } 100% { transform:rotate(0) } }
@keyframes chi-cloud   { 0% { transform:translateX(-60px) } 100% { transform:translateX(100vw) } }

/* chamouni-mountain – tense dawn mountain */
.scn-chamouni-mountain {
  background: linear-gradient(180deg, #2a1a3a 0%, #6a4a5a 40%, #d0a060 100%), radial-gradient(ellipse at 50% 0%, #d0a060 0%, transparent 70%);
}
.scn-chamouni-mountain .sky      { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a1a3a 0%, #6a4a5a 80%, transparent 100%); animation: cm-sky 8s ease-in-out infinite alternate; }
.scn-chamouni-mountain .sun      { position:absolute; top:15%; left:50%; width:60px; height:60px; background: radial-gradient(circle, #ffd0a0 0%, #d0a060 60%, transparent 100%); border-radius:50%; transform:translateX(-50%); box-shadow:0 0 40px 20px rgba(208,160,96,.6); animation: cm-sun 6s ease-in-out infinite alternate; }
.scn-chamouni-mountain .mountain { position:absolute; bottom:30%; left:20%; right:20%; height:50%; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); clip-path:polygon(0% 100%, 30% 20%, 50% 0%, 70% 20%, 100% 100%); animation: cm-mtn 4s ease-in-out infinite alternate; }
.scn-chamouni-mountain .pines    { position:absolute; bottom:15%; left:0; right:0; height:35%; background: repeating-linear-gradient(90deg, #2a3a2a 0px, #2a3a2a 6px, transparent 6px, transparent 12px); background-size:12px 100%; animation: cm-pines 3s ease-in-out infinite; }
.scn-chamouni-mountain .hills    { position:absolute; bottom:5%; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius:60% 40% 0 0 / 80% 70% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,.5); animation: cm-hills 5s ease-in-out infinite alternate; }
.scn-chamouni-mountain .mist     { position:absolute; bottom:20%; left:0; right:0; height:20%; background: linear-gradient(90deg, rgba(180,160,200,.1) 0%, rgba(180,160,200,.3) 50%, transparent 100%); filter:blur(8px); animation: cm-mist 12s ease-in-out infinite alternate; }
@keyframes cm-sky   { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cm-sun   { 0% { transform:translateX(-50%) scale(.95); box-shadow:0 0 30px 15px rgba(208,160,96,.5) } 50% { transform:translateX(-50%) scale(1.05); box-shadow:0 0 50px 25px rgba(208,160,96,.8) } 100% { transform:translateX(-50%) scale(.95); box-shadow:0 0 30px 15px rgba(208,160,96,.5) } }
@keyframes cm-mtn   { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.03) } 100% { transform:scaleY(1) } }
@keyframes cm-pines  { 0% { background-position:0 0; opacity:.9 } 50% { background-position:-6px 0; opacity:1 } 100% { background-position:0 0; opacity:.9 } }
@keyframes cm-hills  { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes cm-mist   { 0% { opacity:.4; transform:translateX(0) } 50% { opacity:.7; transform:translateX(20px) } 100% { opacity:.4; transform:translateX(0) } }

.scn-to-wordsworth-variants-eight {
  background: linear-gradient(180deg, #2b1e14 0%, #3d2a1e 50%, #1f1510 100%), radial-gradient(ellipse at 30% 60%, #3d2a1e 0%, transparent 80%);
}
.scn-to-wordsworth-variants-eight .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2b1e14 0%, #1f1510 100%); }
.scn-to-wordsworth-variants-eight .window-sky { position:absolute; top:8%; left:12%; width:30%; height:40%; background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #1a1a3e 100%); border-radius: 2px 2px 10px 10px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: wv8-night 12s ease-in-out infinite alternate; }
.scn-to-wordsworth-variants-eight .desk { position:absolute; bottom:6%; left:5%; right:15%; height:28%; background: linear-gradient(180deg, #4a3520 0%, #2e1f10 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.4); }
.scn-to-wordsworth-variants-eight .candle-glow { position:absolute; bottom:32%; left:28%; width:12px; height:40px; background: radial-gradient(circle at 50% 20%, #ffd080 0%, #e8a040 50%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: wv8-candle 3s ease-in-out infinite alternate; }
.scn-to-wordsworth-variants-eight .book-a { position:absolute; bottom:15%; left:35%; width:22%; height:12%; background: linear-gradient(135deg, #5e3018 0%, #3d1e0c 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.3); }
.scn-to-wordsworth-variants-eight .book-b { position:absolute; bottom:14%; left:58%; width:18%; height:10%; background: linear-gradient(135deg, #705030 0%, #4a2e14 100%); border-radius: 2px; transform: rotate(3deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.3); animation: wv8-book 9s ease-in-out infinite; }
.scn-to-wordsworth-variants-eight .quill { position:absolute; bottom:28%; left:65%; width:4px; height:26%; background: linear-gradient(180deg, #d4c4a0 0%, #a08858 100%); border-radius: 50% 50% 0 0; transform-origin: bottom center; transform: rotate(-20deg); animation: wv8-quill 6s ease-in-out infinite alternate; }
@keyframes wv8-night { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes wv8-candle { 0% { transform: scaleY(0.9); opacity:0.85; box-shadow: 0 0 20px 6px #ffd080; } 50% { transform: scaleY(1.1); opacity:1; box-shadow: 0 0 30px 10px #ffd080; } 100% { transform: scaleY(1); opacity:0.9; box-shadow: 0 0 24px 8px #e8a040; } }
@keyframes wv8-book { 0%,100% { transform: rotate(3deg); } 50% { transform: rotate(1deg) translateY(-1px); } }
@keyframes wv8-quill { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg) translateY(-2px); } 100% { transform: rotate(-18deg); } }

.scn-to-wordsworth-variants-nine {
  background: linear-gradient(180deg, #1e1a0e 0%, #2a2218 50%, #14100a 100%), radial-gradient(ellipse at 50% 70%, #3a3024 0%, transparent 60%);
}
.scn-to-wordsworth-variants-nine .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%); }
.scn-to-wordsworth-variants-nine .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a3024 0%, #1e1a0e 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,0.5); }
.scn-to-wordsworth-variants-nine .table { position:absolute; bottom:16%; left:20%; right:20%; height:16%; background: linear-gradient(180deg, #5a4a32 0%, #3a2a1a 100%); border-radius: 6px 6px 0 0; box-shadow: 0 -2px 10px rgba(0,0,0,0.4); }
.scn-to-wordsworth-variants-nine .lamp-glow { position:absolute; bottom:32%; left:50%; width:30px; height:30px; transform: translateX(-50%); background: radial-gradient(circle, #d4a050 0%, #b08030 50%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: wv9-lamp 4s ease-in-out infinite alternate; }
.scn-to-wordsworth-variants-nine .figure-a { position:absolute; bottom:20%; left:22%; width:14px; height:38px; background: linear-gradient(180deg, #2a1e14 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wv9-figure 7s ease-in-out infinite; }
.scn-to-wordsworth-variants-nine .figure-b { position:absolute; bottom:19%; left:40%; width:15px; height:40px; background: linear-gradient(180deg, #2a1e14 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wv9-figure 8s ease-in-out infinite 1s; }
.scn-to-wordsworth-variants-nine .figure-c { position:absolute; bottom:20%; right:24%; width:13px; height:36px; background: linear-gradient(180deg, #2a1e14 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wv9-figure 6s ease-in-out infinite 0.5s; }
@keyframes wv9-lamp { 0% { opacity:0.8; transform: translateX(-50%) scale(0.95); } 50% { opacity:1; transform: translateX(-50%) scale(1.05); } 100% { opacity:0.85; transform: translateX(-50%) scale(1); } }
@keyframes wv9-figure { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0deg); } }

.scn-angel-visitant {
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4e8 40%, #e0f0ff 70%, #fff5e6 100%), radial-gradient(ellipse at 50% 0%, #fff5e6 0%, transparent 70%);
}
.scn-angel-visitant .sky { position:absolute; inset:0; background: linear-gradient(180deg, #87ceeb 0%, #b0d4e8 40%, #d0e8f8 100%); }
.scn-angel-visitant .sun-glow { position:absolute; top:5%; left:45%; width:18%; height:25%; background: radial-gradient(circle at 50% 50%, #ffe680 0%, #ffcc66 30%, transparent 70%); border-radius: 50%; filter: blur(15px); animation: aav-sun 6s ease-in-out infinite alternate; }
.scn-angel-visitant .holly-left { position:absolute; bottom:10%; left:2%; width:35%; height:50%; background: radial-gradient(ellipse at 50% 20%, #2a6e3a 0%, #1a4e2a 60%, transparent 100%); clip-path: polygon(0% 100%, 0% 20%, 40% 0%, 60% 20%, 100% 10%, 100% 100%); animation: aav-holly 10s ease-in-out infinite; }
.scn-angel-visitant .holly-right { position:absolute; bottom:12%; right:2%; width:30%; height:45%; background: radial-gradient(ellipse at 50% 20%, #2a6e3a 0%, #1a4e2a 60%, transparent 100%); clip-path: polygon(0% 10%, 40% 0%, 60% 20%, 100% 0%, 100% 100%, 0% 100%); animation: aav-holly 12s ease-in-out infinite 1s; }
.scn-angel-visitant .path { position:absolute; bottom:0; left:30%; right:30%; height:15%; background: linear-gradient(180deg, #c8b080 0%, #a89060 100%); border-radius: 50% 50% 0 0; }
.scn-angel-visitant .figure-angel { position:absolute; bottom:18%; left:46%; width:16px; height:44px; background: linear-gradient(180deg, #d4c4a0 0%, #a08858 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px 4px rgba(255,255,200,0.3); transform-origin: bottom center; animation: aav-angel 12s ease-in-out infinite alternate; }
.scn-angel-visitant .bird { position:absolute; top:18%; left:10%; width:20px; height:10px; background: radial-gradient(ellipse at 30% 50%, #2a1e14 0%, transparent 100%); clip-path: polygon(0% 50%, 30% 0%, 60% 50%, 100% 0%, 100% 100%, 60% 50%, 30% 100%); animation: aav-bird 20s linear infinite; }
@keyframes aav-sun { 0% { opacity:0.8; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.9; transform: scale(1); } }
@keyframes aav-holly { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-1deg); } }
@keyframes aav-angel { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-4px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes aav-bird { 0% { transform: translateX(-30px); } 100% { transform: translateX(110vw); } }

.scn-recollections-of-love-intro {
  background: linear-gradient(180deg, #6b7a5e 0%, #7f8a6a 40%, #6b7a5e 70%, #4a5a3a 100%), radial-gradient(ellipse at 50% 100%, #4a5a3a 0%, transparent 60%);
}
.scn-recollections-of-love-intro .bg-forest { position:absolute; inset:0; background: linear-gradient(180deg, #7f8a6a 0%, #6b7a5e 50%, #4a5a3a 100%); }
.scn-recollections-of-love-intro .heath { position:absolute; bottom:8%; left:8%; right:8%; height:30%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2e 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: roli-heath 8s ease-in-out infinite alternate; }
.scn-recollections-of-love-intro .flower-a { position:absolute; bottom:30%; left:20%; width:8px; height:14px; background: linear-gradient(180deg, #b08060 0%, #805030 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom center; animation: roli-flower 5s ease-in-out infinite; }
.scn-recollections-of-love-intro .flower-b { position:absolute; bottom:28%; left:35%; width:10px; height:16px; background: linear-gradient(180deg, #b08060 0%, #805030 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom center; animation: roli-flower 6s ease-in-out infinite 1s; }
.scn-recollections-of-love-intro .figure-l { position:absolute; bottom:16%; left:25%; width:14px; height:38px; background: linear-gradient(180deg, #3a2a1a 0%, #1e1208 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: roli-walk 12s ease-in-out infinite; }
.scn-recollections-of-love-intro .figure-r { position:absolute; bottom:17%; right:30%; width:14px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1e1208 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: roli-walk 13s ease-in-out infinite 0.5s; }
.scn-recollections-of-love-intro .mist { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(200,210,190,0.15) 0%, transparent 100%); filter: blur(20px); animation: roli-mist 30s linear infinite; }
@keyframes roli-heath { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes roli-flower { 0% { transform: rotate(0deg); } 25% { transform: rotate(5deg) translateY(-2px); } 50% { transform: rotate(-5deg); } 75% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes roli-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(24px) rotate(1deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes roli-mist { 0% { transform: translateX(-20px); opacity:0.5; } 50% { opacity:0.8; } 100% { transform: translateX(20px); opacity:0.6; } }

.scn-date-tree-yearning {
  background: linear-gradient(145deg, #1a1a2e 0%, #2b1e30 40%, #3a2630 100%),
              radial-gradient(ellipse at 70% 30%, #3a2630 0%, transparent 60%);
}
.scn-date-tree-yearning .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #151520 0%, #1e1825 100%); opacity: 0.85;
}
.scn-date-tree-yearning .window-frame {
  position: absolute; top: 10%; left: 20%; width: 40%; height: 60%; border: 6px solid #2a1a1a; border-radius: 4px; background: linear-gradient(180deg, #2c2a3e 0%, #1a1a2e 100%); box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: dty-window 12s ease-in-out infinite;
}
.scn-date-tree-yearning .branch {
  position: absolute; top: 8%; left: 25%; width: 5px; height: 45%; background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%); border-radius: 40% 40% 10% 10%; transform-origin: bottom; animation: dty-branch 8s ease-in-out infinite;
}
.scn-date-tree-yearning .branch::after {
  content: ''; position: absolute; top: -15px; left: -20px; width: 40px; height: 30px; background: radial-gradient(ellipse, #5a4a2a 0%, transparent 70%); border-radius: 60% 40% 50% 50%; filter: blur(4px); animation: dty-leaves 8s ease-in-out infinite;
}
.scn-date-tree-yearning .figure-silhouette {
  position: absolute; bottom: 5%; left: 35%; width: 30px; height: 50px; background: linear-gradient(180deg, #0e0e1a 0%, #060612 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dty-figure 6s ease-in-out infinite;
}
.scn-date-tree-yearning .lamp-glow {
  position: absolute; bottom: 8%; right: 15%; width: 8px; height: 8px; background: radial-gradient(circle, #b08850 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 15px rgba(176,136,80,0.3), 0 0 60px 30px rgba(176,136,80,0.1); animation: dty-lamp 4s ease-in-out infinite alternate;
}
.scn-date-tree-yearning .dust-particle {
  position: absolute; top: 50%; left: 30%; width: 4px; height: 4px; background: rgba(200,180,140,0.3); border-radius: 50%; filter: blur(1px); animation: dty-dust 15s linear infinite;
}
.scn-date-tree-yearning .dust-b {
  top: 40%; left: 60%; width: 3px; height: 3px; animation-delay: -7s; animation-duration: 18s;
}
@keyframes dty-window { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes dty-branch { 0% { transform: rotate(0deg) } 50% { transform: rotate(4deg) } 100% { transform: rotate(-2deg) } }
@keyframes dty-leaves { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(0.95) } }
@keyframes dty-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(5px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(-3px) translateY(0) rotate(0) } }
@keyframes dty-lamp { 0% { opacity:0.8; box-shadow: 0 0 20px 10px rgba(176,136,80,0.2); } 50% { opacity:1; box-shadow: 0 0 40px 20px rgba(176,136,80,0.4); } 100% { opacity:0.9; box-shadow: 0 0 25px 12px rgba(176,136,80,0.3); } }
@keyframes dty-dust { 0% { transform: translate(0,0) scale(1); opacity:0; } 20% { opacity:0.6; } 80% { opacity:0.4; } 100% { transform: translate(80px,-120px) scale(0.5); opacity:0; } }

.scn-date-tree-solitude {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0e0e1a 100%),
              radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, transparent 70%);
}
.scn-date-tree-solitude .sky-overcast {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); opacity: 0.6; animation: dts-sky 20s ease-in-out infinite alternate;
}
.scn-date-tree-solitude .mountain-range {
  position: absolute; bottom: 20%; 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 10px 20px rgba(0,0,0,0.5); animation: dts-mountain 25s ease-in-out infinite;
}
.scn-date-tree-solitude .hollow-globe {
  position: absolute; top: 15%; left: 35%; width: 60px; height: 60px; border: 3px solid rgba(200,200,220,0.3); border-radius: 50%; background: radial-gradient(circle, rgba(200,200,220,0.1) 0%, transparent 70%); box-shadow: 0 0 20px 5px rgba(200,200,220,0.1); animation: dts-globe 10s ease-in-out infinite;
}
.scn-date-tree-solitude .figure-ts {
  position: absolute; bottom: 18%; left: 30%; width: 20px; height: 40px; background: linear-gradient(180deg, #12121a 0%, #08080e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dts-figure 8s ease-in-out infinite;
}
.scn-date-tree-solitude .frost-crystals {
  position: absolute; top: 10%; left: 10%; width: 30px; height: 30px; background: radial-gradient(circle at 30% 40%, rgba(220,230,255,0.3) 0%, transparent 60%); filter: blur(2px); animation: dts-frost 6s ease-in-out infinite alternate;
}
.scn-date-tree-solitude .cloud-ts {
  position: absolute; top: 8%; left: 0; width: 80px; height: 15px; background: linear-gradient(180deg, rgba(180,180,200,0.4) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: dts-cloud 40s linear infinite;
}
.scn-date-tree-solitude .cloud-ts-b {
  top: 12%; width: 60px; height: 10px; animation-duration: 55s; animation-delay: -20s; animation-direction: reverse;
}
@keyframes dts-sky { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes dts-mountain { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes dts-globe { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-10px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes dts-figure { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(8px) rotate(5deg) } 100% { transform: translateX(-4px) rotate(-3deg) } }
@keyframes dts-frost { 0% { opacity:0.3; transform: scale(0.9) } 50% { opacity:0.7; transform: scale(1.2) } 100% { opacity:0.4; transform: scale(1) } }
@keyframes dts-cloud { 0% { transform: translateX(-80px) } 100% { transform: translateX(120vw) } }

.scn-date-tree-imagination {
  background: linear-gradient(135deg, #1a1a2e 0%, #2a1e30 50%, #1e1a2a 100%),
              radial-gradient(ellipse at 30% 60%, #2a1e30 0%, transparent 60%);
}
.scn-date-tree-imagination .study-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #141420 0%, #1a1822 100%); opacity: 0.9;
}
.scn-date-tree-imagination .bookshelf {
  position: absolute; bottom: 5%; left: 5%; width: 35%; height: 60%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 0 15px rgba(0,0,0,0.7); animation: dti-shelf 20s ease-in-out infinite;
}
.scn-date-tree-imagination .bookshelf::before {
  content: ''; position: absolute; top: 10%; left: 10%; width: 80%; height: 3px; background: #3a2a1a; box-shadow: 0 15px 0 #3a2a1a, 0 30px 0 #3a2a1a, 0 45px 0 #3a2a1a; opacity: 0.5;
}
.scn-date-tree-imagination .open-book {
  position: absolute; bottom: 20%; right: 15%; width: 50px; height: 35px; background: linear-gradient(180deg, #b09870 0%, #806040 100%); border-radius: 4px 4px 0 0; transform: rotate(-5deg); box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: dti-book 6s ease-in-out infinite;
}
.scn-date-tree-imagination .open-book::after {
  content: ''; position: absolute; top: 5px; left: 5px; right: 5px; bottom: 5px; background: repeating-linear-gradient(0deg, rgba(0,0,0,0.1) 0px, rgba(0,0,0,0.1) 2px, transparent 2px, transparent 4px); opacity: 0.4;
}
.scn-date-tree-imagination .map-curled {
  position: absolute; top: 30%; left: 10%; width: 40px; height: 50px; background: linear-gradient(135deg, #c0a878 0%, #a08050 100%); border-radius: 0 0 30% 0; transform: rotate(10deg); box-shadow: 0 4px 6px rgba(0,0,0,0.4); animation: dti-map 12s ease-in-out infinite;
}
.scn-date-tree-imagination .window-imagination {
  position: absolute; top: 8%; right: 10%; width: 45%; height: 40%; border: 5px solid #1a1a0a; border-radius: 4px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: dti-window 15s ease-in-out infinite;
}
.scn-date-tree-imagination .light-beam {
  position: absolute; top: 10%; right: 15%; width: 30%; height: 2px; background: linear-gradient(90deg, rgba(220,200,160,0.1) 0%, rgba(220,200,160,0.4) 100%); transform: rotate(-30deg); filter: blur(3px); animation: dti-beam 8s ease-in-out infinite alternate;
}
.scn-date-tree-imagination .dust-dream {
  position: absolute; top: 60%; left: 50%; width: 3px; height: 3px; background: rgba(200,180,140,0.2); border-radius: 50%; filter: blur(1px); animation: dti-dust 20s linear infinite;
}
@keyframes dti-shelf { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes dti-book { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-3px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes dti-map { 0% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(13deg) scale(1.05) } 100% { transform: rotate(10deg) scale(1) } }
@keyframes dti-window { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes dti-beam { 0% { opacity:0; transform: rotate(-30deg) scaleX(0.5) } 50% { opacity:1; transform: rotate(-25deg) scaleX(1) } 100% { opacity:0.3; transform: rotate(-30deg) scaleX(0.7) } }
@keyframes dti-dust { 0% { transform: translate(0,0) scale(1); opacity:0; } 20% { opacity:0.5; } 80% { opacity:0.3; } 100% { transform: translate(-60px,-90px) scale(0.6); opacity:0; } }

.scn-date-tree-despair {
  background: linear-gradient(180deg, #0e0e18 0%, #1a0e18 50%, #0a0a12 100%),
              radial-gradient(ellipse at 60% 40%, #1a0e18 0%, transparent 70%);
}
.scn-date-tree-despair .dark-void {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a0a10 0%, #12101a 100%); opacity: 0.85;
}
.scn-date-tree-despair .bubble {
  position: absolute; top: 25%; left: 40%; width: 30px; height: 30px; border: 1px solid rgba(180,160,200,0.2); border-radius: 50%; background: radial-gradient(circle at 30% 35%, rgba(200,180,220,0.1) 0%, transparent 70%); box-shadow: 0 0 10px 2px rgba(200,180,220,0.05); animation: dtd-bubble 8s ease-in-out infinite;
}
.scn-date-tree-despair .child-figure {
  position: absolute; bottom: 10%; left: 25%; width: 18px; height: 30px; background: linear-gradient(180deg, #0a0a12 0%, #040408 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dtd-child 5s ease-in-out infinite;
}
.scn-date-tree-despair .mother-silhouette {
  position: absolute; bottom: 12%; right: 25%; width: 28px; height: 45px; background: linear-gradient(180deg, #12121a 0%, #08080e 100%); border-radius: 50% 50% 40% 40% / 70% 60% 40% 40%; transform-origin: bottom center; animation: dtd-mother 6s ease-in-out infinite;
}
.scn-date-tree-despair .ground-line {
  position: absolute; bottom: 6%; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, transparent 0%, #2a1a1a 20%, #2a1a1a 80%, transparent 100%); animation: dtd-ground 12s ease-in-out infinite;
}
.scn-date-tree-despair .faint-lamp {
  position: absolute; bottom: 18%; right: 10%; width: 5px; height: 5px; background: radial-gradient(circle, #5a3a2a 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 15px 5px rgba(90,58,42,0.2); animation: dtd-lamp 4s ease-in-out infinite alternate;
}
.scn-date-tree-despair .despair-particles {
  position: absolute; top: 10%; left: 0; width: 2px; height: 2px; background: rgba(180,160,200,0.15); border-radius: 50%; animation: dtd-particles 10s linear infinite;
}
@keyframes dtd-bubble { 0% { transform: translateY(0) scale(1); opacity:0.7 } 50% { transform: translateY(-20px) scale(1.1); opacity:0.9 } 100% { transform: translateY(0) scale(0.9); opacity:0.5 } }
@keyframes dtd-child { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(6px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dtd-mother { 0% { transform: translateX(0) rotate(0) scaleY(1) } 50% { transform: translateX(-4px) rotate(3deg) scaleY(1.02) } 100% { transform: translateX(0) rotate(0) scaleY(1) } }
@keyframes dtd-ground { 0% { opacity:0.4 } 50% { opacity:0.8 } 100% { opacity:0.4 } }
@keyframes dtd-lamp { 0% { opacity:0.5; box-shadow: 0 0 10px 3px rgba(90,58,42,0.1); } 50% { opacity:1; box-shadow: 0 0 20px 8px rgba(90,58,42,0.3); } 100% { opacity:0.6; box-shadow: 0 0 12px 4px rgba(90,58,42,0.15); } }
@keyframes dtd-particles { 0% { transform: translateY(0) scale(1); opacity:0; } 20% { opacity:0.4; } 80% { opacity:0.2; } 100% { transform: translateY(-150px) scale(0.3); opacity:0; } }

.scn-skiddaw-notes { background: linear-gradient(180deg, #2b2b1a 0%, #1f1a0f 60%, #13100a 100%), radial-gradient(ellipse at 50% 0%, #3a3520 0%, transparent 70%); }
.scn-skiddaw-notes .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a3520 0%, #1f1a0f 100%); opacity:0.6; }
.scn-skiddaw-notes .desk { position:absolute; bottom:8%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #4a3f28 0%, #2a2214 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.5); }
.scn-skiddaw-notes .paper { position:absolute; bottom:22%; left:20%; width:50%; height:12%; background: linear-gradient(135deg, #d6c89a 0%, #b8a87a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform: rotate(-2deg); animation: skn-paper 12s ease-in-out infinite alternate; }
.scn-skiddaw-notes .candle { position:absolute; bottom:30%; left:60%; width:8px; height:24px; background: linear-gradient(180deg, #f0e8d0 0%, #c8b898 100%); border-radius: 4px 4px 2px 2px; }
.scn-skiddaw-notes .flame { position:absolute; bottom:48%; left:60%; width:10px; height:14px; margin-left:-1px; background: radial-gradient(circle at 50% 80%, #ffd080 0%, #ffa040 50%, transparent 70%); filter: blur(2px); animation: skn-flame 2s ease-in-out infinite alternate; }
.scn-skiddaw-notes .window-frame { position:absolute; top:6%; left:55%; width:30%; height:50%; border: 6px solid #3a2a1a; border-radius: 4px; background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-skiddaw-notes .window-view { position:absolute; top:6%; left:55%; width:30%; height:50%; background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 100%); opacity:0.5; animation: skn-sky 15s ease-in-out infinite alternate; }
.scn-skiddaw-notes .mountain { position:absolute; top:30%; left:60%; width:20%; height:30%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); clip-path: polygon(0% 100%, 50% 10%, 100% 100%); opacity:0.4; animation: skn-mtn 20s ease-in-out infinite alternate; }
.scn-skiddaw-notes .book { position:absolute; bottom:18%; left:15%; width:12%; height:8%; background: linear-gradient(135deg, #6a5030 0%, #4a3018 100%); border-radius: 2px; box-shadow: 2px 2px 4px rgba(0,0,0,.4); }
@keyframes skn-paper { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(0deg) translateX(2px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes skn-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.8; } 50% { transform: scaleY(1.2) translateY(-2px); opacity:1; } 100% { transform: scaleY(0.9) translateY(1px); opacity:0.7; } }
@keyframes skn-sky { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.5; } }
@keyframes skn-mtn { 0% { clip-path: polygon(0% 100%, 50% 10%, 100% 100%); } 50% { clip-path: polygon(0% 100%, 50% 5%, 100% 100%); } 100% { clip-path: polygon(0% 100%, 50% 10%, 100% 100%); } }

.scn-maiden-blush { background: linear-gradient(180deg, #3a1a1a 0%, #2a1010 60%, #1a0808 100%), radial-gradient(ellipse at 30% 40%, #4a2020 0%, transparent 70%); }
.scn-maiden-blush .bg-shadow { position:absolute; inset:0; background: linear-gradient(135deg, #2a1010 0%, #1a0808 100%); opacity:0.7; }
.scn-maiden-blush .mirror-frame { position:absolute; top:15%; left:30%; width:40%; height:60%; border: 8px solid #5a3a2a; border-radius: 50% 50% 10% 10%; box-shadow: 0 4px 15px rgba(0,0,0,.6); }
.scn-maiden-blush .mirror-glass { position:absolute; top:15%; left:30%; width:40%; height:60%; border-radius: 50% 50% 10% 10%; background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%); opacity:0.5; animation: mab-glow 4s ease-in-out infinite alternate; }
.scn-maiden-blush .figure { position:absolute; bottom:20%; left:35%; width:30%; height:55%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 8px 12px rgba(0,0,0,.8); animation: mab-fig 6s ease-in-out infinite; }
.scn-maiden-blush .cheek-glow { position:absolute; bottom:40%; left:52%; width:10%; height:8%; background: radial-gradient(circle, #c8553d 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 8px #c8553d; animation: mab-blush 3s ease-in-out infinite alternate; }
.scn-maiden-blush .rose { position:absolute; bottom:28%; left:52%; width:16%; height:16%; background: radial-gradient(circle at 30% 30%, #b87878 0%, #702243 100%); border-radius: 50%; transform: rotate(45deg); animation: mab-rose 5s ease-in-out infinite; }
.scn-maiden-blush .petal-drop { position:absolute; bottom:18%; left:58%; width:4%; height:4%; background: radial-gradient(circle, #c8553d 0%, transparent 100%); border-radius: 50%; animation: mab-drop 4s ease-in-out infinite; }
@keyframes mab-glow { 0% { box-shadow: inset 0 0 20px rgba(200,85,61,.3); } 50% { box-shadow: inset 0 0 40px rgba(200,85,61,.6); } 100% { box-shadow: inset 0 0 20px rgba(200,85,61,.3); } }
@keyframes mab-fig { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mab-blush { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes mab-rose { 0% { transform: rotate(45deg) scale(1); } 50% { transform: rotate(55deg) scale(1.1); } 100% { transform: rotate(45deg) scale(1); } }
@keyframes mab-drop { 0% { transform: translateY(0); opacity:0.8; } 50% { transform: translateY(10px); opacity:0.5; } 100% { transform: translateY(20px); opacity:0; } }

.scn-sappho-reply { background: linear-gradient(180deg, #2a2020 0%, #1a1515 60%, #0a0808 100%), radial-gradient(ellipse at 50% 70%, #3a2a20 0%, transparent 80%); }
.scn-sappho-reply .bg-curtain { position:absolute; inset:0; background: linear-gradient(90deg, #2a1a1a 0%, transparent 30%, transparent 70%, #2a1a1a 100%); opacity:0.6; }
.scn-sappho-reply .couch { position:absolute; bottom:5%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #3a2a20 0%, #1a1010 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; }
.scn-sappho-reply .sappho-silhouette { position:absolute; bottom:18%; left:40%; width:25%; height:55%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius: 50% 50% 30% 30% / 70% 60% 30% 30%; transform: scaleX(-1); animation: sap-body 8s ease-in-out infinite; }
.scn-sappho-reply .lip-glow { position:absolute; bottom:45%; left:52%; width:8%; height:5%; background: radial-gradient(circle, #dda070 0%, transparent 80%); border-radius: 30% 30% 50% 50%; animation: sap-lip 3s ease-in-out infinite alternate; }
.scn-sappho-reply .smile-curve { position:absolute; bottom:43%; left:50%; width:12%; height:3%; margin-left:-6%; border: 2px solid transparent; border-bottom: 2px solid #ffc080; border-radius: 0 0 50% 50%; animation: sap-smile 2s ease-in-out infinite; }
.scn-sappho-reply .hand-rose { position:absolute; bottom:35%; left:60%; width:10%; height:15%; background: linear-gradient(135deg, #1a0a0a 0%, #0a0505 100%); border-radius: 40% 40% 10% 10%; transform: rotate(-20deg); animation: sap-hand 5s ease-in-out infinite; }
.scn-sappho-reply .sparkle { position:absolute; bottom:50%; left:55%; width:4%; height:4%; background: radial-gradient(circle, #ffd080 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: sap-sparkle 1.5s ease-in-out infinite alternate; }
@keyframes sap-body { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-3px) rotate(2deg); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes sap-lip { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes sap-smile { 0% { border-bottom-color: #ffc080; transform: scaleX(1); } 50% { border-bottom-color: #ffd0a0; transform: scaleX(1.2); } 100% { border-bottom-color: #ffc080; transform: scaleX(1); } }
@keyframes sap-hand { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-5px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes sap-sparkle { 0% { opacity:0.2; transform: scale(0.5); } 50% { opacity:0.8; transform: scale(1.5); } 100% { opacity:0.3; transform: scale(0.8); } }

.scn-devil-christmas { background: linear-gradient(180deg, #0a0a1a 0%, #0f0a10 40%, #050505 100%), radial-gradient(ellipse at 50% 80%, #1a1a2a 0%, transparent 80%); }
.scn-devil-christmas .night-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0a0a1a 0%, #101018 100%); animation: dev-sky 20s ease-in-out infinite alternate; }
.scn-devil-christmas .graveyard-ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a05 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.8); }
.scn-devil-christmas .tomb { position:absolute; bottom:28%; left:30%; width:30%; height:25%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a10 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.7); animation: dev-tomb 15s ease-in-out infinite; }
.scn-devil-christmas .spear-left { position:absolute; bottom:35%; left:32%; width:4%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%); clip-path: polygon(40% 0%, 60% 0%, 100% 100%, 0% 100%); animation: dev-spear 8s ease-in-out infinite alternate; }
.scn-devil-christmas .spear-right { position:absolute; bottom:35%; right:32%; width:4%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%); clip-path: polygon(40% 0%, 60% 0%, 100% 100%, 0% 100%); animation: dev-spear 8s ease-in-out infinite alternate-reverse; }
.scn-devil-christmas .devil-figure { position:absolute; bottom:15%; left:45%; width:20%; height:60%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%; clip-path: polygon(0% 20%, 100% 20%, 80% 100%, 20% 100%); animation: dev-devil 12s ease-in-out infinite; }
.scn-devil-christmas .glow-hole { position:absolute; bottom:38%; left:48%; width:6%; height:6%; background: radial-gradient(circle, #4a8a4a 0%, transparent 70%); border-radius: 50%; animation: dev-glow 3s ease-in-out infinite alternate; }
.scn-devil-christmas .dead-hand { position:absolute; bottom:30%; left:55%; width:6%; height:12%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 20% 20% 50% 50%; transform: rotate(-30deg); animation: dev-hand 6s ease-in-out infinite; }
@keyframes dev-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes dev-tomb { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dev-spear { 0% { opacity:0.6; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.6; transform: scaleY(1); } }
@keyframes dev-devil { 0% { clip-path: polygon(0% 20%, 100% 20%, 80% 100%, 20% 100%); } 50% { clip-path: polygon(0% 25%, 100% 25%, 85% 100%, 15% 100%); } 100% { clip-path: polygon(0% 20%, 100% 20%, 80% 100%, 20% 100%); } }
@keyframes dev-glow { 0% { opacity:0.3; transform: scale(0.8); } 50% { opacity:0.7; transform: scale(1.2); } 100% { opacity:0.4; transform: scale(0.9); } }
@keyframes dev-hand { 0% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(-20deg) translateX(3px); } 100% { transform: rotate(-30deg) translateX(0); } }

.scn-love-song-sorrow {
  background:
    radial-gradient(ellipse at 20% 80%, #2a3a5a 0%, transparent 60%),
    linear-gradient(180deg, #0f1530 0%, #1a2248 50%, #2a3a5a 100%);
}
.scn-love-song-sorrow .moon {
  position: absolute; top: 10%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #d8e6f0 0%, #b0c4d8 70%);
  border-radius: 50%; box-shadow: 0 0 40px 12px rgba(180,200,230,.5);
  animation: ls-moon 12s ease-in-out infinite alternate;
}
.scn-love-song-sorrow .ruin-wall {
  position: absolute; bottom: 20%; width: 35%; height: 60%;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.3);
}
.scn-love-song-sorrow .ruin-wall.left { left: 5%; }
.scn-love-song-sorrow .ruin-wall.right { right: 5%; }
.scn-love-song-sorrow .window-arch {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 100px;
  background: linear-gradient(135deg, #1a2040 0%, #2a3050 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 0 30px rgba(180,200,230,.1);
  animation: ls-arch 14s ease-in-out infinite alternate;
}
.scn-love-song-sorrow .singer {
  position: absolute; bottom: 22%; left: 38%; 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: ls-singer 4s ease-in-out infinite;
}
.scn-love-song-sorrow .listener {
  position: absolute; bottom: 22%; left: 53%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ls-listener 5s ease-in-out infinite;
}
.scn-love-song-sorrow .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
}
.scn-love-song-sorrow .vine {
  position: absolute; bottom: 25%; left: 10%; width: 6px; height: 80px;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%);
  border-radius: 50%; transform: rotate(10deg);
  animation: ls-vine 8s ease-in-out infinite alternate;
}
@keyframes ls-moon { 0% { opacity: .7; transform: scale(.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: .8; transform: scale(1); } }
@keyframes ls-arch { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes ls-singer { 0% { transform: translateY(0) rotate(-2deg); } 30% { transform: translateY(-2px) rotate(2deg); } 70% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ls-listener { 0% { transform: translateY(0) rotate(0); } 40% { transform: translateY(-1px) rotate(1deg); } 80% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ls-vine { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.1); } 100% { transform: rotate(12deg) scaleY(.95); } }

.scn-love-knight-tale {
  background:
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #1a1210 0%, #2a1a18 40%, #1a1210 100%);
}
.scn-love-knight-tale .wall-back {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1a18 0%, #1a1210 100%);
}
.scn-love-knight-tale .hearth-glow {
  position: absolute; bottom: 10%; left: 20%; width: 100px; height: 100px;
  background: radial-gradient(circle, #c87040 0%, #a05030 40%, transparent 70%);
  border-radius: 50%;
  animation: kt-hearth 3s ease-in-out infinite alternate;
}
.scn-love-knight-tale .knight-figure {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kt-knight 6s ease-in-out infinite;
}
.scn-love-knight-tale .lady-figure {
  position: absolute; bottom: 20%; left: 48%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kt-lady 6s ease-in-out infinite reverse;
}
.scn-love-knight-tale .shield {
  position: absolute; bottom: 28%; left: 36%; width: 20px; height: 24px;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a1a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(15deg);
  animation: kt-shield 4s ease-in-out infinite alternate;
}
.scn-love-knight-tale .brand-ember {
  position: absolute; bottom: 32%; left: 37%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 70%);
  border-radius: 50%; box-shadow: 0 0 12px 4px #c8553d;
  animation: kt-ember 1.5s ease-in-out infinite alternate;
}
.scn-love-knight-tale .table {
  position: absolute; bottom: 14%; left: 35%; width: 60px; height: 10px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 20% 20% 10% 10%;
  animation: kt-table 8s ease-in-out infinite;
}
@keyframes kt-hearth { 0% { opacity: .6; transform: scale(.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .7; transform: scale(.95); } }
@keyframes kt-knight { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-2px) rotate(2deg); } 70% { transform: translateY(1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes kt-lady { 0% { transform: translateY(0) rotate(1deg); } 40% { transform: translateY(-1px) rotate(-1deg); } 80% { transform: translateY(1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes kt-shield { 0% { transform: rotate(12deg) scale(1); } 50% { transform: rotate(18deg) scale(1.05); } 100% { transform: rotate(15deg) scale(.98); } }
@keyframes kt-ember { 0% { opacity: .5; transform: scale(.8); } 100% { opacity: 1; transform: scale(1.2); } }
@keyframes kt-table { 0%,100% { opacity: .9; } 50% { opacity: .7; } }

.scn-love-knight-madness {
  background:
    radial-gradient(ellipse at 30% 50%, #2a2a3a 0%, transparent 60%),
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%);
}
.scn-love-knight-madness .overcast-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%);
  animation: km-sky 20s ease-in-out infinite alternate;
}
.scn-love-knight-madness .mountains {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 50% 0 0 / 60% 70% 0 0;
  clip-path: polygon(0 100%, 10% 40%, 25% 60%, 40% 30%, 55% 50%, 70% 35%, 85% 55%, 100% 40%, 100% 100%);
}
.scn-love-knight-madness .trees {
  position: absolute; bottom: 22%; left: 5%; right: 5%; height: 15%;
  background: linear-gradient(180deg, #0a1a0a 0%, #050a05 100%);
  border-radius: 40% 40% 0 0;
  clip-path: polygon(0% 100%, 5% 60%, 10% 80%, 15% 50%, 20% 70%, 25% 40%, 30% 60%, 35% 30%, 40% 50%, 45% 20%, 50% 50%, 55% 25%, 60% 45%, 65% 20%, 70% 40%, 75% 15%, 80% 35%, 85% 10%, 90% 30%, 95% 15%, 100% 50%, 100% 100%);
}
.scn-love-knight-madness .knight-silhouette {
  position: absolute; bottom: 18%; left: 45%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000005 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: km-knight 3s ease-in-out infinite;
}
.scn-love-knight-madness .angel-apparition {
  position: absolute; top: 12%; left: 30%; width: 40px; height: 60px;
  background: radial-gradient(circle at 50% 40%, rgba(200,220,255,.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: km-angel 5s ease-in-out infinite alternate;
}
.scn-love-knight-madness .fiend-shadow {
  position: absolute; bottom: 15%; right: 20%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 30%, #1a0a1a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: km-fiend 6s ease-in-out infinite alternate;
}
@keyframes km-sky { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes km-knight { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(-2deg); } 50% { transform: translateY(2px) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes km-angel { 0% { opacity: .2; transform: scale(.9); } 50% { opacity: .8; transform: scale(1.1); } 100% { opacity: .3; transform: scale(.95); } }
@keyframes km-fiend { 0% { opacity: .5; transform: scale(1); } 50% { opacity: .9; transform: scale(1.05); } 100% { opacity: .6; transform: scale(.95); } }

.scn-love-lady-rescue {
  background:
    radial-gradient(ellipse at 80% 30%, #2a3a4a 0%, transparent 60%),
    linear-gradient(180deg, #0f1520 0%, #1a2030 50%, #2a3545 100%);
}
.scn-love-lady-rescue .cave-wall {
  position: absolute; left: 0; right: 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-love-lady-rescue .cave-wall.top { top: 0; height: 30%; }
.scn-love-lady-rescue .cave-wall.bottom { bottom: 0; height: 20%; border-radius: 0 0 30% 30%; }
.scn-love-lady-rescue .moonlight-beam {
  position: absolute; top: 5%; left: 40%; width: 60px; height: 80%;
  background: linear-gradient(180deg, rgba(180,200,230,.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: lr-beam 15s ease-in-out infinite alternate;
}
.scn-love-lady-rescue .lady-nurse {
  position: absolute; bottom: 22%; 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: lr-lady 4s ease-in-out infinite;
}
.scn-love-lady-rescue .knight-dying {
  position: absolute; bottom: 15%; left: 48%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: lr-knight 6s ease-in-out infinite alternate;
}
.scn-love-lady-rescue .leaves-pile {
  position: absolute; bottom: 10%; left: 45%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #7a6a2a 0%, #5a4a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px #7a6a2a;
  animation: lr-leaves 8s ease-in-out infinite;
}
.scn-love-lady-rescue .small-fire {
  position: absolute; bottom: 12%; left: 30%; width: 14px; height: 14px;
  background: radial-gradient(circle, #c87040 0%, #a05030 40%, transparent 70%);
  border-radius: 50%;
  animation: lr-fire 2s ease-in-out infinite alternate;
}
@keyframes lr-beam { 0% { opacity: .3; transform: scaleX(.9); } 50% { opacity: .7; transform: scaleX(1.1); } 100% { opacity: .4; transform: scaleX(1); } }
@keyframes lr-lady { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-2px) rotate(2deg); } 70% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lr-knight { 0% { transform: rotate(-18deg) scale(1); } 50% { transform: rotate(-22deg) scale(1.02); } 100% { transform: rotate(-20deg) scale(.98); } }
@keyframes lr-leaves { 0%,100% { opacity: .8; } 50% { opacity: 1; } }
@keyframes lr-fire { 0% { opacity: .5; transform: scale(.8); } 100% { opacity: 1; transform: scale(1.1); } }

.scn-to-wordsworth-variants-four {
  background:
    linear-gradient(180deg, #2b2218 0%, #1f1710 50%, #15100a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-to-wordsworth-variants-four .bg-wall {
  position: absolute; inset: 0; background:
    linear-gradient(135deg, #2a2218 0%, #1f1810 100%);
  animation: tv4-wall 12s ease-in-out infinite alternate;
}
.scn-to-wordsworth-variants-four .desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 30%;
  background: linear-gradient(180deg, #4a3828 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,.4);
  transform: perspective(600px) rotateX(2deg);
  animation: tv4-desk 8s ease-in-out infinite;
}
.scn-to-wordsworth-variants-four .book {
  position: absolute; bottom: 25%; left: 40%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,.5);
  transform: skewX(-2deg) rotate(-1deg);
  animation: tv4-book 10s ease-in-out infinite;
}
.scn-to-wordsworth-variants-four .candle {
  position: absolute; bottom: 32%; left: 52%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #d0a070 0%, #a07040 100%);
  border-radius: 50% 50% 4px 4px;
  animation: tv4-candle 6s ease-in-out infinite;
}
.scn-to-wordsworth-variants-four .flame {
  position: absolute; bottom: 60%; left: 52.5%; width: 8px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 20px 8px #c08040, 0 0 40px 12px rgba(192,128,64,.4);
  animation: tv4-flame 2s ease-in-out infinite alternate;
}
.scn-to-wordsworth-variants-four .glow {
  position: absolute; inset: 30% 30% 20% 30%;
  background: radial-gradient(ellipse, rgba(192,128,64,.15) 0%, transparent 70%);
  pointer-events: none;
  animation: tv4-glow 4s ease-in-out infinite alternate;
}
.scn-to-wordsworth-variants-four .hand {
  position: absolute; bottom: 18%; left: 36%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tv4-hand 5s ease-in-out infinite;
}
.scn-to-wordsworth-variants-four .pen {
  position: absolute; bottom: 22%; left: 38%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #6a4a2a 100%);
  border-radius: 50%;
  transform: rotate(-20deg);
  animation: tv4-pen 5s ease-in-out infinite;
}
@keyframes tv4-wall { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes tv4-desk { 0% { transform: perspective(600px) rotateX(2deg) translateY(0) } 50% { transform: perspective(600px) rotateX(2deg) translateY(-2px) } 100% { transform: perspective(600px) rotateX(2deg) translateY(0) } }
@keyframes tv4-book { 0%,100% { transform: skewX(-2deg) rotate(-1deg) translateY(0) } 50% { transform: skewX(-2deg) rotate(-1deg) translateY(-3px) } }
@keyframes tv4-candle { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes tv4-flame { 0% { transform: scaleY(.9) translateY(0) } 50% { transform: scaleY(1.1) translateY(-2px) } 100% { transform: scaleY(1) translateY(-1px) } }
@keyframes tv4-glow { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes tv4-hand { 0% { transform: translateX(0) rotate(-5deg) } 30% { transform: translateX(4px) rotate(0deg) } 60% { transform: translateX(8px) rotate(3deg) } 100% { transform: translateX(12px) rotate(-2deg) } }
@keyframes tv4-pen { 0% { transform: rotate(-20deg) } 30% { transform: rotate(-15deg) } 60% { transform: rotate(-18deg) } 100% { transform: rotate(-22deg) } }

.scn-to-wordsworth-variants-five {
  background:
    linear-gradient(180deg, #1e1a28 0%, #2a2230 50%, #1a1620 100%),
    radial-gradient(ellipse at 30% 70%, #3a3a4a 0%, transparent 60%);
}
.scn-to-wordsworth-variants-five .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #201c28 0%, #181420 100%);
  animation: tv5-wall 15s ease-in-out infinite alternate;
}
.scn-to-wordsworth-variants-five .window-frame {
  position: absolute; top: 10%; left: 30%; right: 30%; bottom: 40%;
  border: 12px solid #3a3028;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 4px 12px rgba(0,0,0,.3);
  background: transparent;
  animation: tv5-frame 10s ease-in-out infinite;
}
.scn-to-wordsworth-variants-five .window-glass {
  position: absolute; top: 12%; left: 32%; right: 32%; bottom: 42%;
  background: linear-gradient(180deg, rgba(80,100,140,.3) 0%, rgba(60,80,120,.2) 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 30px rgba(100,140,200,.2);
  animation: tv5-glass 8s ease-in-out infinite alternate;
}
.scn-to-wordsworth-variants-five .figure {
  position: absolute; bottom: 30%; left: 46%; width: 20px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tv5-figure 6s ease-in-out infinite;
}
.scn-to-wordsworth-variants-five .curtain-left {
  position: absolute; top: 8%; left: 28%; width: 20%; height: 55%;
  background: linear-gradient(135deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 0 40% 40% 0;
  transform: skewX(3deg);
  animation: tv5-curtain-l 12s ease-in-out infinite;
}
.scn-to-wordsworth-variants-five .curtain-right {
  position: absolute; top: 8%; right: 28%; width: 20%; height: 55%;
  background: linear-gradient(225deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 40% 0 0 40%;
  transform: skewX(-3deg);
  animation: tv5-curtain-r 12s ease-in-out infinite reverse;
}
.scn-to-wordsworth-variants-five .moon-glow {
  position: absolute; top: 15%; left: 42%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(220,220,255,.4) 0%, rgba(180,200,255,.1) 50%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: tv5-moon 9s ease-in-out infinite alternate;
}
@keyframes tv5-wall { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes tv5-frame { 0%,100% { transform: scale(1) } 50% { transform: scale(1.01) } }
@keyframes tv5-glass { 0% { opacity: .5 } 50% { opacity: .7 } 100% { opacity: .55 } }
@keyframes tv5-figure { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-3px) rotate(1deg) } 60% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes tv5-curtain-l { 0% { transform: skewX(3deg) translateY(0) } 50% { transform: skewX(3deg) translateY(-2px) } 100% { transform: skewX(3deg) translateY(0) } }
@keyframes tv5-curtain-r { 0% { transform: skewX(-3deg) translateY(0) } 50% { transform: skewX(-3deg) translateY(-2px) } 100% { transform: skewX(-3deg) translateY(0) } }
@keyframes tv5-moon { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .4 } }

.scn-to-wordsworth-variants-six {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a20 100%),
    radial-gradient(ellipse at 70% 60%, #3a3a4a 0%, transparent 60%);
}
.scn-to-wordsworth-variants-six .bg-interior {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1e1e2e 0%, #14141e 100%);
  animation: tv6-bg 14s ease-in-out infinite alternate;
}
.scn-to-wordsworth-variants-six .window-frame {
  position: absolute; top: 5%; left: 25%; right: 25%; bottom: 50%;
  border: 12px solid #3a3028;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6), 0 4px 12px rgba(0,0,0,.4);
  animation: tv6-frame 12s ease-in-out infinite;
}
.scn-to-wordsworth-variants-six .storm-sky {
  position: absolute; top: 7%; left: 27%; right: 27%; bottom: 52%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 30%, #3a3a4a 60%, #2a2a3a 100%);
  border-radius: 2px;
  animation: tv6-storm 8s ease-in-out infinite alternate;
}
.scn-to-wordsworth-variants-six .rain {
  position: absolute; top: 7%; left: 27%; right: 27%; bottom: 52%;
  background: repeating-linear-gradient(0deg, rgba(180,200,220,.1) 0px, rgba(180,200,220,.1) 2px, transparent 2px, transparent 8px);
  animation: tv6-rain 4s linear infinite;
}
.scn-to-wordsworth-variants-six .figure {
  position: absolute; bottom: 25%; left: 45%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tv6-figure 7s ease-in-out infinite;
}
.scn-to-wordsworth-variants-six .letter {
  position: absolute; bottom: 28%; left: 48%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #c8b89a 0%, #a89070 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,.3);
  animation: tv6-letter 9s ease-in-out infinite;
}
.scn-to-wordsworth-variants-six .candle {
  position: absolute; bottom: 30%; left: 52%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #c8a070 0%, #a07040 100%);
  border-radius: 50% 50% 4px 4px;
  animation: tv6-candle 6s ease-in-out infinite;
}
.scn-to-wordsworth-variants-six .flame {
  position: absolute; bottom: 56%; left: 52.5%; width: 6px; height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 18px 6px #c08040, 0 0 36px 10px rgba(192,128,64,.3);
  animation: tv6-flame 2.5s ease-in-out infinite alternate;
}
@keyframes tv6-bg { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes tv6-frame { 0%,100% { transform: scale(1) } 50% { transform: scale(1.008) } }
@keyframes tv6-storm { 0% { opacity: .4 } 50% { opacity: .7 } 100% { opacity: .5 } }
@keyframes tv6-rain { 0% { background-position: 0 0 } 100% { background-position: 0 20px } }
@keyframes tv6-figure { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-2px) rotate(1deg) } 60% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes tv6-letter { 0%,100% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-4px) } }
@keyframes tv6-candle { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes tv6-flame { 0% { transform: scaleY(.8) translateY(0) } 50% { transform: scaleY(1.2) translateY(-3px) } 100% { transform: scaleY(1) translateY(-1px) } }

.scn-to-wordsworth-variants-seven {
  background:
    linear-gradient(180deg, #1a1410 0%, #201a14 50%, #18100c 100%),
    radial-gradient(ellipse at 40% 70%, #2a2218 0%, transparent 65%);
}
.scn-to-wordsworth-variants-seven .bg-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1c1612 0%, #14100c 100%);
  animation: tv7-bg 16s ease-in-out infinite alternate;
}
.scn-to-wordsworth-variants-seven .chair {
  position: absolute; bottom: 15%; left: 35%; right: 35%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 6px 14px rgba(0,0,0,.5);
  animation: tv7-chair 10s ease-in-out infinite;
}
.scn-to-wordsworth-variants-seven .figure {
  position: absolute; bottom: 20%; left: 42%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tv7-figure 8s ease-in-out infinite;
}
.scn-to-wordsworth-variants-seven .blanket {
  position: absolute; bottom: 10%; left: 36%; right: 38%; height: 20%;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 2px 8px rgba(0,0,0,.4);
  animation: tv7-blanket 12s ease-in-out infinite;
}
.scn-to-wordsworth-variants-seven .light-shaft {
  position: absolute; top: 5%; left: 25%; width: 15%; height: 70%;
  background: linear-gradient(180deg, rgba(200,180,140,.08) 0%, rgba(200,180,140,.02) 100%);
  transform: skewX(-5deg);
  filter: blur(8px);
  animation: tv7-light 14s ease-in-out infinite alternate;
}
.scn-to-wordsworth-variants-seven .dust-motes {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(circle at 30% 40%, rgba(220,200,160,.1) 0%, transparent 50%),
              radial-gradient(circle at 70% 60%, rgba(220,200,160,.08) 0%, transparent 40%);
  filter: blur(2px);
  animation: tv7-dust 20s ease-in-out infinite;
}
@keyframes tv7-bg { 0% { opacity: .75 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes tv7-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes tv7-figure { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-2px) rotate(1deg) } 60% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes tv7-blanket { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes tv7-light { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .4 } }
@keyframes tv7-dust { 0% { transform: translateY(0) scale(1) } 33% { transform: translateY(-8px) scale(1.1) } 66% { transform: translateY(-4px) scale(.95) } 100% { transform: translateY(0) scale(1) } }

/* kayser-portrait */
.scn-kayser-portrait { background: linear-gradient(135deg, #2b1a0e 0%, #4a2e1a 50%, #6b4423 100%), radial-gradient(ellipse at 80% 20%, #8a5d2c 0%, transparent 60%); }
.scn-kayser-portrait .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3d2a18 0%, #1f1308 100%); }
.scn-kayser-portrait .window { position:absolute; top:8%; left:70%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 50%, #cba06a 0%, #6f4e2c 70%, #2a1a0c 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(203,160,106,.3); animation: kp-window 12s ease-in-out infinite alternate; }
.scn-kayser-portrait .frame { position:absolute; top:20%; left:15%; width:30%; height:45%; border: 8px solid #5c3f24; border-radius: 6px; background: linear-gradient(135deg, #4a2e1a 0%, #2b1a0e 100%); box-shadow: 0 0 40px rgba(0,0,0,.5), inset 0 0 20px rgba(0,0,0,.3); transform: perspective(800px) rotateY(-5deg); animation: kp-frame 16s ease-in-out infinite; }
.scn-kayser-portrait .portrait { position:absolute; top:22%; left:17%; width:26%; height:41%; background: radial-gradient(ellipse 50% 60% at 50% 40%, #cba06a 0%, #8a5d2c 40%, transparent 70%), linear-gradient(180deg, #6f4e2c 30%, #3d2a18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); opacity: .85; animation: kp-portrait 20s ease-in-out infinite alternate; }
.scn-kayser-portrait .table { position:absolute; bottom:8%; left:10%; width:35%; height:4%; background: linear-gradient(180deg, #5c3f24 0%, #3d2a18 100%); border-radius: 2px; box-shadow: 0 -2px 10px rgba(0,0,0,.5); }
.scn-kayser-portrait .candle { position:absolute; bottom:12%; left:22%; width:4%; height:12%; background: linear-gradient(180deg, #e8d5b0 0%, #cba06a 40%, #6f4e2c 100%); border-radius: 2px 2px 30% 30%; box-shadow: 0 0 30px 10px rgba(203,160,106,.6), 0 0 60px 20px rgba(203,160,106,.3); animation: kp-candle 3s ease-in-out infinite alternate; }
.scn-kayser-portrait .curtain-l { position:absolute; top:0; left:0; width:12%; height:100%; background: linear-gradient(90deg, #4a2e1a 0%, #6b4423 50%, #3d2a18 100%); border-radius: 0 40% 40% 0; filter: blur(2px); transform-origin: left; animation: kp-curtain 20s ease-in-out infinite; }
.scn-kayser-portrait .curtain-r { position:absolute; top:0; right:0; width:12%; height:100%; background: linear-gradient(90deg, #3d2a18 0%, #6b4423 50%, #4a2e1a 100%); border-radius: 40% 0 0 40%; filter: blur(2px); transform-origin: right; animation: kp-curtain 20s ease-in-out infinite reverse; }

@keyframes kp-window { 0% { opacity:.6; transform:scaleY(1) } 50% { opacity:.8; transform:scaleY(1.02) } 100% { opacity:.7; transform:scaleY(.98) } }
@keyframes kp-frame { 0% { transform: perspective(800px) rotateY(-5deg) } 50% { transform: perspective(800px) rotateY(-6deg) } 100% { transform: perspective(800px) rotateY(-4deg) } }
@keyframes kp-portrait { 0% { opacity:.8; filter:brightness(.9) } 50% { opacity:.9; filter:brightness(1.1) } 100% { opacity:.85; filter:brightness(1) } }
@keyframes kp-candle { 0% { box-shadow: 0 0 20px 5px rgba(203,160,106,.5), 0 0 40px 10px rgba(203,160,106,.2); transform: scaleY(1) } 50% { box-shadow: 0 0 40px 10px rgba(203,160,106,.7), 0 0 80px 20px rgba(203,160,106,.4); transform: scaleY(1.02) } 100% { box-shadow: 0 0 25px 6px rgba(203,160,106,.5), 0 0 50px 12px rgba(203,160,106,.25); transform: scaleY(.98) } }
@keyframes kp-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(.98) } 100% { transform: scaleX(1.02) } }

/* christian-epitaph */
.scn-christian-epitaph { background: linear-gradient(180deg, #1a1a2e 0%, #2c2c44 40%, #1e1e30 100%), radial-gradient(ellipse at 50% 0%, #3a3a5e 0%, transparent 70%); }
.scn-christian-epitaph .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1e1e30 0%, #0e0e1a 100%); }
.scn-christian-epitaph .cross { position:absolute; top:15%; left:50%; width:3%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; transform: translateX(-50%); box-shadow: 0 0 20px rgba(90,74,58,.3); animation: ce-cross 25s ease-in-out infinite; }
.scn-christian-epitaph .cross::after { content:''; position:absolute; top:25%; left:-220%; width:540%; height:8%; background: inherit; border-radius: 4px; }
.scn-christian-epitaph .figure { position:absolute; bottom:20%; left:48%; width:15%; height:20%; background: radial-gradient(ellipse 40% 60% at 50% 30%, #5a4a3a 0%, #2a1a0e 70%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: ce-figure 8s ease-in-out infinite alternate; }
.scn-christian-epitaph .bed { position:absolute; bottom:8%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 6px; box-shadow: 0 -2px 10px rgba(0,0,0,.5); }
.scn-christian-epitaph .light-ray { position:absolute; top:0; left:40%; width:20%; height:40%; background: linear-gradient(180deg, rgba(200,180,150,.15) 0%, transparent 100%); clip-path: polygon(30% 0, 70% 0, 80% 100%, 20% 100%); animation: ce-light 12s ease-in-out infinite alternate; }
.scn-christian-epitaph .book { position:absolute; bottom:8%; left:45%; width:10%; height:4%; background: linear-gradient(135deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 2px; transform: rotate(-10deg); }
.scn-christian-epitaph .dust { position:absolute; top:20%; left:10%; width:80%; height:40%; background: radial-gradient(circle at 30% 40%, rgba(200,180,150,.05) 0%, transparent 50%), radial-gradient(circle at 70% 60%, rgba(200,180,150,.03) 0%, transparent 50%); filter: blur(8px); animation: ce-dust 40s linear infinite; }

@keyframes ce-cross { 0% { opacity:.7; transform: translateX(-50%) scaleY(1) } 50% { opacity:.9; transform: translateX(-50%) scaleY(1.02) } 100% { opacity:.8; transform: translateX(-50%) scaleY(.98) } }
@keyframes ce-figure { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ce-light { 0% { opacity:.3; transform: scaleY(1) } 50% { opacity:.5; transform: scaleY(1.05) } 100% { opacity:.4; transform: scaleY(.95) } }
@keyframes ce-dust { 0% { transform: translate(0,0) } 33% { transform: translate(10px,-5px) } 66% { transform: translate(-5px,8px) } 100% { transform: translate(0,0) } }

/* epitaph-s-t-c */
.scn-epitaph-s-t-c { background: linear-gradient(180deg, #2c3e2c 0%, #1a2a1a 40%, #0e1a0e 100%), radial-gradient(ellipse at 50% 100%, #3a5a3a 0%, transparent 70%); }
.scn-epitaph-s-t-c .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #3a4e3a 0%, #2c3e2c 100%); animation: stc-sky 30s ease-in-out infinite alternate; }
.scn-epitaph-s-t-c .ground { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-epitaph-s-t-c .tombstone { position:absolute; bottom:20%; left:50%; width:14%; height:25%; background: linear-gradient(135deg, #5a6a5a 0%, #3a4a3a 100%); border-radius: 20% 20% 4% 4% / 40% 40% 4% 4%; transform: translateX(-50%); box-shadow: 0 4px 20px rgba(0,0,0,.4), inset 0 -4px 8px rgba(0,0,0,.2); animation: stc-stone 20s ease-in-out infinite; }
.scn-epitaph-s-t-c .sod { position:absolute; bottom:15%; left:48%; width:20%; height:10%; background: radial-gradient(ellipse at 50% 0%, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: stc-sod 15s ease-in-out infinite alternate; }
.scn-epitaph-s-t-c .tree { position:absolute; bottom:40%; left:20%; width:4%; height:40%; background: linear-gradient(180deg, #2c3e2c 0%, #1a2a1a 100%); border-radius: 2px; }
.scn-epitaph-s-t-c .tree::after { content:''; position:absolute; top:-20%; left:-100%; width:300%; height:40%; background: radial-gradient(ellipse at 50% 50%, #2c4e2c 0%, transparent 70%); border-radius: 50%; }
.scn-epitaph-s-t-c .lantern { position:absolute; bottom:30%; left:35%; width:4%; height:8%; background: radial-gradient(circle, #e0c080 0%, #a08040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 6px rgba(224,192,128,.4), 0 0 60px 12px rgba(224,192,128,.2); animation: stc-lantern 4s ease-in-out infinite alternate; }
.scn-epitaph-s-t-c .clouds { position:absolute; top:10%; left:-10%; width:120%; height:20%; background: radial-gradient(ellipse at 30% 50%, rgba(200,220,200,.2) 0%, transparent 50%), radial-gradient(ellipse at 70% 50%, rgba(200,220,200,.15) 0%, transparent 50%); filter: blur(10px); animation: stc-clouds 60s linear infinite; }

@keyframes stc-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes stc-stone { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes stc-sod { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(.98) } }
@keyframes stc-lantern { 0% { box-shadow: 0 0 20px 4px rgba(224,192,128,.3); opacity:.8 } 50% { box-shadow: 0 0 40px 10px rgba(224,192,128,.6); opacity:1 } 100% { box-shadow: 0 0 25px 5px rgba(224,192,128,.35); opacity:.9 } }
@keyframes stc-clouds { 0% { transform: translateX(0) } 100% { transform: translateX(-20%) } }

/* epitaph-variants */
.scn-epitaph-variants { background: linear-gradient(135deg, #2a1a1a 0%, #3a2a2a 40%, #1a0e0e 100%), radial-gradient(ellipse at 70% 30%, #5a3a3a 0%, transparent 60%); }
.scn-epitaph-variants .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); }
.scn-epitaph-variants .window-frame { position:absolute; top:5%; left:55%; width:35%; height:50%; border: 6px solid #3a2a2a; border-radius: 4px; background: transparent; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-epitaph-variants .landscape-outside { position:absolute; top:6%; left:56%; width:33%; height:48%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 50%, #1a2a1a 100%), radial-gradient(ellipse at 50% 100%, #3a5a3a 0%, transparent 70%); clip-path: inset(0); animation: ev-landscape 40s ease-in-out infinite alternate; }
.scn-epitaph-variants .desk { position:absolute; bottom:12%; left:8%; width:40%; height:6%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 2px; box-shadow: 0 -2px 10px rgba(0,0,0,.5); }
.scn-epitaph-variants .old-man { position:absolute; bottom:18%; left:12%; width:15%; height:30%; background: radial-gradient(ellipse 40% 50% at 50% 40%, #5a4a3a 0%, #2a1a0e 70%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(5deg); animation: ev-man 12s ease-in-out infinite alternate; }
.scn-epitaph-variants .quill { position:absolute; bottom:25%; left:22%; width:8%; height:20%; background: linear-gradient(180deg, #c8b898 0%, #a08060 100%); transform: rotate(-20deg); transform-origin: bottom left; border-radius: 4px 4px 50% 50%; animation: ev-quill 6s ease-in-out infinite; }
.scn-epitaph-variants .inkwell { position:absolute; bottom:10%; left:16%; width:6%; height:8%; background: radial-gradient(circle, #1a0e0e 0%, #0a0606 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.6); }
.scn-epitaph-variants .paper { position:absolute; bottom:12%; left:20%; width:18%; height:5%; background: linear-gradient(135deg, #e8d8c8 0%, #c8b898 100%); transform: rotate(-5deg); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ev-paper 20s ease-in-out infinite; }

@keyframes ev-landscape { 0% { filter: brightness(.8); transform: scale(1) } 50% { filter: brightness(1); transform: scale(1.01) } 100% { filter: brightness(.9); transform: scale(.99) } }
@keyframes ev-man { 0% { transform: rotate(5deg) } 50% { transform: rotate(4deg) translateY(-2px) } 100% { transform: rotate(6deg) } }
@keyframes ev-quill { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-25deg) } 100% { transform: rotate(-15deg) } }
@keyframes ev-paper { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-6deg) translateY(1px) } 100% { transform: rotate(-4deg) } }

.scn-song-from-zapolya {
  background: linear-gradient(180deg, #f0dba0 0%, #e0c080 40%, #806040 100%),
              radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 70%);
}
.scn-song-from-zapolya .sky-top {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #ffe8c0 0%, #f0d080 100%);
  animation: szp1-sky 10s ease-in-out infinite alternate;
}
.scn-song-from-zapolya .shaft-light {
  position: absolute; top: 5%; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(255,230,170,0.7) 0%, rgba(240,210,140,0.3) 100%);
  clip-path: polygon(5% 0%, 95% 0%, 80% 100%, 20% 100%);
  animation: szp1-shaft 5s ease-in-out infinite alternate;
}
.scn-song-from-zapolya .bird-body {
  position: absolute; top: 30%; left: 45%; width: 10%; height: 15%;
  background: radial-gradient(ellipse at 50% 50%, #8050a0 0%, #603080 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 5px #9060b0;
  animation: szp1-bird 4s ease-in-out infinite;
}
.scn-song-from-zapolya .bird-eye {
  position: absolute; top: 35%; left: 48%; width: 3%; height: 3%;
  background: radial-gradient(circle, #ff8040 0%, #ff6000 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px #ff8040;
  animation: szp1-eye 2s ease-in-out infinite alternate;
}
.scn-song-from-zapolya .bird-beak {
  position: absolute; top: 34%; left: 42%; width: 4%; height: 2%;
  background: linear-gradient(180deg, #d0a020 0%, #b08010 100%);
  border-radius: 0% 60% 40% 40% / 0% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: szp1-beak 2s ease-in-out infinite alternate;
}
.scn-song-from-zapolya .mist-wisp {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 10%;
  background: radial-gradient(ellipse, rgba(255,220,170,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: szp1-mist 9s ease-in-out infinite alternate;
}
.scn-song-from-zapolya .sparkle {
  position: absolute; top: 25%; left: 50%; width: 1.5%; height: 2%;
  background: #ffd080;
  border-radius: 50%;
  box-shadow: 0 0 10px 2px #ffd080;
  animation: szp1-sparkle 3s ease-in-out infinite;
}
@keyframes szp1-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes szp1-shaft { 0% { transform: scaleX(0.9); opacity: 0.7; } 50% { transform: scaleX(1.1) translateY(-2px); opacity: 1; } 100% { transform: scaleX(0.95); opacity: 0.8; } }
@keyframes szp1-bird { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(2deg); } 50% { transform: translateY(-10px) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes szp1-eye { 0% { box-shadow: 0 0 8px 2px #ff8040; opacity: 0.8; } 50% { box-shadow: 0 0 20px 6px #ffa060; opacity: 1; } 100% { box-shadow: 0 0 10px 3px #ff8040; opacity: 0.9; } }
@keyframes szp1-beak { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(2px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes szp1-mist { 0% { transform: translateX(0) scale(1); opacity: 0.3; } 50% { transform: translateX(10px) scale(1.1); opacity: 0.5; } 100% { transform: translateX(0) scale(1); opacity: 0.3; } }
@keyframes szp1-sparkle { 0% { opacity: 0; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0; transform: scale(0.8); } }

.scn-glycines-song-notes {
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #1a1010 100%),
              radial-gradient(ellipse at 50% 0%, #6a5a3a 0%, transparent 60%);
}
.scn-glycines-song-notes .room-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a10 0%, #1a1010 100%);
  animation: gsn2-room 15s ease-in-out infinite alternate;
}
.scn-glycines-song-notes .desk-top {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: gsn2-desk 8s ease-in-out infinite alternate;
}
.scn-glycines-song-notes .manuscript {
  position: absolute; bottom: 25%; left: 30%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b080 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: gsn2-paper 12s ease-in-out infinite alternate;
}
.scn-glycines-song-notes .inkwell {
  position: absolute; bottom: 12%; right: 25%; width: 4%; height: 6%;
  background: radial-gradient(ellipse at 50% 30%, #202020 0%, #101010 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.7);
  animation: gsn2-ink 20s ease-in-out infinite;
}
.scn-glycines-song-notes .quill {
  position: absolute; bottom: 22%; right: 28%; width: 1.5%; height: 12%;
  background: linear-gradient(180deg, #d0c0a0 0%, #a09080 40%, #806050 100%);
  border-radius: 0 0 40% 40%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: gsn2-quill 5s ease-in-out infinite alternate;
}
.scn-glycines-song-notes .candle-glow {
  position: absolute; bottom: 26%; left: 15%; width: 8%; height: 10%;
  background: radial-gradient(circle, #ffd080 0%, #ffb040 30%, transparent 80%);
  filter: blur(4px);
  animation: gsn2-candle-glow 3s ease-in-out infinite alternate;
}
.scn-glycines-song-notes .candle-body {
  position: absolute; bottom: 20%; left: 16%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #e8d0a0 0%, #c0a080 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.3);
  animation: gsn2-candle 4s ease-in-out infinite;
}
.scn-glycines-song-notes .shadow-move {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(6px);
  animation: gsn2-shadow 7s ease-in-out infinite alternate;
}
@keyframes gsn2-room { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes gsn2-desk { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes gsn2-paper { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(0.5deg); } 50% { transform: translateY(-3px) rotate(1deg); } 75% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gsn2-ink { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes gsn2-quill { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes gsn2-candle-glow { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes gsn2-candle { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.03) translateY(-1px); } }
@keyframes gsn2-shadow { 0% { opacity: 0.3; transform: translateX(0); } 50% { opacity: 0.5; transform: translateX(5px); } 100% { opacity: 0.3; transform: translateX(0); } }

.scn-hunting-song-zapolya {
  background: linear-gradient(180deg, #6a6a5a 0%, #4a4a3a 40%, #2a2a1a 100%),
              radial-gradient(ellipse at 50% 80%, #3a3a2a 0%, transparent 60%);
}
.scn-hunting-song-zapolya .sky-dull {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7a7a6a 0%, #5a5a4a 100%);
  animation: hsz3-sky 12s ease-in-out infinite alternate;
}
.scn-hunting-song-zapolya .forest-bg {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  animation: hsz3-forest 8s ease-in-out infinite alternate;
}
.scn-hunting-song-zapolya .hunter-silhouette {
  position: absolute; bottom: 22%; left: 30%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hsz3-hunter 4s ease-in-out infinite;
}
.scn-hunting-song-zapolya .wolf {
  position: absolute; bottom: 18%; left: 55%; width: 15%; height: 12%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 30% 40% 30% / 60% 40% 30% 40%;
  animation: hsz3-wolf 5s ease-in-out infinite alternate;
}
.scn-hunting-song-zapolya .lance {
  position: absolute; bottom: 34%; left: 35%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 20% 20%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: hsz3-lance 2s ease-in-out infinite;
}
.scn-hunting-song-zapolya .sheep {
  position: absolute; bottom: 10%; right: 20%; width: 8%; height: 8%;
  background: radial-gradient(ellipse at 50% 30%, #a0a090 0%, #808070 100%);
  border-radius: 50% 50% 30% 30%;
  animation: hsz3-sheep 6s ease-in-out infinite alternate;
}
.scn-hunting-song-zapolya .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%);
  border-radius: 20% 40% 0 0 / 30% 60% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
  animation: hsz3-ground 10s ease-in-out infinite alternate;
}
@keyframes hsz3-sky { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 0.9; transform: scaleY(1.02); } 100% { opacity: 0.8; transform: scaleY(0.98); } }
@keyframes hsz3-forest { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes hsz3-hunter { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(5px) rotate(2deg); } 60% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hsz3-wolf { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(10px) scaleX(0.9); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes hsz3-lance { 0% { transform: rotate(-10deg) translateY(0); } 25% { transform: rotate(-8deg) translateY(-2px); } 50% { transform: rotate(-12deg) translateY(0); } 75% { transform: rotate(-8deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes hsz3-sheep { 0% { transform: translateX(0); } 50% { transform: translateX(8px); } 100% { transform: translateX(0); } }
@keyframes hsz3-ground { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }

.scn-faith-hope-charity {
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 50%, #101028 100%),
              radial-gradient(ellipse at 50% 20%, #3a3a5a 0%, transparent 70%);
}
.scn-faith-hope-charity .room-dim {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a1a30 0%, #101020 100%);
  animation: fhc4-room 20s ease-in-out infinite alternate;
}
.scn-faith-hope-charity .light-beam {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, rgba(200,200,255,0.2) 0%, rgba(100,100,200,0.1) 100%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: fhc4-beam 6s ease-in-out infinite alternate;
}
.scn-faith-hope-charity .figure-faith {
  position: absolute; bottom: 10%; left: 20%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: fhc4-figure 7s ease-in-out infinite;
}
.scn-faith-hope-charity .figure-hope {
  position: absolute; bottom: 10%; left: 42%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: fhc4-figure 8s ease-in-out infinite reverse;
}
.scn-faith-hope-charity .figure-charity {
  position: absolute; bottom: 10%; right: 18%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: fhc4-figure 9s ease-in-out infinite;
}
.scn-faith-hope-charity .halo-glint {
  position: absolute; top: 15%; left: 38%; width: 24%; height: 8%;
  background: radial-gradient(ellipse, rgba(255,255,200,0.15) 0%, transparent 80%);
  filter: blur(10px);
  animation: fhc4-halo 5s ease-in-out infinite alternate;
}
.scn-faith-hope-charity .dust-motes {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(circle, rgba(200,200,255,0.05) 0%, transparent 70%);
  animation: fhc4-dust 12s ease-in-out infinite;
}
@keyframes fhc4-room { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes fhc4-beam { 0% { opacity: 0.2; transform: scaleY(1) translateY(0); } 50% { opacity: 0.5; transform: scaleY(1.1) translateY(-5px); } 100% { opacity: 0.3; transform: scaleY(0.95) translateY(0); } }
@keyframes fhc4-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(-6px) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fhc4-halo { 0% { opacity: 0.1; transform: scale(1); } 50% { opacity: 0.3; transform: scale(1.2); } 100% { opacity: 0.15; transform: scale(0.9); } }
@keyframes fhc4-dust { 0% { transform: translateY(0) translateX(0); } 50% { transform: translateY(10px) translateX(5px); } 100% { transform: translateY(0) translateX(0); } }

/* ===== alice-du-clos-three (tense, overcast) ===== */
.scn-alice-du-clos-three {
  background:
    linear-gradient(180deg, #4a4a5e 0%, #3a3a4e 30%, #2e2e3e 50%, #1e1e2e 100%),
    radial-gradient(ellipse at 50% 80%, #4a4a5e 0%, transparent 60%);
  animation: si3-bg 8s ease-in-out infinite alternate;
}
.scn-alice-du-clos-three .sky-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5e5e72 0%, #3e3e52 100%);
  animation: si3-sky 12s ease-in-out infinite alternate;
}
.scn-alice-du-clos-three .storm-clouds {
  position: absolute; top: 10%; left: 0; right: 0; height: 25%;
  background: radial-gradient(ellipse 80% 100% at 30% 0%, rgba(80,80,100,0.7) 0%, transparent 100%),
              radial-gradient(ellipse 60% 80% at 70% 0%, rgba(70,70,90,0.6) 0%, transparent 100%);
  filter: blur(8px);
  animation: si3-clouds 20s linear infinite;
}
.scn-alice-du-clos-three .sea-waves {
  position: absolute; bottom: 30%; left: -10%; right: -10%; height: 20%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 30% 40% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: si3-waves 6s ease-in-out infinite alternate;
}
.scn-alice-du-clos-three .figure-knight {
  position: absolute; bottom: 32%; left: 45%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: si3-knight 0.5s ease-in-out infinite alternate;
}
.scn-alice-du-clos-three .figure-cloak {
  position: absolute; bottom: 32%; left: 43%; width: 28px; height: 38px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: si3-cloak 1s ease-in-out infinite alternate;
}
.scn-alice-du-clos-three .spray-mist {
  position: absolute; bottom: 38%; left: 30%; width: 120px; height: 30px;
  background: radial-gradient(ellipse, rgba(180,190,200,0.2) 0%, transparent 100%);
  filter: blur(4px);
  animation: si3-mist 7s ease-in-out infinite alternate;
}
.scn-alice-du-clos-three .vessel-hull {
  position: absolute; bottom: 28%; left: 60%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform: rotate(-5deg);
  animation: si3-hull 4s ease-in-out infinite alternate;
}
@keyframes si3-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes si3-sky { 0% { opacity:0.8; } 50% { opacity:0.95; } 100% { opacity:0.75; } }
@keyframes si3-clouds { 0% { transform: translateX(-20px); } 100% { transform: translateX(20px); } }
@keyframes si3-waves { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes si3-knight { 0% { transform: rotate(-2deg) translateX(-1px); } 50% { transform: rotate(1deg) translateX(1px); } 100% { transform: rotate(-2deg) translateX(-1px); } }
@keyframes si3-cloak { 0% { transform: rotate(-3deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(1.1); } 100% { transform: rotate(-3deg) scaleX(1); } }
@keyframes si3-mist { 0% { opacity:0.2; transform: translateX(0); } 50% { opacity:0.4; transform: translateX(-10px); } 100% { opacity:0.2; transform: translateX(0); } }
@keyframes si3-hull { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }

/* ===== alice-du-clos-four (calm, overcast) ===== */
.scn-alice-du-clos-four {
  background:
    linear-gradient(180deg, #7a8a7e 0%, #5a6a5e 40%, #4a5a4e 100%),
    radial-gradient(ellipse at 50% 0%, #8a9a8e 0%, transparent 70%);
}
.scn-alice-du-clos-four .sky-mist {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #9aa8a0 0%, #7a8a80 100%);
  animation: si4-sky 20s ease-in-out infinite alternate;
}
.scn-alice-du-clos-four .tree-trunk {
  position: absolute; bottom: 25%; left: 35%; width: 24px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 15% 15%;
  box-shadow: 6px 0 12px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: si4-trunk 10s ease-in-out infinite alternate;
}
.scn-alice-du-clos-four .tree-branches {
  position: absolute; bottom: 70%; left: 35%; width: 80px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: si4-branches 12s ease-in-out infinite alternate;
}
.scn-alice-du-clos-four .blossom-group {
  position: absolute; bottom: 65%; left: 30%; width: 50px; height: 30px;
  background: radial-gradient(circle at 50% 50%, #d0c0a0 0%, transparent 70%);
  filter: blur(2px);
  animation: si4-blossom 6s ease-in-out infinite alternate;
}
.scn-alice-du-clos-four .garden-stile {
  position: absolute; bottom: 20%; left: 55%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: si4-stile 8s ease-in-out infinite alternate;
}
.scn-alice-du-clos-four .mist-layer {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, rgba(180,190,180,0.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: si4-mist 15s linear infinite alternate;
}
.scn-alice-du-clos-four .distant-meadow {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #6a7a5a 0%, #5a6a4a 100%);
  border-radius: 30% 20% 0 0;
  animation: si4-meadow 14s ease-in-out infinite alternate;
}
.scn-alice-du-clos-four .light-gem {
  position: absolute; bottom: 60%; left: 38%; width: 6px; height: 6px;
  background: radial-gradient(circle, #e0d8c0 0%, #b0a890 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px rgba(200,190,160,0.6);
  animation: si4-gem 3s ease-in-out infinite alternate;
}
@keyframes si4-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes si4-trunk { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes si4-branches { 0% { transform: rotate(-2deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-2deg); } }
@keyframes si4-blossom { 0% { opacity:0.7; transform: scale(0.95); } 50% { opacity:1; transform: scale(1); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes si4-stile { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes si4-mist { 0% { opacity:0.3; transform: translateX(0); } 50% { opacity:0.5; transform: translateX(-8px); } 100% { opacity:0.3; transform: translateX(0); } }
@keyframes si4-meadow { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes si4-gem { 0% { box-shadow: 0 0 8px 2px rgba(200,190,160,0.4); opacity:0.8; } 50% { box-shadow: 0 0 16px 6px rgba(200,190,160,0.7); opacity:1; } 100% { box-shadow: 0 0 8px 2px rgba(200,190,160,0.4); opacity:0.8; } }

/* ===== alice-du-clos-five (calm, overcast) ===== */
.scn-alice-du-clos-five {
  background:
    linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 40%, #3a4a2a 100%),
    radial-gradient(ellipse at 50% 100%, #5a6a4a 0%, transparent 60%);
}
.scn-alice-du-clos-five .forest-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a5a3a 0%, #3a4a2a 100%);
  animation: si5-bg 12s ease-in-out infinite alternate;
}
.scn-alice-du-clos-five .tree-left {
  position: absolute; bottom: 20%; left: 10%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 10% 10% 15% 15%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
}
.scn-alice-du-clos-five .tree-right {
  position: absolute; bottom: 20%; right: 15%; width: 25px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 10% 10% 15% 15%;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
}
.scn-alice-du-clos-five .canopy {
  position: absolute; top: 5%; left: 0; right: 0; height: 25%;
  background: radial-gradient(ellipse at 30% 100%, #4a5a3a 0%, transparent 80%),
              radial-gradient(ellipse at 70% 100%, #3a4a2a 0%, transparent 80%);
  filter: blur(5px);
  animation: si5-canopy 10s ease-in-out infinite alternate;
}
.scn-alice-du-clos-five .huntress-figure {
  position: absolute; bottom: 25%; left: 40%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a4a3a 0%, #1a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: si5-huntress 6s ease-in-out infinite alternate;
}
.scn-alice-du-clos-five .squire-figure {
  position: absolute; bottom: 23%; left: 50%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: si5-squire 8s ease-in-out infinite alternate;
}
.scn-alice-du-clos-five .quiver-shape {
  position: absolute; bottom: 37%; left: 42%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 40% 40%;
  transform: rotate(10deg);
  animation: si5-quiver 5s ease-in-out infinite alternate;
}
.scn-alice-du-clos-five .bow-shape {
  position: absolute; bottom: 30%; left: 36%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-30deg);
  animation: si5-bow 7s ease-in-out infinite alternate;
}
@keyframes si5-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes si5-canopy { 0% { opacity:0.6; transform: translateY(0); } 50% { opacity:0.8; transform: translateY(-3px); } 100% { opacity:0.6; transform: translateY(0); } }
@keyframes si5-huntress { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes si5-squire { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes si5-quiver { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-1px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes si5-bow { 0% { transform: rotate(-30deg) scaleX(1); } 50% { transform: rotate(-28deg) scaleX(1.05); } 100% { transform: rotate(-30deg) scaleX(1); } }

/* ===== alice-du-clos-six (tense, overcast) ===== */
.scn-alice-du-clos-six {
  background:
    linear-gradient(180deg, #4a4a3e 0%, #3a3a2e 40%, #2a2a1e 100%),
    radial-gradient(ellipse at 50% 100%, #3a3a2e 0%, transparent 60%);
  animation: si6-bg 6s ease-in-out infinite alternate;
}
.scn-alice-du-clos-six .lane-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a4a3e 0%, #2a2a1e 100%);
  animation: si6-lane 10s ease-in-out infinite alternate;
}
.scn-alice-du-clos-six .hedge-left {
  position: absolute; bottom: 20%; left: 0; width: 20%; height: 60%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 0 30% 0 0;
  clip-path: polygon(0 0, 100% 30%, 100% 100%, 0% 100%);
  animation: si6-hedge 8s ease-in-out infinite alternate;
}
.scn-alice-du-clos-six .hedge-right {
  position: absolute; bottom: 20%; right: 0; width: 20%; height: 60%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 30% 0 0 0;
  clip-path: polygon(0 30%, 100% 0, 100% 100%, 0% 100%);
  animation: si6-hedge 8s ease-in-out infinite alternate-reverse;
}
.scn-alice-du-clos-six .figure-julian {
  position: absolute; bottom: 25%; left: 40%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: si6-julian 0.4s ease-in-out infinite alternate;
}
.scn-alice-du-clos-six .figure-knight-approaching {
  position: absolute; bottom: 25%; right: 35%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: si6-knight 0.5s ease-in-out infinite alternate;
}
.scn-alice-du-clos-six .horse-silhouette {
  position: absolute; bottom: 22%; right: 30%; width: 35px; height: 25px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 50% 20% 30% / 50% 60% 30% 40%;
  animation: si6-horse 0.6s ease-in-out infinite alternate;
}
.scn-alice-du-clos-six .shadow-pool {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 5%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(6px);
  animation: si6-shadow 4s ease-in-out infinite alternate;
}
.scn-alice-du-clos-six .distant-trees {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  opacity: 0.6;
  animation: si6-trees 9s ease-in-out infinite alternate;
}
@keyframes si6-bg { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes si6-lane { 0% { opacity:0.9; } 50% { opacity:0.95; } 100% { opacity:0.85; } }
@keyframes si6-hedge { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes si6-julian { 0% { transform: rotate(-2deg) translateX(-1px); } 50% { transform: rotate(1deg) translateX(1px); } 100% { transform: rotate(-2deg) translateX(-1px); } }
@keyframes si6-knight { 0% { transform: rotate(1deg) translateX(1px); } 50% { transform: rotate(-2deg) translateX(-1px); } 100% { transform: rotate(1deg) translateX(1px); } }
@keyframes si6-horse { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes si6-shadow { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.5; transform: scaleX(1.05); } 100% { opacity:0.3; transform: scaleX(1); } }
@keyframes si6-trees { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }

.scn-love-variants-intro {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0e05 100%),
              radial-gradient(ellipse at 50% 70%, rgba(180,120,60,.3) 0%, transparent 60%);
}
.scn-love-variants-intro .bg-warm {
  position: absolute; inset:0;
  background: radial-gradient(ellipse at 40% 60%, rgba(200,160,100,.15) 0%, transparent 60%);
  animation: lvi-ambient 12s ease-in-out infinite alternate;
}
.scn-love-variants-intro .desk {
  position: absolute; bottom:10%; left:10%; right:10%; height:18%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: lvi-desk 6s ease-in-out infinite;
}
.scn-love-variants-intro .paper {
  position: absolute; bottom:22%; left:30%; width:28%; height:16%;
  background: linear-gradient(135deg, #f5e6c0 0%, #d4b885 100%);
  border-radius: 2px;
  transform: rotate(-2deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: lvi-paper 8s ease-in-out infinite alternate;
}
.scn-love-variants-intro .candle {
  position: absolute; bottom:30%; left:22%; width:6%; height:14%;
  background: linear-gradient(180deg, #e8d090 0%, #b8965a 60%, #8a6e3a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 8px 2px rgba(255,200,100,.3);
}
.scn-love-variants-intro .candle-glow {
  position: absolute; bottom:38%; left:18%; width:14%; height:20%;
  background: radial-gradient(circle, rgba(255,210,120,.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: lvi-flicker 2s ease-in-out infinite alternate;
}
.scn-love-variants-intro .figure {
  position: absolute; bottom:20%; left:50%; width:14%; height:40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lvi-fig 4s ease-in-out infinite;
}
.scn-love-variants-intro .window-frame {
  position: absolute; top:8%; right:5%; width:20%; height:35%;
  border: 6px solid #2a1a0a;
  background: rgba(20,15,10,.6);
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(200,160,100,.1);
  animation: lvi-window 10s ease-in-out infinite alternate;
}
@keyframes lvi-ambient { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes lvi-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes lvi-paper { 0% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(-1deg) scale(1.02) } 100% { transform: rotate(-2.5deg) scale(0.98) } }
@keyframes lvi-flicker { 0% { transform: scale(1); opacity:0.6 } 50% { transform: scale(1.1); opacity:0.9 } 100% { transform: scale(0.95); opacity:0.7 } }
@keyframes lvi-fig { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(0.5deg) } }
@keyframes lvi-window { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.2 } }

.scn-love-variants-lines {
  background: linear-gradient(180deg, #2e2218 0%, #1f140c 50%, #120b06 100%),
              radial-gradient(ellipse at 30% 40%, rgba(120,80,50,.2) 0%, transparent 50%);
}
.scn-love-variants-lines .bg-deep {
  position: absolute; inset:0;
  background: radial-gradient(ellipse at 70% 30%, rgba(80,50,30,.15) 0%, transparent 60%);
  animation: lvl-amb 15s ease-in-out infinite alternate;
}
.scn-love-variants-lines .shelf {
  position: absolute; top:25%; left:5%; right:5%; height:5%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: lvl-shelf 8s ease-in-out infinite alternate;
}
.scn-love-variants-lines .book {
  position: absolute; height:15%;
  border-radius: 2px;
  box-shadow: 0 2px 3px rgba(0,0,0,.4);
}
.scn-love-variants-lines .book-a {
  top:20%; left:10%; width:8%;
  background: linear-gradient(180deg, #704020 0%, #502810 100%);
  animation: lvl-book-a 6s ease-in-out infinite;
}
.scn-love-variants-lines .book-b {
  top:22%; left:22%; width:10%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  animation: lvl-book-b 7s ease-in-out infinite;
}
.scn-love-variants-lines .book-c {
  top:21%; left:35%; width:12%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  animation: lvl-book-c 5s ease-in-out infinite alternate;
}
.scn-love-variants-lines .lamp {
  position: absolute; top:18%; right:15%; width:6%; height:20%;
  background: linear-gradient(180deg, #b8965a 0%, #8a6e3a 50%, #5a4220 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 6px 2px rgba(255,200,100,.2);
}
.scn-love-variants-lines .lamp-glow {
  position: absolute; top:14%; right:10%; width:16%; height:25%;
  background: radial-gradient(circle, rgba(255,210,120,.4) 0%, transparent 60%);
  border-radius: 50%;
  animation: lvl-glow 3s ease-in-out infinite alternate;
}
.scn-love-variants-lines .mote {
  position: absolute; width:1.5%; height:1.5%;
  background: rgba(255,220,180,.6);
  border-radius: 50%;
  filter: blur(2px);
  animation: lvl-mote 12s linear infinite;
}
.scn-love-variants-lines .mote-a { top:30%; left:30%; animation-delay:-2s; }
.scn-love-variants-lines .mote-b { top:40%; left:60%; animation-delay:-6s; width:1%; height:1%; }
@keyframes lvl-amb { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes lvl-shelf { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes lvl-book-a { 0%,100% { transform: rotate(0) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } }
@keyframes lvl-book-b { 0%,100% { transform: rotate(0) } 33% { transform: rotate(2deg) } 66% { transform: rotate(-1deg) } }
@keyframes lvl-book-c { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes lvl-glow { 0% { opacity:0.5; transform: scale(0.9) } 100% { opacity:0.8; transform: scale(1.1) } }
@keyframes lvl-mote { 0% { transform: translateY(0) translateX(0) } 25% { transform: translateY(-10px) translateX(5px) } 50% { transform: translateY(-20px) translateX(-3px) } 75% { transform: translateY(-30px) translateX(8px) } 100% { transform: translateY(-40px) translateX(-2px) } }

.scn-love-variants-two {
  background: linear-gradient(180deg, #2a1e14 0%, #1a100a 50%, #0e0805 100%),
              radial-gradient(ellipse at 50% 60%, rgba(180,90,40,.15) 0%, transparent 50%);
}
.scn-love-variants-two .bg-room {
  position: absolute; inset:0;
  background: radial-gradient(ellipse at 30% 80%, rgba(200,120,60,.1) 0%, transparent 60%);
  animation: lvt-amb 10s ease-in-out infinite alternate;
}
.scn-love-variants-two .mantel {
  position: absolute; bottom:35%; left:10%; right:10%; height:6%;
  background: linear-gradient(180deg, #5a4520 0%, #3a2a10 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: lvt-mantel 9s ease-in-out infinite;
}
.scn-love-variants-two .fire-glow {
  position: absolute; bottom:30%; left:35%; width:30%; height:20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,180,80,.5) 0%, rgba(200,100,40,.2) 40%, transparent 70%);
  border-radius: 50%;
  animation: lvt-fire 2s ease-in-out infinite alternate;
}
.scn-love-variants-two .chair {
  position: absolute; bottom:10%; left:20%; width:25%; height:35%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,.5);
  animation: lvt-chair 5s ease-in-out infinite;
}
.scn-love-variants-two .rug {
  position: absolute; bottom:0; left:15%; right:15%; height:10%;
  background: linear-gradient(90deg, #6a4a2a 0%, #8a6a3a 30%, #6a4a2a 100%);
  border-radius: 20% 20% 0 0;
  opacity:0.6;
}
.scn-love-variants-two .photo-frame {
  position: absolute; top:10%; left:40%; width:12%; height:20%;
  border: 6px solid #5a4520;
  background: rgba(30,20,10,.7);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: lvt-frame 12s ease-in-out infinite alternate;
}
@keyframes lvt-amb { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes lvt-mantel { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes lvt-fire { 0% { transform: scale(1); opacity:0.6 } 50% { transform: scale(1.1) translateY(-3px); opacity:0.9 } 100% { transform: scale(0.95); opacity:0.7 } }
@keyframes lvt-chair { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(1deg) } }
@keyframes lvt-frame { 0% { transform: rotate(0) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }

.scn-love-variants-three {
  background: linear-gradient(180deg, #1e140e 0%, #140c08 50%, #0a0604 100%),
              radial-gradient(ellipse at 40% 50%, rgba(150,90,50,.15) 0%, transparent 50%);
}
.scn-love-variants-three .bg-hall {
  position: absolute; inset:0;
  background: linear-gradient(90deg, transparent 0%, rgba(80,50,30,.1) 40%, transparent 100%);
  animation: lv3-amb 14s ease-in-out infinite alternate;
}
.scn-love-variants-three .door {
  position: absolute; bottom:0; left:35%; right:35%; height:60%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,.5);
  animation: lv3-door 8s ease-in-out infinite;
}
.scn-love-variants-three .door-frame {
  position: absolute; bottom:0; left:33%; right:33%; height:62%;
  border: 8px solid #3a2210;
  border-radius: 6% 6% 0 0;
  box-shadow: 0 0 12px rgba(0,0,0,.4);
}
.scn-love-variants-three .figure-standing {
  position: absolute; bottom:5%; left:48%; width:10%; height:45%;
  background: linear-gradient(180deg, #1a0e05 0%, #0a0604 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lv3-fig 6s ease-in-out infinite;
}
.scn-love-variants-three .lantern {
  position: absolute; bottom:5%; left:38%; width:5%; height:8%;
  background: linear-gradient(180deg, #b8965a 0%, #8a6e3a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 4px 2px rgba(255,200,100,.3);
}
.scn-love-variants-three .lantern-light {
  position: absolute; bottom:8%; left:34%; width:12%; height:20%;
  background: radial-gradient(circle, rgba(255,210,120,.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: lv3-light 3s ease-in-out infinite alternate;
}
.scn-love-variants-three .floor-shadow {
  position: absolute; bottom:0; left:20%; right:20%; height:8%;
  background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%);
  border-radius: 50%;
  animation: lv3-shadow 5s ease-in-out infinite alternate;
}
@keyframes lv3-amb { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes lv3-door { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes lv3-fig { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(0.5deg) } 100% { transform: translateX(0) } }
@keyframes lv3-light { 0% { opacity:0.5; transform: scale(0.9) } 100% { opacity:0.9; transform: scale(1.1) } }
@keyframes lv3-shadow { 0%,100% { opacity:0.3 } 50% { opacity:0.5 } }

/* devil-christmas-notes – dim interior, calm */
.scn-devil-christmas-notes {
  background: linear-gradient(180deg, #1a1210 0%, #2b1a15 30%, #3d241b 70%, #1a0e0a 100%),
              radial-gradient(ellipse at 50% 80%, #3a251a 0%, transparent 70%);
  position: relative; width: 100%; height: 100%; overflow: hidden;
}
.scn-devil-christmas-notes .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #2d1f1a 0%, #1a0f0b 100%); }
.scn-devil-christmas-notes .desk { position:absolute; bottom:5%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #4a3225 0%, #2a1a12 100%); border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,.6); animation: dcn-desk 6s ease-in-out infinite alternate; }
.scn-devil-christmas-notes .candle { position:absolute; bottom:30%; left:38%; width:8px; height:28px; background: linear-gradient(180deg, #f5e6d0 0%, #c49a6a 40%, #8a6030 100%); border-radius: 2px; transform-origin: bottom center; animation: dcn-candle 4s ease-in-out infinite; }
.scn-devil-christmas-notes .glow { position:absolute; bottom:34%; left:38%; width:40px; height:40px; background: radial-gradient(circle, #ffdd99 0%, #cc8844 40%, transparent 70%); border-radius:50%; transform:translate(-50%, -50%); animation: dcn-glow 3s ease-in-out infinite alternate; filter:blur(4px); }
.scn-devil-christmas-notes .notes { position:absolute; bottom:10%; left:25%; width:60%; height:8%; background: linear-gradient(180deg, #f5ecd8 0%, #e0cfb0 100%); border-radius: 2px 10px 2px 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5); transform: rotate(-2deg); animation: dcn-notes 8s ease-in-out infinite; }
.scn-devil-christmas-notes .shadow-figure { position:absolute; bottom:20%; left:60%; width:28px; height:60px; background: linear-gradient(180deg, #0f0a08 0%, #1a0f0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: dcn-figure 5s ease-in-out infinite alternate; }
@keyframes dcn-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dcn-candle { 0%,100% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(1px,-1px) rotate(1deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(-1px,-1px) rotate(-1deg); } }
@keyframes dcn-glow { 0% { opacity:0.7; transform:translate(-50%,-50%) scale(1); } 50% { opacity:1; transform:translate(-50%,-50%) scale(1.15); } 100% { opacity:0.8; transform:translate(-50%,-50%) scale(0.95); } }
@keyframes dcn-notes { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(2px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes dcn-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* snow-drop-flower – warm overcast */
.scn-snow-drop-flower {
  background: linear-gradient(180deg, #c8d4d8 0%, #e8e4dc 40%, #f0ebe0 70%, #dce0d0 100%),
              radial-gradient(ellipse at 50% 0%, #f5f2e8 0%, transparent 60%);
  position: relative; width:100%; height:100%; overflow:hidden;
}
.scn-snow-drop-flower .overcast-sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #b8c8ce 0%, #d6dcdc 100%); animation: sdf-sky 20s ease-in-out infinite alternate; }
.scn-snow-drop-flower .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #9aa88a 0%, #6b7a5a 100%); border-radius: 30% 70% 0 0 / 20% 30% 0 0; animation: sdf-ground 12s ease-in-out infinite; }
.scn-snow-drop-flower .stem { position:absolute; bottom:40%; left:50%; width:3px; height:25%; background: linear-gradient(180deg, #5a7a4a 0%, #3e5a2e 100%); transform:translateX(-50%); border-radius: 1px; animation: sdf-stem 4s ease-in-out infinite alternate; }
.scn-snow-drop-flower .petal-left { position:absolute; bottom:65%; left:49%; width:18px; height:22px; background: radial-gradient(ellipse at 60% 30%, #ffffff 0%, #f0efe0 60%, #dcd8c8 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-25deg) translateX(-10px); transform-origin: bottom center; animation: sdf-petal-l 6s ease-in-out infinite; }
.scn-snow-drop-flower .petal-right { position:absolute; bottom:65%; left:49%; width:18px; height:22px; background: radial-gradient(ellipse at 40% 30%, #ffffff 0%, #f0efe0 60%, #dcd8c8 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(25deg) translateX(10px); transform-origin: bottom center; animation: sdf-petal-r 6s ease-in-out infinite; }
.scn-snow-drop-flower .aura { position:absolute; bottom:58%; left:50%; width:50px; height:50px; background: radial-gradient(circle, #fff7e0 0%, #f0ebd8 40%, transparent 70%); border-radius:50%; transform:translate(-50%, -50%); filter:blur(8px); opacity:0.3; animation: sdf-aura 10s ease-in-out infinite alternate; }
@keyframes sdf-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes sdf-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sdf-stem { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes sdf-petal-l { 0% { transform: rotate(-25deg) translateX(-10px) scale(1); } 50% { transform: rotate(-20deg) translateX(-8px) scale(0.95); } 100% { transform: rotate(-25deg) translateX(-10px) scale(1); } }
@keyframes sdf-petal-r { 0% { transform: rotate(25deg) translateX(10px) scale(1); } 50% { transform: rotate(20deg) translateX(8px) scale(0.95); } 100% { transform: rotate(25deg) translateX(10px) scale(1); } }
@keyframes sdf-aura { 0% { opacity:0.2; transform:translate(-50%,-50%) scale(1); } 50% { opacity:0.4; transform:translate(-50%,-50%) scale(1.2); } 100% { opacity:0.25; transform:translate(-50%,-50%) scale(0.9); } }

/* item-snow-drop – warm overcast, close-up */
.scn-item-snow-drop {
  background: linear-gradient(180deg, #d4ddd4 0%, #e8ece0 30%, #f0f0e8 70%, #e0e0d8 100%),
              radial-gradient(ellipse at 50% 40%, #faf8f0 0%, transparent 60%);
  position: relative; width:100%; height:100%; overflow:hidden;
}
.scn-item-snow-drop .vase-shadow { position:absolute; bottom:8%; left:50%; width:60px; height:20px; background: rgba(40,30,20,0.3); border-radius:50%; transform:translateX(-50%); filter:blur(4px); animation: isn-shadow 8s ease-in-out infinite alternate; }
.scn-item-snow-drop .vase { position:absolute; bottom:10%; left:50%; width:40px; height:35%; background: linear-gradient(180deg, #b8a088 0%, #8a7058 50%, #6a5040 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; transform:translateX(-50%); box-shadow: inset 0 -4px 8px rgba(0,0,0,.3); animation: isn-vase 6s ease-in-out infinite; }
.scn-item-snow-drop .stem-curve { position:absolute; bottom:40%; left:50%; width:4px; height:40%; background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%); border-radius: 2px; transform:translateX(-50%) rotate(-15deg); transform-origin: bottom center; animation: isn-stem 5s ease-in-out infinite alternate; }
.scn-item-snow-drop .blossom { position:absolute; bottom:78%; left:44%; width:20px; height:24px; background: radial-gradient(ellipse at 50% 30%, #fffef0 0%, #f0ecdc 60%, #e0dccc 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: isn-blossom 7s ease-in-out infinite; }
.scn-item-snow-drop .leaf-a { position:absolute; bottom:60%; left:42%; width:16px; height:8px; background: linear-gradient(180deg, #8aaa7a 0%, #6a8a5a 100%); border-radius: 80% 20% 50% 50% / 60% 40% 60% 40%; transform: rotate(-40deg); transform-origin: right center; animation: isn-leaf-a 10s ease-in-out infinite; }
.scn-item-snow-drop .leaf-b { position:absolute; bottom:55%; left:54%; width:14px; height:7px; background: linear-gradient(180deg, #7a9a6a 0%, #5a7a4a 100%); border-radius: 20% 80% 50% 50% / 40% 60% 40% 60%; transform: rotate(30deg); transform-origin: left center; animation: isn-leaf-b 10s ease-in-out infinite; }
.scn-item-snow-drop .sparkle { position:absolute; bottom:82%; left:50%; width:6px; height:6px; background: radial-gradient(circle, #fffbe0 0%, transparent 60%); border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,240,200,0.5); animation: isn-sparkle 3s ease-in-out infinite alternate; }
@keyframes isn-shadow { 0% { transform:translateX(-50%) scaleX(1); opacity:0.3; } 50% { transform:translateX(-50%) scaleX(1.1); opacity:0.4; } 100% { transform:translateX(-50%) scaleX(0.95); opacity:0.25; } }
@keyframes isn-vase { 0% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-50%) rotate(1deg); } 100% { transform:translateX(-50%) rotate(-1deg); } }
@keyframes isn-stem { 0% { transform:translateX(-50%) rotate(-15deg) scaleY(1); } 50% { transform:translateX(-50%) rotate(-12deg) scaleY(1.02); } 100% { transform:translateX(-50%) rotate(-18deg) scaleY(0.98); } }
@keyframes isn-blossom { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(5deg) scale(0.95); } 100% { transform: rotate(15deg) scale(1.02); } }
@keyframes isn-leaf-a { 0% { transform: rotate(-40deg) scale(1); } 50% { transform: rotate(-35deg) scale(0.9); } 100% { transform: rotate(-45deg) scale(1.05); } }
@keyframes isn-leaf-b { 0% { transform: rotate(30deg) scale(1); } 50% { transform: rotate(35deg) scale(0.9); } 100% { transform: rotate(25deg) scale(1.05); } }
@keyframes isn-sparkle { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:1; transform: scale(1.5); } 100% { opacity:0.6; transform: scale(0.8); } }

/* laura-sleep – moonlit calm */
.scn-laura-sleep {
  background: linear-gradient(180deg, #1a223a 0%, #2c3858 30%, #1e2844 70%, #101828 100%),
              radial-gradient(ellipse at 70% 10%, #4a5a7a 0%, transparent 60%);
  position: relative; width:100%; height:100%; overflow:hidden;
}
.scn-laura-sleep .moon { position:absolute; top:8%; left:70%; width:45px; height:45px; background: radial-gradient(circle, #e8e8f0 0%, #c0c8d8 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(200,210,230,0.3); animation: las-moon 30s linear infinite alternate; }
.scn-laura-sleep .water { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a2840 0%, #243050 40%, #182438 100%); animation: las-water 8s ease-in-out infinite alternate; }
.scn-laura-sleep .lily-left { position:absolute; bottom:25%; left:30%; width:28px; height:12px; background: radial-gradient(ellipse, #aad0c0 0%, #70a090 100%); border-radius: 50% 50% 40% 40%; transform: rotate(-10deg); box-shadow: 0 0 6px rgba(100,180,160,0.3); animation: las-lily 12s ease-in-out infinite; }
.scn-laura-sleep .lily-right { position:absolute; bottom:20%; left:55%; width:24px; height:10px; background: radial-gradient(ellipse, #aad0c0 0%, #70a090 100%); border-radius: 50% 50% 40% 40%; transform: rotate(15deg); box-shadow: 0 0 6px rgba(100,180,160,0.3); animation: las-lily 12s ease-in-out infinite reverse; }
.scn-laura-sleep .laura-silhouette { position:absolute; bottom:30%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #0e1628 0%, #141c2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: las-silhouette 7s ease-in-out infinite; }
.scn-laura-sleep .harp { position:absolute; bottom:38%; left:62%; width:20px; height:40px; background: linear-gradient(180deg, #c0a878 0%, #a08858 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 2px 4px rgba(0,0,0,.4); transform: rotate(5deg); animation: las-harp 9s ease-in-out infinite; }
.scn-laura-sleep .ripple { position:absolute; bottom:22%; left:46%; width:60px; height:20px; border-radius:50%; border: 1px solid rgba(180,200,220,0.15); box-shadow: 0 0 10px rgba(180,200,220,0.05); animation: las-ripple 5s ease-out infinite; }
@keyframes las-moon { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-3px); } }
@keyframes las-water { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes las-lily { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes las-silhouette { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes las-harp { 0% { transform: rotate(5deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.02); } 100% { transform: rotate(6deg) scaleY(0.98); } }
@keyframes las-ripple { 0% { transform: scale(0.5); opacity:0.6; } 100% { transform: scale(2); opacity:0; } }

/* scene 1: emigrant-day-dream (warm, dim-interior) */
.scn-emigrant-day-dream {
  background: 
    linear-gradient(180deg, #2b1f0e 0%, #3d2e1a 50%, #5a4526 100%),
    radial-gradient(ellipse at 30% 70%, #8a6a3a 0%, transparent 60%);
}
.scn-emigrant-day-dream .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3d2e1a 0%, #4a3822 100%);
  border-radius: 0 0 10% 10%;
  animation: e1-wall 20s ease-in-out infinite alternate;
}
.scn-emigrant-day-dream .window-glow {
  position: absolute; top: 8%; left: 35%; width: 40%; height: 35%;
  background: radial-gradient(ellipse at 50% 50%, rgba(240,200,120,0.5) 0%, rgba(200,160,80,0.2) 50%, transparent 70%);
  border-radius: 20px;
  box-shadow: 0 0 60px 20px rgba(240,180,80,0.3), inset 0 0 30px 15px rgba(255,220,150,0.1);
  animation: e1-window 8s ease-in-out infinite alternate;
}
.scn-emigrant-day-dream .table {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #5a4526 0%, #4a3822 100%);
  border-radius: 5px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: e1-table 12s ease-in-out infinite;
}
.scn-emigrant-day-dream .candle {
  position: absolute; bottom: 28%; left: 45%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #d4a040 0%, #b08030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 40px 15px #f0c050, 0 0 80px 30px rgba(240,180,60,0.3);
  animation: e1-candle 3s ease-in-out infinite alternate;
}
.scn-emigrant-day-dream .chair {
  position: absolute; bottom: 18%; left: 30%; width: 20%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 2px 0 10px rgba(0,0,0,0.5);
  animation: e1-chair 6s ease-in-out infinite;
}
.scn-emigrant-day-dream .figure-dream {
  position: absolute; bottom: 22%; left: 35%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: e1-figure 5s ease-in-out infinite alternate;
}
.scn-emigrant-day-dream .tear {
  position: absolute; bottom: 38%; left: 48%; width: 2%; height: 2%;
  background: radial-gradient(circle, #a0c8e0 0%, #6088a0 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 4px rgba(160,200,224,0.4);
  animation: e1-tear 4s ease-in-out infinite;
}
.scn-emigrant-day-dream .dream-puff {
  position: absolute; top: 20%; left: 50%; width: 15%; height: 10%;
  background: radial-gradient(ellipse, rgba(240,220,180,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: e1-puff 10s ease-in-out infinite alternate;
}
@keyframes e1-wall { 0% { opacity: 0.7 } 50% { opacity: 0.85 } 100% { opacity: 0.75 } }
@keyframes e1-window { 0% { opacity: 0.6; transform: scale(0.95) } 50% { opacity: 1; transform: scale(1) } 100% { opacity: 0.8; transform: scale(0.98) } }
@keyframes e1-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes e1-candle { 0% { transform: scaleY(0.95); box-shadow: 0 0 30px 10px #f0c050,0 0 60px 20px rgba(240,180,60,0.2) } 50% { transform: scaleY(1.05); box-shadow: 0 0 50px 20px #f0c050,0 0 80px 30px rgba(240,180,60,0.4) } 100% { transform: scaleY(1); box-shadow: 0 0 40px 15px #e8b040,0 0 70px 25px rgba(240,180,60,0.3) } }
@keyframes e1-chair { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes e1-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(4px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes e1-tear { 0% { transform: translateY(0) scale(1); opacity: 0.8 } 50% { transform: translateY(4px) scale(0.9); opacity: 1 } 100% { transform: translateY(0) scale(1); opacity: 0.6 } }
@keyframes e1-puff { 0% { transform: translateX(-10px) scale(0.8); opacity: 0.3 } 50% { transform: translateX(10px) scale(1.1); opacity: 0.5 } 100% { transform: translateX(-5px) scale(0.9); opacity: 0.4 } }

/* scene 2: happy-husband-fragment (calm, dim-interior) */
.scn-happy-husband-fragment {
  background: 
    linear-gradient(180deg, #1f1a12 0%, #2e261c 50%, #44382a 100%),
    radial-gradient(ellipse at 70% 40%, #6a5a42 0%, transparent 60%);
}
.scn-happy-husband-fragment .wall-soft {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2e261c 0%, #3d3226 100%);
  border-radius: 0 0 20% 20%;
  animation: hh-wall 15s ease-in-out infinite alternate;
}
.scn-happy-husband-fragment .hearth {
  position: absolute; bottom: 10%; left: 10%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(180,120,60,0.2);
}
.scn-happy-husband-fragment .fire-glow {
  position: absolute; bottom: 15%; left: 15%; width: 20%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,200,100,0.4) 0%, rgba(200,150,50,0.2) 50%, transparent 80%);
  border-radius: 50%;
  filter: blur(15px);
  animation: hh-fire 5s ease-in-out infinite alternate;
}
.scn-happy-husband-fragment .couple {
  position: absolute; bottom: 20%; left: 40%; width: 22%; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 5px rgba(0,0,0,0.5);
  animation: hh-couple 7s ease-in-out infinite;
}
.scn-happy-husband-fragment .embrace-arm {
  position: absolute; bottom: 22%; left: 44%; width: 14%; height: 16%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%;
  transform-origin: bottom left;
  animation: hh-arm 6s ease-in-out infinite alternate;
}
.scn-happy-husband-fragment .rug {
  position: absolute; bottom: 8%; left: 20%; width: 60%; height: 5%;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}
.scn-happy-husband-fragment .shadow-pool {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  filter: blur(8px);
  animation: hh-shadow 8s ease-in-out infinite alternate;
}
@keyframes hh-wall { 0% { opacity: 0.8 } 50% { opacity: 0.9 } 100% { opacity: 0.85 } }
@keyframes hh-fire { 0% { opacity: 0.5; transform: scale(0.95) } 50% { opacity: 0.8; transform: scale(1.05) } 100% { opacity: 0.6; transform: scale(1) } }
@keyframes hh-couple { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(-1deg) } }
@keyframes hh-arm { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes hh-shadow { 0% { opacity: 0.4 } 50% { opacity: 0.6 } 100% { opacity: 0.5 } }

/* scene 3: pains-of-sleep-intro (dark, dark) */
.scn-pains-of-sleep-intro {
  background: 
    linear-gradient(180deg, #0a0a14 0%, #12121e 40%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 20%, #2a2a4e 0%, transparent 70%);
}
.scn-pains-of-sleep-intro .room-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a14 0%, #10101c 100%);
  animation: ps1-ambient 20s ease-in-out infinite alternate;
}
.scn-pains-of-sleep-intro .bed {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.7);
}
.scn-pains-of-sleep-intro .pillow {
  position: absolute; bottom: 25%; left: 35%; width: 30%; height: 10%;
  background: radial-gradient(ellipse, #2a2a40 0%, #1a1a2e 100%);
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: ps1-pillow 4s ease-in-out infinite alternate;
}
.scn-pains-of-sleep-intro .figure-lying {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 25%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 40% 40%;
  transform-origin: bottom center;
  animation: ps1-figure 6s ease-in-out infinite;
}
.scn-pains-of-sleep-intro .hand-over-eyes {
  position: absolute; bottom: 22%; left: 38%; width: 10%; height: 10%;
  background: radial-gradient(ellipse, #2a2a40 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40%;
  animation: ps1-hand 3s ease-in-out infinite alternate;
}
.scn-pains-of-sleep-intro .moonbeam {
  position: absolute; top: 5%; left: 30%; width: 5%; height: 30%;
  background: linear-gradient(180deg, rgba(180,200,255,0.15) 0%, rgba(100,120,180,0.05) 100%);
  filter: blur(8px);
  animation: ps1-beam 12s ease-in-out infinite alternate;
}
.scn-pains-of-sleep-intro .window-frame {
  position: absolute; top: 5%; left: 25%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 5px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
@keyframes ps1-ambient { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.7 } }
@keyframes ps1-pillow { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ps1-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(-0.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ps1-hand { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes ps1-beam { 0% { opacity: 0.1; transform: scaleX(1) } 50% { opacity: 0.3; transform: scaleX(1.2) } 100% { opacity: 0.15; transform: scaleX(0.9) } }

/* scene 4: pains-of-sleep-weeping (dark, dark) */
.scn-pains-of-sleep-weeping {
  background: 
    linear-gradient(180deg, #080810 0%, #10101a 50%, #1a1a26 100%),
    radial-gradient(ellipse at 50% 60%, #2a2a3a 0%, transparent 70%);
}
.scn-pains-of-sleep-weeping .void {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #080810 0%, #0e0e18 100%);
  animation: ps2-void 15s ease-in-out infinite alternate;
}
.scn-pains-of-sleep-weeping .wall-tears {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #10101a 0%, #1e1e2e 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
}
.scn-pains-of-sleep-weeping .figure-kneeling {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 35%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: ps2-kneel 6s ease-in-out infinite;
}
.scn-pains-of-sleep-weeping .head-bowed {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 15%;
  background: radial-gradient(ellipse, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: ps2-head 4s ease-in-out infinite alternate;
}
.scn-pains-of-sleep-weeping .hand-clenched {
  position: absolute; bottom: 12%; left: 35%; width: 8%; height: 10%;
  background: radial-gradient(ellipse, #2e2e40 0%, #1e1e2e 100%);
  border-radius: 40% 40% 50% 50%;
  transform-origin: bottom left;
  animation: ps2-hand 3s ease-in-out infinite alternate;
}
.scn-pains-of-sleep-weeping .tear-drop {
  position: absolute; bottom: 30%; left: 48%; width: 3%; height: 3%;
  background: radial-gradient(circle, #6088a0 0%, #30506a 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px 3px rgba(96,136,160,0.3);
  animation: ps2-tear 2s ease-in-out infinite;
}
.scn-pains-of-sleep-weeping .light-rim {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 10%;
  background: radial-gradient(ellipse, rgba(50,50,80,0.2) 0%, transparent 80%);
  filter: blur(12px);
  animation: ps2-rim 10s ease-in-out infinite alternate;
}
@keyframes ps2-void { 0% { opacity: 0.5 } 50% { opacity: 0.7 } 100% { opacity: 0.6 } }
@keyframes ps2-kneel { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ps2-head { 0% { transform: translateY(0) } 50% { transform: translateY(5px) } 100% { transform: translateY(2px) } }
@keyframes ps2-hand { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(10deg) scale(1.1) } 100% { transform: rotate(5deg) scale(0.95) } }
@keyframes ps2-tear { 0% { transform: translateY(0) scale(1); opacity: 0.8 } 50% { transform: translateY(8px) scale(0.7); opacity: 0.4 } 100% { transform: translateY(0) scale(1); opacity: 0.6 } }
@keyframes ps2-rim { 0% { opacity: 0.1 } 50% { opacity: 0.3 } 100% { opacity: 0.15 } }

.scn-love-genevieve-impulse { background: linear-gradient(180deg, #f4a460 0%, #e07a5f 30%, #b85b4a 60%, #3c2a4a 100%), radial-gradient(ellipse at 50% 0%, #ffd09b 0%, transparent 60%); }
.scn-love-genevieve-impulse .sky-dusk { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #c86a4a 0%, #e07a5f 30%, #f0a070 60%, transparent 100%); animation: li1-dusk 20s ease-in-out infinite alternate; }
.scn-love-genevieve-impulse .sunset-glow { position:absolute; bottom:40%; left:30%; width:40%; height:20%; background: radial-gradient(ellipse at center, #ffc080 0%, #f09060 40%, transparent 70%); animation: li1-glow 12s ease-in-out infinite alternate; }
.scn-love-genevieve-impulse .meadow { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #6a8a4a 0%, #3a5a2a 40%, #1a2a0a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; animation: li1-meadow 20s ease-in-out infinite; }
.scn-love-genevieve-impulse .tree-left { position:absolute; bottom:40%; left:8%; width:40px; height:160px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform-origin: bottom center; animation: li1-tree 25s ease-in-out infinite; }
.scn-love-genevieve-impulse .tree-right { position:absolute; bottom:42%; right:5%; width:50px; height:180px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; transform-origin: bottom center; animation: li1-tree 30s ease-in-out infinite reverse; }
.scn-love-genevieve-impulse .figure-genevieve { position:absolute; bottom:30%; left:46%; width:24px; height:68px; background: linear-gradient(180deg, #d4a070 0%, #c89060 30%, #8a6040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: li1-figure 6s ease-in-out infinite; }
.scn-love-genevieve-impulse .dress { position:absolute; bottom:30%; left:43%; width:40px; height:50px; background: linear-gradient(180deg, #c08060 0%, #a06040 50%, #7a4020 100%); border-radius: 40% 40% 30% 30% / 30% 30% 50% 50%; transform-origin: center top; animation: li1-dress 6s ease-in-out infinite; }
.scn-love-genevieve-impulse .fireflies { position:absolute; top:30%; left:20%; width:4px; height:4px; background: #ffe080; border-radius: 50%; box-shadow: 0 0 12px 6px rgba(255,224,128,.7), 40px 20px 0 0 #ffe080, -20px -10px 0 0 #ffe080, 60px 30px 0 0 #ffe080, -40px 15px 0 0 #ffe080; animation: li1-firefly 4s ease-in-out infinite; }
.scn-love-genevieve-impulse .music-notes { position:absolute; top:20%; left:35%; width:8px; height:14px; background: transparent; border-style: solid; border-width: 0 0 14px 8px; border-color: transparent transparent #f0c080 transparent; filter: blur(1px); animation: li1-music 8s ease-in-out infinite; }
@keyframes li1-dusk { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes li1-glow { 0% { transform: scaleX(.8) scaleY(.6); opacity:.6 } 50% { transform: scaleX(1.1) scaleY(.8); opacity:.9 } 100% { transform: scaleX(.9) scaleY(.7); opacity:.7 } }
@keyframes li1-meadow { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes li1-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes li1-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(6px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes li1-dress { 0% { transform: translateX(0) rotate(-3deg) scaleY(1) } 50% { transform: translateX(2px) rotate(2deg) scaleY(1.02) } 100% { transform: translateX(0) rotate(0) scaleY(1) } }
@keyframes li1-firefly { 0% { transform: translate(0,0); opacity:.6 } 25% { transform: translate(8px,-6px); opacity:1 } 50% { transform: translate(12px,4px); opacity:.8 } 75% { transform: translate(2px,10px); opacity:1 } 100% { transform: translate(0,0); opacity:.6 } }
@keyframes li1-music { 0% { transform: translateY(0) rotate(-10deg); opacity:0 } 20% { opacity:1 } 80% { opacity:1 } 100% { transform: translateY(-30px) rotate(10deg); opacity:0 } }

.scn-love-embrace { background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 30%, #1a1a3e 70%, #0a0a1a 100%), radial-gradient(ellipse at 50% 80%, #3a3a6e 0%, transparent 70%); }
.scn-love-embrace .night-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #1a1a4e 0%, #2a2a5e 40%, transparent 100%); animation: li2-sky 18s ease-in-out infinite alternate; }
.scn-love-embrace .moon { position:absolute; top:12%; right:22%; width:50px; height:50px; background: radial-gradient(circle at 40% 40%, #f8f0e0 0%, #d0c8b8 60%, #a09888 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(200,180,160,.4), 0 0 80px 40px rgba(200,180,160,.1); animation: li2-moon 30s ease-in-out infinite; }
.scn-love-embrace .moonlight-beam { position:absolute; top:20%; left:55%; width:30%; height:70%; background: linear-gradient(180deg, rgba(200,190,180,.15) 0%, rgba(200,190,180,.05) 50%, transparent 100%); transform: skewX(-10deg); transform-origin: top center; animation: li2-beam 10s ease-in-out infinite alternate; }
.scn-love-embrace .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 50%, #0a0a00 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-love-embrace .figure-he { position:absolute; bottom:20%; left:44%; width:26px; height:72px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: li2-he 8s ease-in-out infinite; }
.scn-love-embrace .figure-she { position:absolute; bottom:20%; left:46%; width:22px; height:64px; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 50%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: li2-she 8s ease-in-out infinite; }
.scn-love-embrace .arms { position:absolute; bottom:38%; left:44%; width:40px; height:6px; background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 50%, #2a1a2a 100%); border-radius: 50%; transform-origin: center; animation: li2-arms 8s ease-in-out infinite; }
.scn-love-embrace .gaze-spark { position:absolute; top:40%; left:50%; width:2px; height:2px; background: #e0d8c8; border-radius: 50%; box-shadow: 0 0 6px 3px rgba(224,216,200,.6); animation: li2-spark 4s ease-in-out infinite; }
.scn-love-embrace .shadow-pool { position:absolute; bottom:8%; left:40%; width:20%; height:14%; background: radial-gradient(ellipse at center, rgba(10,10,20,.8) 0%, transparent 70%); animation: li2-shadow 15s ease-in-out infinite alternate; }
@keyframes li2-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes li2-moon { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes li2-beam { 0% { opacity:.3; transform: skewX(-8deg) } 50% { opacity:.6; transform: skewX(-12deg) } 100% { opacity:.4; transform: skewX(-10deg) } }
@keyframes li2-he { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(-2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes li2-she { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(2px) rotate(-1deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes li2-arms { 0% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(3deg) scaleX(1.02) } 100% { transform: rotate(-2deg) scaleX(1) } }
@keyframes li2-spark { 0% { opacity:.2; transform: scale(.5) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.3; transform: scale(.7) } }
@keyframes li2-shadow { 0% { transform: scaleX(.8) scaleY(.6); opacity:.4 } 50% { transform: scaleX(1.1) scaleY(.9); opacity:.7 } 100% { transform: scaleX(.9) scaleY(.7); opacity:.5 } }

.scn-love-won { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #2a2a5e 70%, #1a1a3e 100%), radial-gradient(ellipse at 50% 100%, #2a2a5e 0%, transparent 70%); }
.scn-love-won .starry-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a0a3e 0%, #1a1a4e 50%, transparent 100%); animation: li3-sky 30s ease-in-out infinite alternate; }
.scn-love-won .stars-small { position:absolute; inset:0; background: radial-gradient(1px 1px at 10% 20%, #e0e0ff, transparent), radial-gradient(1px 1px at 30% 60%, #e0e0ff, transparent), radial-gradient(1px 1px at 50% 10%, #e0e0ff, transparent), radial-gradient(1px 1px at 70% 40%, #e0e0ff, transparent), radial-gradient(1px 1px at 90% 80%, #e0e0ff, transparent), radial-gradient(2px 2px at 20% 30%, #ffffff, transparent), radial-gradient(2px 2px at 60% 70%, #ffffff, transparent), radial-gradient(2px 2px at 80% 20%, #ffffff, transparent); animation: li3-twinkle 6s ease-in-out infinite; }
.scn-love-won .stars-bright { position:absolute; top:8%; left:25%; width:3px; height:3px; background: #f0f0ff; border-radius: 50%; box-shadow: 0 0 8px 4px rgba(240,240,255,.5), 45px 30px 0 0 #f0f0ff, 45px 30px 0 4px rgba(240,240,255,.5), -30px 50px 0 0 #f0f0ff, -30px 50px 0 4px rgba(240,240,255,.5), 60px -20px 0 0 #f0f0ff; animation: li3-twinkle-bright 4s ease-in-out infinite alternate; }
.scn-love-won .horizon { position:absolute; bottom:30%; left:0; right:0; height:4%; background: linear-gradient(180deg, #2a2a5e 0%, #1a1a4e 100%); box-shadow: 0 2px 12px rgba(100,100,180,.3); }
.scn-love-won .silhouette-couple { position:absolute; bottom:18%; left:46%; width:36px; height:80px; background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: li3-couple 12s ease-in-out infinite; }
.scn-love-won .veil { position:absolute; bottom:32%; left:44%; width:40px; height:30px; background: linear-gradient(180deg, rgba(200,200,240,.2) 0%, rgba(200,200,240,.05) 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; filter: blur(2px); animation: li3-veil 10s ease-in-out infinite; }
.scn-love-won .starlight-halo { position:absolute; bottom:30%; left:45%; width:14%; height:20%; background: radial-gradient(ellipse at center, rgba(200,200,240,.1) 0%, transparent 70%); animation: li3-halo 8s ease-in-out infinite alternate; }
@keyframes li3-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes li3-twinkle { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes li3-twinkle-bright { 0% { transform: scale(.8); opacity:.7 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(.9); opacity:.8 } }
@keyframes li3-couple { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(-1px) rotate(0) } 75% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes li3-veil { 0% { transform: translateY(0) rotate(-2deg); opacity:.4 } 50% { transform: translateY(-2px) rotate(2deg); opacity:.7 } 100% { transform: translateY(1px) rotate(-1deg); opacity:.5 } }
@keyframes li3-halo { 0% { transform: scale(.9); opacity:.3 } 50% { transform: scale(1.1); opacity:.6 } 100% { transform: scale(.95); opacity:.4 } }

.scn-love-composition-notes { background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 30%, #3a3020 60%, #2a2a1a 100%), radial-gradient(ellipse at 50% 0%, #4a4030 0%, transparent 60%); }
.scn-love-composition-notes .dark-wall { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a1a 0%, #2a2a1a 40%, #1a1a1a 100%); animation: li4-wall 20s ease-in-out infinite alternate; }
.scn-love-composition-notes .desk { position:absolute; bottom:18%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,.5); }
.scn-love-composition-notes .candle { position:absolute; bottom:40%; left:50%; width:12px; height:36px; background: linear-gradient(180deg, #e8d0a0 0%, #d0b880 30%, #a08050 70%, #605030 100%); border-radius: 4px 4px 2px 2px; transform: translateX(-50%); animation: li4-candle 6s ease-in-out infinite; }
.scn-love-composition-notes .candle-glow { position:absolute; bottom:44%; left:50%; width:30px; height:40px; background: radial-gradient(ellipse at center, #f0c080 0%, #e0a060 30%, transparent 70%); border-radius: 50%; transform: translateX(-50%); animation: li4-glow 4s ease-in-out infinite alternate; }
.scn-love-composition-notes .paper { position:absolute; bottom:28%; left:40%; width:20%; height:8%; background: linear-gradient(180deg, #f0e0c0 0%, #e0d0b0 50%, #d0c0a0 100%); border-radius: 2px; transform: rotate(-2deg); box-shadow: 2px 2px 4px rgba(0,0,0,.3); animation: li4-paper 15s ease-in-out infinite; }
.scn-love-composition-notes .quill { position:absolute; bottom:32%; left:55%; width:3px; height:32px; background: linear-gradient(180deg, #e8e0d0 0%, #c0b8a8 40%, #8a7a6a 100%); border-radius: 0 0 50% 50%; transform: rotate(20deg); transform-origin: bottom center; animation: li4-quill 8s ease-in-out infinite; }
.scn-love-composition-notes .ink-stain { position:absolute; bottom:26%; left:48%; width:8px; height:6px; background: #1a1a2a; border-radius: 50% 30% 50% 30%; opacity:.7; animation: li4-ink 20s ease-in-out infinite; }
.scn-love-composition-notes .window-night { position:absolute; top:6%; left:68%; width:22%; height:34%; background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 100%); border: 4px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,20,.8); animation: li4-window 30s ease-in-out infinite alternate; }
.scn-love-composition-notes .curtain { position:absolute; top:4%; left:65%; width:28%; height:38%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 50%, #3a2a1a 100%); border-radius: 8px 8px 0 0; opacity:.6; filter: blur(1px); animation: li4-curtain 12s ease-in-out infinite; }
@keyframes li4-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes li4-candle { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes li4-glow { 0% { transform: translateX(-50%) scale(.9); opacity:.7 } 50% { transform: translateX(-50%) scale(1.1); opacity:1 } 100% { transform: translateX(-50%) scale(.95); opacity:.8 } }
@keyframes li4-paper { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-1px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes li4-quill { 0% { transform: rotate(18deg) } 25% { transform: rotate(22deg) } 50% { transform: rotate(20deg) } 75% { transform: rotate(24deg) } 100% { transform: rotate(20deg) } }
@keyframes li4-ink { 0% { opacity:.5; transform: scale(.9) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.6; transform: scale(1) } }
@keyframes li4-window { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes li4-curtain { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(1px) scaleY(.98) } }

/* fountain-inscription */
.scn-fountain-inscription {
  background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 40%), radial-gradient(ellipse at 50% 100%, #f0e68c 0%, transparent 70%);
}
.scn-fountain-inscription .sky {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #87CEEB 0%, #e0f0ff 100%); animation: fi-sky 20s ease-in-out infinite alternate;
}
.scn-fountain-inscription .hills {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #7c9a6a 0%, #4a6b3a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: fi-hills 15s ease-in-out infinite alternate;
}
.scn-fountain-inscription .tree {
  position: absolute; bottom: 30%; left: 12%; width: 120px; height: 200px; transform-origin: bottom center;
  background: radial-gradient(ellipse 60% 70% at 50% 20%, #2d5a1e 0%, #1a3a0e 100%); clip-path: polygon(50% 0%, 35% 30%, 20% 40%, 30% 60%, 10% 70%, 25% 85%, 5% 95%, 20% 100%, 80% 100%, 95% 95%, 75% 85%, 90% 70%, 70% 60%, 80% 40%, 65% 30%);
  animation: fi-tree 8s ease-in-out infinite;
}
.scn-fountain-inscription .fountain {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%); width: 90px; height: 90px;
  background: linear-gradient(180deg, #b8a088 0%, #706050 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: fi-fountain 10s ease-in-out infinite;
}
.scn-fountain-inscription .stream {
  position: absolute; bottom: 20%; left: 50%; width: 12px; height: 40px; transform: translateX(-50%);
  background: linear-gradient(180deg, #a0d8ef 0%, #6bb5d0 100%); border-radius: 50%; filter: blur(2px);
  animation: fi-stream 4s ease-in-out infinite;
}
.scn-fountain-inscription .figure {
  position: absolute; bottom: 27%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: fi-figure 6s ease-in-out infinite;
}
.scn-fountain-inscription .rays {
  position: absolute; top: 10%; left: 20%; width: 200px; height: 200px;
  background: radial-gradient(ellipse at 30% 30%, rgba(255,220,150,0.4) 0%, transparent 70%);
  filter: blur(10px); animation: fi-rays 12s ease-in-out infinite alternate;
}
@keyframes fi-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes fi-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes fi-tree { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes fi-fountain { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } }
@keyframes fi-stream { 0%,100% { opacity:0.7; transform: translateX(-50%) scaleY(1) } 50% { opacity:1; transform: translateX(-50%) scaleY(1.3) } }
@keyframes fi-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-5px) rotate(-2deg) } 75% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fi-rays { 0% { opacity:0.3; transform: rotate(0) } 50% { opacity:0.7; transform: rotate(5deg) } 100% { opacity:0.4; transform: rotate(-5deg) } }

/* ode-to-rain-intro */
.scn-ode-to-rain-intro {
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a2e 50%, #0d0d1a 100%), radial-gradient(ellipse at 50% 30%, #3a4a5a 0%, transparent 70%);
}
.scn-ode-to-rain-intro .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); animation: ri-bg 15s ease-in-out infinite alternate;
}
.scn-ode-to-rain-intro .window-frame {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 60%; border: 8px solid #4a3a2a; border-radius: 6px;
  background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: ri-frame 5s ease-in-out infinite;
}
.scn-ode-to-rain-intro .window-glass {
  position: absolute; top: calc(10% + 8px); left: calc(30% + 8px); width: calc(40% - 16px); height: calc(60% - 16px);
  background: linear-gradient(180deg, rgba(100,120,140,0.3) 0%, rgba(60,80,100,0.5) 100%);
  filter: blur(2px); animation: ri-glass 8s ease-in-out infinite alternate;
}
.scn-ode-to-rain-intro .bed {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.6); animation: ri-bed 12s ease-in-out infinite;
}
.scn-ode-to-rain-intro .lamp {
  position: absolute; bottom: 28%; right: 15%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #d0a060 0%, #a07030 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: 0 0 16px 4px rgba(200,150,80,0.6); animation: ri-lamp 4s ease-in-out infinite alternate;
}
.scn-ode-to-rain-intro .drop1, .scn-ode-to-rain-intro .drop2 {
  position: absolute; width: 2px; height: 12px; background: rgba(180,200,220,0.6); border-radius: 50%;
  animation: ri-drop 2s linear infinite;
}
.scn-ode-to-rain-intro .drop1 { top: 5%; left: 40%; animation-delay: 0s; }
.scn-ode-to-rain-intro .drop2 { top: 2%; left: 55%; animation-delay: 1.2s; }
@keyframes ri-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ri-frame { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes ri-glass { 0% { opacity:0.4; filter: blur(2px) } 50% { opacity:0.6; filter: blur(3px) } 100% { opacity:0.5; filter: blur(2px) } }
@keyframes ri-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ri-lamp { 0% { box-shadow: 0 0 12px 2px rgba(200,150,80,0.5) } 50% { box-shadow: 0 0 20px 6px rgba(200,150,80,0.8) } 100% { box-shadow: 0 0 14px 4px rgba(200,150,80,0.6) } }
@keyframes ri-drop { 0% { transform: translateY(-10px); opacity:0 } 10% { opacity:1 } 90% { opacity:1 } 100% { transform: translateY(300px); opacity:0 } }

/* ode-to-rain-two */
.scn-ode-to-rain-two {
  background: linear-gradient(180deg, #1e2a2e 0%, #0f1518 50%, #05080a 100%), radial-gradient(ellipse at 50% 80%, #2a3a44 0%, transparent 70%);
}
.scn-ode-to-rain-two .bg-interior {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a22 0%, #0c0c14 100%); animation: r2-bg 18s ease-in-out infinite alternate;
}
.scn-ode-to-rain-two .window-tall {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 80%; background: linear-gradient(180deg, rgba(80,100,120,0.4) 0%, rgba(40,60,80,0.7) 100%);
  border: 6px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.9);
  animation: r2-window 10s ease-in-out infinite;
}
.scn-ode-to-rain-two .figure-stand {
  position: absolute; bottom: 20%; left: 45%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: r2-figure 6s ease-in-out infinite;
}
.scn-ode-to-rain-two .rain-streak {
  position: absolute; top: 0; left: 50%; width: 2px; height: 300px;
  background: linear-gradient(180deg, transparent 0%, rgba(180,210,240,0.6) 30%, rgba(180,210,240,0.6) 70%, transparent 100%);
  animation: r2-streak 3s linear infinite;
}
.scn-ode-to-rain-two .shadow {
  position: absolute; bottom: 15%; left: 40%; width: 30%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: r2-shadow 12s ease-in-out infinite alternate;
}
.scn-ode-to-rain-two .curtain {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(80,60,40,0.6) 0%, rgba(60,40,30,0.4) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%); filter: blur(3px);
  animation: r2-curtain 8s ease-in-out infinite alternate;
}
.scn-ode-to-rain-two .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.8);
}
@keyframes r2-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes r2-window { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.01) } }
@keyframes r2-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-3px) rotate(-1deg) } 75% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes r2-streak { 0% { transform: translateY(-100px); opacity:0 } 10% { opacity:1 } 90% { opacity:1 } 100% { transform: translateY(300px); opacity:0 } }
@keyframes r2-shadow { 0% { opacity:0.6; transform: scaleX(1) } 50% { opacity:0.8; transform: scaleX(1.1) } 100% { opacity:0.7; transform: scaleX(0.95) } }
@keyframes r2-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }

/* ode-to-rain-three */
.scn-ode-to-rain-three {
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 50%, #1a2a3a 100%), radial-gradient(ellipse at 50% 30%, #6a7a8a 0%, transparent 70%);
}
.scn-ode-to-rain-three .sky-overcast {
  position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 100%); animation: r3-sky 20s ease-in-out infinite alternate;
}
.scn-ode-to-rain-three .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-ode-to-rain-three .figure-up {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%); width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: r3-figure-up 6s ease-in-out infinite;
}
.scn-ode-to-rain-three .umbrella {
  position: absolute; bottom: 58%; left: 50%; transform: translateX(-50%); width: 50px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.5); animation: r3-umbrella 4s ease-in-out infinite;
}
.scn-ode-to-rain-three .rain-drops {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-linear-gradient(45deg, transparent, transparent 20px, rgba(180,200,220,0.3) 20px, rgba(180,200,220,0.3) 22px);
  animation: r3-drops 6s linear infinite;
}
.scn-ode-to-rain-three .puddle {
  position: absolute; bottom: 30%; left: 30%; width: 80px; height: 15px;
  background: radial-gradient(ellipse, rgba(100,140,180,0.5) 0%, transparent 70%);
  border-radius: 50%; animation: r3-puddle 8s ease-in-out infinite alternate;
}
.scn-ode-to-rain-three .wind-lines {
  position: absolute; top: 20%; left: 0; right: 0; height: 10%;
  background: linear-gradient(90deg, transparent 0%, rgba(200,220,240,0.2) 50%, transparent 100%);
  filter: blur(2px); animation: r3-wind 12s linear infinite;
}
@keyframes r3-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes r3-figure-up { 0% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-50%) rotate(-3deg) translateY(-2px) } 75% { transform: translateX(-50%) rotate(3deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes r3-umbrella { 0%,100% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(3deg) } }
@keyframes r3-drops { 0% { background-position: 0 0 } 100% { background-position: 0 40px } }
@keyframes r3-puddle { 0% { transform: scaleX(1); opacity:0.5 } 50% { transform: scaleX(1.2); opacity:0.7 } 100% { transform: scaleX(0.9); opacity:0.6 } }
@keyframes r3-wind { 0% { transform: translateX(-30px) } 100% { transform: translateX(30px) } }

.scn-noble-warrior-intro {
  background: linear-gradient(180deg, #fde8c0 0%, #f9d98a 40%, #f7c948 70%, #e8a830 100%),
              radial-gradient(ellipse at 70% 20%, #fff8e0 0%, transparent 60%);
  position: absolute; inset: 0;
}
.scn-noble-warrior-intro .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b8d0f0 0%, transparent 100%);
  mix-blend-mode: multiply; opacity: 0.4;
  animation: nwi-sky 12s ease-in-out infinite alternate;
}
.scn-noble-warrior-intro .sun {
  position: absolute; top: 8%; right: 20%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fffbe0 0%, #fdeb60 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(253,235,96,0.5), 0 0 120px 60px rgba(253,235,96,0.2);
  animation: nwi-sun 8s ease-in-out infinite alternate;
}
.scn-noble-warrior-intro .ray {
  position: absolute; top: 10%; left: 50%; width: 2px; height: 200%; background: rgba(255,255,200,0.3);
  transform-origin: center top;
  filter: blur(1px);
}
.scn-noble-warrior-intro .ray-a {
  left: 35%; transform: rotate(15deg);
  animation: nwi-ray 6s linear infinite;
}
.scn-noble-warrior-intro .ray-b {
  left: 65%; transform: rotate(-20deg);
  animation: nwi-ray 7s linear infinite 1s;
}
.scn-noble-warrior-intro .warrior {
  position: absolute; bottom: 30%; left: 20%; width: 70px; height: 140px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
  transform-origin: bottom center;
  animation: nwi-warrior 4s ease-in-out infinite;
}
.scn-noble-warrior-intro .sabre {
  position: absolute; bottom: 35%; left: 30%; width: 80px; height: 6px;
  background: linear-gradient(90deg, #c0a060 0%, #e0c080 50%, #c0a060 100%);
  border-radius: 2px;
  transform: rotate(30deg) translateX(20px);
  box-shadow: 0 0 10px 3px rgba(192,160,96,0.5);
  animation: nwi-sabre 4s ease-in-out infinite;
}
.scn-noble-warrior-intro .stripling {
  position: absolute; bottom: 30%; right: 25%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #2a2218 0%, #14100a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nwi-stripling 5s ease-in-out infinite;
}
.scn-noble-warrior-intro .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 40% 30% 0 0 / 20% 15% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
}
@keyframes nwi-sky { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes nwi-sun { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-5px); } 100% { transform: scale(0.98) translateY(2px); } }
@keyframes nwi-ray { 0% { opacity: 0; transform: rotate(10deg) translateX(0); } 50% { opacity: 0.5; } 100% { opacity: 0; transform: rotate(25deg) translateX(50px); } }
@keyframes nwi-warrior { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes nwi-sabre { 0% { transform: rotate(25deg) translateX(15px); } 50% { transform: rotate(35deg) translateX(25px); } 100% { transform: rotate(25deg) translateX(15px); } }
@keyframes nwi-stripling { 0% { transform: rotate(0deg); } 30% { transform: rotate(5deg); } 60% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }

.scn-stripling-fantasy {
  background: linear-gradient(180deg, #4a2c4a 0%, #7a4a5a 30%, #c87648 60%, #e8a060 100%),
              radial-gradient(ellipse at 50% 70%, #f0b878 0%, transparent 50%);
  position: absolute; inset: 0;
}
.scn-stripling-fantasy .dusk-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a3a 0%, #6a3a5a 40%, transparent 100%);
  mix-blend-mode: multiply;
  animation: sf-dusk 15s ease-in-out infinite alternate;
}
.scn-stripling-fantasy .setting-sun {
  position: absolute; bottom: 35%; left: 50%; width: 90px; height: 90px;
  background: radial-gradient(circle, #ffcca0 0%, #f08040 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(240,128,64,0.5), 0 0 160px 80px rgba(240,128,64,0.2);
  animation: sf-sun 12s ease-in-out infinite;
}
.scn-stripling-fantasy .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-stripling-fantasy .child {
  position: absolute; bottom: 25%; left: 30%; width: 45px; height: 100px;
  background: linear-gradient(180deg, #2a2218 0%, #14100a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sf-child 3s ease-in-out infinite;
}
.scn-stripling-fantasy .trumpet {
  position: absolute; bottom: 35%; left: 28%; width: 40px; height: 12px;
  background: linear-gradient(90deg, #c0a060 0%, #e0c080 100%);
  border-radius: 50% 20% 20% 50%;
  transform: rotate(40deg) translate(-5px, -10px);
  box-shadow: 0 0 10px 2px rgba(192,160,96,0.4);
  animation: sf-trumpet 3s ease-in-out infinite 0.2s;
}
.scn-stripling-fantasy .hero-ghost {
  position: absolute; bottom: 30%; right: 20%; width: 60px; height: 130px;
  background: linear-gradient(180deg, rgba(180,140,100,0.5) 0%, rgba(100,70,40,0.2) 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  filter: blur(4px);
  animation: sf-ghost 6s ease-in-out infinite alternate;
}
.scn-stripling-fantasy .dust {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,160,100,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: sf-dust 4s ease-in-out infinite;
}
@keyframes sf-dusk { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes sf-sun { 0% { transform: scale(1) translate(0,0); } 50% { transform: scale(1.03) translate(-5px, -5px); } 100% { transform: scale(0.97) translate(5px, 5px); } }
@keyframes sf-child { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes sf-trumpet { 0% { transform: rotate(35deg) translate(-5px, -8px); } 50% { transform: rotate(50deg) translate(-5px, -12px); } 100% { transform: rotate(35deg) translate(-5px, -8px); } }
@keyframes sf-ghost { 0% { opacity: 0.2; transform: translateY(0); } 50% { opacity: 0.6; transform: translateY(-10px); } 100% { opacity: 0.3; transform: translateY(5px); } }
@keyframes sf-dust { 0% { transform: translateX(0) scale(1); opacity: 0; } 50% { transform: translateX(30px) scale(1.5); opacity: 0.6; } 100% { transform: translateX(60px) scale(0.5); opacity: 0; } }

.scn-stripling-dream {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 30%, #4a4a5a 60%, #5a5a6a 100%),
              radial-gradient(ellipse at 50% 0%, #5a5a7a 0%, transparent 60%);
  position: absolute; inset: 0;
}
.scn-stripling-dream .storm-clouds {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 50%, transparent 100%);
  mix-blend-mode: screen; opacity: 0.8;
  animation: sd-clouds 10s ease-in-out infinite alternate;
}
.scn-stripling-dream .heath {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a5030 0%, #2a3018 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
}
.scn-stripling-dream .figure {
  position: absolute; bottom: 35%; left: 35%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sd-figure 3s ease-in-out infinite;
}
.scn-stripling-dream .lance {
  position: absolute; bottom: 45%; left: 40%; width: 100px; height: 6px;
  background: linear-gradient(90deg, #8a7a5a 0%, #b0a070 50%, #8a7a5a 100%);
  border-radius: 2px;
  transform: rotate(-20deg) translateX(20px);
  animation: sd-lance 3.5s ease-in-out infinite 0.3s;
}
.scn-stripling-dream .banner {
  position: absolute; bottom: 45%; left: 45%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #7a3a2a 0%, #5a2a1a 100%);
  border-radius: 0 20% 20% 0;
  transform-origin: left center;
  animation: sd-banner 4s ease-in-out infinite;
}
.scn-stripling-dream .wind-line {
  position: absolute; top: 20%; left: 0; width: 100%; height: 2px;
  background: rgba(200,200,220,0.2);
  border-radius: 50%;
}
.scn-stripling-dream .wind-a {
  top: 15%;
  animation: sd-wind 8s linear infinite;
}
.scn-stripling-dream .wind-b {
  top: 25%;
  animation: sd-wind 10s linear infinite 2s;
}
@keyframes sd-clouds { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes sd-figure { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-3px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes sd-lance { 0% { transform: rotate(-25deg) translateX(18px); } 50% { transform: rotate(-15deg) translateX(25px); } 100% { transform: rotate(-25deg) translateX(18px); } }
@keyframes sd-banner { 0% { transform: skewY(0deg); } 50% { transform: skewY(10deg); } 100% { transform: skewY(0deg); } }
@keyframes sd-wind { 0% { transform: translateX(-100%); opacity: 0; } 50% { opacity: 0.5; } 100% { transform: translateX(200%); opacity: 0; } }

.scn-stripling-refrain {
  background: linear-gradient(180deg, #ffe8c0 0%, #fdd698 30%, #f7c06a 60%, #e8a040 100%),
              radial-gradient(ellipse at 60% 30%, #fff3d0 0%, transparent 50%);
  position: absolute; inset: 0;
}
.scn-stripling-refrain .dawn-sky {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #b8c8e8 0%, transparent 100%);
  mix-blend-mode: overlay; opacity: 0.5;
  animation: sr-dawn 20s ease-in-out infinite alternate;
}
.scn-stripling-refrain .sun {
  position: absolute; top: 12%; left: 65%; width: 70px; height: 70px;
  background: radial-gradient(circle, #fff0c0 0%, #fdd070 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 25px rgba(253,208,112,0.5), 0 0 100px 50px rgba(253,208,112,0.2);
  animation: sr-sun 10s ease-in-out infinite alternate;
}
.scn-stripling-refrain .warrior-hand {
  position: absolute; bottom: 30%; left: 20%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: sr-hand-w 4s ease-in-out infinite;
}
.scn-stripling-refrain .stripling-hand {
  position: absolute; bottom: 30%; right: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a2218 0%, #14100a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: sr-hand-s 4s ease-in-out infinite 0.2s;
}
.scn-stripling-refrain .sabre {
  position: absolute; bottom: 35%; left: 35%; width: 90px; height: 8px;
  background: linear-gradient(90deg, #b09850 0%, #d0b870 40%, #b09850 80%, #806830 100%);
  border-radius: 2px;
  transform: rotate(10deg) translateX(10px);
  box-shadow: 0 0 12px 3px rgba(176,152,80,0.4);
  animation: sr-sabre 4s ease-in-out infinite 0.1s;
}
.scn-stripling-refrain .glint {
  position: absolute; bottom: 38%; left: 45%; width: 10px; height: 10px;
  background: radial-gradient(circle, #fffde0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(255,253,224,0.5);
  animation: sr-glint 3s ease-in-out infinite alternate;
}
@keyframes sr-dawn { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes sr-sun { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.04) translateY(-3px); } 100% { transform: scale(0.98) translateY(2px); } }
@keyframes sr-hand-w { 0% { transform: rotate(-25deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(-25deg); } }
@keyframes sr-hand-s { 0% { transform: rotate(25deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(25deg); } }
@keyframes sr-sabre { 0% { transform: rotate(5deg) translateX(8px); } 50% { transform: rotate(15deg) translateX(15px); } 100% { transform: rotate(5deg) translateX(8px); } }
@keyframes sr-glint { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(0.9); } }

.scn-dejection-genial-spirits {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2c2c44 30%, #3a3a4e 100%),
    radial-gradient(ellipse at 50% 80%, #3a3a5e 0%, transparent 70%);
}
.scn-dejection-genial-spirits .dgs-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #1e1e38 0%, #2a2a4a 60%, transparent 100%);
  animation: dgs-sky 15s ease-in-out infinite alternate;
}
.scn-dejection-genial-spirits .dgs-hills-back {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.5);
  animation: dgs-hills 20s ease-in-out infinite alternate;
}
.scn-dejection-genial-spirits .dgs-hills-front {
  position: absolute; bottom: 18%; left: -5%; right: -5%; height: 15%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.6);
  animation: dgs-hills 25s ease-in-out infinite alternate-reverse;
}
.scn-dejection-genial-spirits .dgs-tree {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 120px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,.4);
  animation: dgs-tree 8s ease-in-out infinite;
}
.scn-dejection-genial-spirits .dgs-figure {
  position: absolute; bottom: 18%; left: 50%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dgs-figure 6s ease-in-out infinite;
}
.scn-dejection-genial-spirits .dgs-light {
  position: absolute; bottom: 26%; left: 52%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,208,128,.6), 0 0 40px 12px rgba(255,208,128,.3);
  animation: dgs-light 4s ease-in-out infinite alternate;
}
.scn-dejection-genial-spirits .dgs-cloud-a {
  position: absolute; top: 12%; left: -10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.25) 0%, rgba(255,255,255,.05) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: dgs-drift-a 40s linear infinite;
}
.scn-dejection-genial-spirits .dgs-cloud-b {
  position: absolute; top: 20%; right: -10%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,.2) 0%, rgba(255,255,255,.03) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: dgs-drift-b 55s linear infinite reverse;
}
@keyframes dgs-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .6; } }
@keyframes dgs-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(2px); } }
@keyframes dgs-tree { 0%,100% { transform: rotate(0deg); } 30% { transform: rotate(-2deg); } 60% { transform: rotate(3deg); } }
@keyframes dgs-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-2deg); } 50% { transform: translateX(5px) rotate(1deg); } 75% { transform: translateX(3px) rotate(0deg); } }
@keyframes dgs-light { 0% { opacity: .7; box-shadow: 0 0 15px 4px rgba(255,208,128,.4), 0 0 30px 8px rgba(255,208,128,.2); } 50% { opacity: 1; box-shadow: 0 0 25px 8px rgba(255,208,128,.7), 0 0 50px 16px rgba(255,208,128,.4); } 100% { opacity: .8; box-shadow: 0 0 18px 5px rgba(255,208,128,.5), 0 0 35px 10px rgba(255,208,128,.25); } }
@keyframes dgs-drift-a { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }
@keyframes dgs-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-dejection-past-joy {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #20203a 50%, #2a2a44 100%),
    radial-gradient(ellipse at 30% 70%, #3a3a5e 0%, transparent 60%);
}
.scn-dejection-past-joy .dpj-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #252540 60%, transparent 100%);
  animation: dpj-sky 18s ease-in-out infinite alternate;
}
.scn-dejection-past-joy .dpj-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a2a2e 0%, #1a1a1e 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-dejection-past-joy .dpj-tree {
  position: absolute; bottom: 40%; right: 25%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1e1e1a 0%, #0e0e0a 100%);
  border-radius: 50% 50% 10% 10%;
  transform-origin: bottom center;
  animation: dpj-tree 10s ease-in-out infinite alternate;
}
.scn-dejection-past-joy .dpj-figure {
  position: absolute; bottom: 35%; left: 30%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dpj-figure 8s ease-in-out infinite;
}
.scn-dejection-past-joy .dpj-child {
  position: absolute; bottom: 38%; right: 40%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  opacity: 0.6;
  animation: dpj-child 12s ease-in-out infinite;
}
.scn-dejection-past-joy .dpj-wind-a {
  position: absolute; top: 30%; left: -10%; width: 60px; height: 2px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.2), transparent);
  border-radius: 50%;
  animation: dpj-wind 20s linear infinite;
}
.scn-dejection-past-joy .dpj-wind-b {
  position: absolute; top: 45%; left: -20%; width: 80px; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.15), transparent);
  border-radius: 50%;
  animation: dpj-wind 25s linear infinite reverse;
  animation-delay: -5s;
}
.scn-dejection-past-joy .dpj-cloud {
  position: absolute; top: 10%; left: 20%; width: 90px; height: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.15) 0%, rgba(255,255,255,.03) 100%);
  border-radius: 50%;
  filter: blur(7px);
  animation: dpj-drift 45s linear infinite;
}
@keyframes dpj-sky { 0% { opacity: .9; } 50% { opacity: .6; } 100% { opacity: .8; } }
@keyframes dpj-tree { 0% { transform: rotate(0deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(3deg); } }
@keyframes dpj-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-8px) rotate(-3deg); } 50% { transform: translateX(-12px) rotate(0deg); } 75% { transform: translateX(-6px) rotate(2deg); } }
@keyframes dpj-child { 0%,100% { opacity: .5; transform: translateX(0); } 50% { opacity: .8; transform: translateX(10px); } }
@keyframes dpj-wind { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }
@keyframes dpj-drift { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }

.scn-dejection-notes {
  background: 
    linear-gradient(180deg, #2a2218 0%, #3a3228 50%, #2a2218 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a28 0%, transparent 80%);
}
.scn-dejection-notes .dno-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a3228 0%, #2a2218 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.4);
}
.scn-dejection-notes .dno-desk {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(135deg, #4a3a28 0%, #3a2a1a 50%, #5a4a38 100%);
  border-radius: 4px;
  box-shadow: 0 -8px 20px rgba(0,0,0,.5);
  transform: perspective(600px) rotateX(10deg);
  transform-origin: bottom center;
}
.scn-dejection-notes .dno-papers {
  position: absolute; bottom: 25%; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(135deg, #c8b898 0%, #a89070 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: dno-papers 15s ease-in-out infinite alternate;
}
.scn-dejection-notes .dno-candle {
  position: absolute; bottom: 30%; left: 35%; width: 14px; height: 50px;
  background: linear-gradient(180deg, #e0c8a0 0%, #b09070 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 8px rgba(0,0,0,.4);
}
.scn-dejection-notes .dno-flame {
  position: absolute; bottom: 58%; left: calc(35% + 7px - 8px); width: 16px; height: 24px;
  background: radial-gradient(circle at 50% 40%, #ffd080 0%, #e09020 50%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 10px rgba(255,200,100,.6), 0 0 60px 20px rgba(255,200,100,.3);
  animation: dno-flame 3s ease-in-out infinite alternate;
}
.scn-dejection-notes .dno-inkwell {
  position: absolute; bottom: 28%; right: 30%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,.5);
}
.scn-dejection-notes .dno-shelf {
  position: absolute; top: 10%; left: 5%; right: 5%; height: 15%;
  background: linear-gradient(180deg, #4a3a28 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
@keyframes dno-papers { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-0.5deg); } }
@keyframes dno-flame { 0% { height: 22px; opacity: .9; box-shadow: 0 0 25px 8px rgba(255,200,100,.5), 0 0 50px 16px rgba(255,200,100,.25); } 50% { height: 28px; opacity: 1; box-shadow: 0 0 35px 12px rgba(255,200,100,.7), 0 0 70px 24px rgba(255,200,100,.4); } 100% { height: 20px; opacity: .85; box-shadow: 0 0 20px 6px rgba(255,200,100,.4), 0 0 40px 12px rgba(255,200,100,.2); } }

.scn-dejection-variants-title {
  background: 
    linear-gradient(180deg, #2a2218 0%, #3a3228 50%, #2a2218 100%),
    radial-gradient(ellipse at 30% 40%, #4a3a28 0%, transparent 80%);
}
.scn-dejection-variants-title .dvt-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a3228 0%, #2a2218 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.5);
}
.scn-dejection-variants-title .dvt-page-a {
  position: absolute; bottom: 20%; left: 10%; width: 35%; height: 40%;
  background: linear-gradient(135deg, #d8c8a8 0%, #b8a080 100%);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  transform: rotate(-5deg);
  animation: dvt-page 20s ease-in-out infinite alternate;
}
.scn-dejection-variants-title .dvt-page-b {
  position: absolute; bottom: 15%; left: 25%; width: 35%; height: 45%;
  background: linear-gradient(135deg, #c8b898 0%, #a89070 100%);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  transform: rotate(3deg);
  animation: dvt-page 25s ease-in-out infinite alternate-reverse;
}
.scn-dejection-variants-title .dvt-page-c {
  position: absolute; bottom: 10%; left: 40%; width: 30%; height: 50%;
  background: linear-gradient(135deg, #e0d0b0 0%, #c0a880 100%);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  transform: rotate(8deg);
  animation: dvt-page 30s ease-in-out infinite alternate;
  animation-delay: -5s;
}
.scn-dejection-variants-title .dvt-lamp {
  position: absolute; top: 10%; right: 20%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
}
.scn-dejection-variants-title .dvt-glow {
  position: absolute; top: 8%; right: calc(20% + 15px - 20px); width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,230,180,.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: dvt-glow 4s ease-in-out infinite alternate;
}
.scn-dejection-variants-title .dvt-shadow {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.4));
  border-radius: 0 0 50% 50%;
}
@keyframes dvt-page { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(0deg) translateX(5px); } 100% { transform: rotate(5deg) translateX(-2px); } }
@keyframes dvt-glow { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: .7; transform: scale(0.9); } }

/* Christmas Carol - Intro (starlit, warm) */
.scn-christmas-carol-intro {
  background:
    radial-gradient(ellipse 120% 80% at 50% 100%, #3a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #0f0f2e 0%, #1a1a3e 30%, #2a2a4e 60%, #1a1a2e 100%);
  position: relative;
  overflow: hidden;
}
.scn-christmas-carol-intro .stars {
  position: absolute; inset: 0 0 50% 0;
  background: radial-gradient(circle 2px at 20% 30%, #fff 0%, transparent 100%),
              radial-gradient(circle 3px at 60% 10%, #fff 0%, transparent 100%),
              radial-gradient(circle 2px at 80% 40%, #fff 0%, transparent 100%),
              radial-gradient(circle 1px at 35% 60%, #fff 0%, transparent 100%),
              radial-gradient(circle 2px at 70% 20%, #fff 0%, transparent 100%);
  background-size: 100% 100%;
  animation: cci-twinkle 4s ease-in-out infinite alternate;
}
.scn-christmas-carol-intro .stable-wall {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 50%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
  transform-origin: bottom center;
  animation: cci-wall 8s ease-in-out infinite;
}
.scn-christmas-carol-intro .stable-roof {
  position: absolute; bottom: 68%; left: 25%; right: 25%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(5% 100%, 50% 20%, 95% 100%);
  box-shadow: 0 -8px 20px rgba(0,0,0,0.5);
  animation: cci-roof 8s ease-in-out infinite alternate;
}
.scn-christmas-carol-intro .manger {
  position: absolute; bottom: 22%; left: 45%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: translateX(-50%);
  animation: cci-manger 9s ease-in-out infinite;
}
.scn-christmas-carol-intro .figure-mary {
  position: absolute; bottom: 24%; left: 42%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a3a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cci-figure 6s ease-in-out infinite;
}
.scn-christmas-carol-intro .figure-shepherd {
  position: absolute; bottom: 24%; left: 58%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cci-figure 6s ease-in-out infinite reverse;
}
.scn-christmas-carol-intro .lantern {
  position: absolute; bottom: 45%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, #b07030 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.6), 0 0 60px 20px rgba(255,208,128,0.3);
  animation: cci-lantern 3s ease-in-out infinite alternate;
}
.scn-christmas-carol-intro .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
@keyframes cci-twinkle {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes cci-wall {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
  100% { transform: scaleY(1); }
}
@keyframes cci-roof {
  0% { transform: translateY(0); }
  100% { transform: translateY(-1px); }
}
@keyframes cci-manger {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes cci-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes cci-lantern {
  0% { box-shadow: 0 0 20px 8px rgba(255,208,128,0.4), 0 0 40px 16px rgba(255,208,128,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 16px rgba(255,220,140,0.7), 0 0 80px 30px rgba(255,220,140,0.4); opacity: 1; }
  100% { box-shadow: 0 0 25px 10px rgba(255,208,128,0.5), 0 0 50px 20px rgba(255,208,128,0.25); opacity: 0.9; }
}

/* Christmas Carol - Angels (dawn, calm) */
.scn-christmas-carol-angels {
  background:
    radial-gradient(ellipse 150% 70% at 50% 100%, #4a3a5a 0%, transparent 60%),
    linear-gradient(180deg, #2a2a4a 0%, #5a4a6a 30%, #8a7a9a 60%, #c0b0c0 100%);
  position: relative;
  overflow: hidden;
}
.scn-christmas-carol-angels .sky-dawn {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e0c0d0 0%, #f0d8c0 50%, #ffe8d0 100%);
  opacity: 0.3;
  animation: cca-sky 12s ease-in-out infinite alternate;
}
.scn-christmas-carol-angels .sun-glow {
  position: absolute; top: 20%; left: 50%; width: 100px; height: 100px;
  background: radial-gradient(circle, #ffe080 0%, #d0a060 40%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: cca-sun 15s ease-in-out infinite alternate;
}
.scn-christmas-carol-angels .angel-1 {
  position: absolute; bottom: 35%; left: 25%; width: 60px; height: 90px;
  background: linear-gradient(180deg, rgba(255,240,220,0.8) 0%, rgba(200,180,160,0.4) 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: cca-angel 8s ease-in-out infinite;
}
.scn-christmas-carol-angels .angel-2 {
  position: absolute; bottom: 30%; right: 30%; width: 50px; height: 80px;
  background: linear-gradient(180deg, rgba(255,230,210,0.7) 0%, rgba(180,160,140,0.3) 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: cca-angel 10s ease-in-out infinite reverse;
  transform: scaleX(-1);
}
.scn-christmas-carol-angels .halo-1 {
  position: absolute; top: 22%; left: 26%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  animation: cca-halo 3s ease-in-out infinite alternate;
}
.scn-christmas-carol-angels .halo-2 {
  position: absolute; top: 18%; right: 32%; width: 16px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  animation: cca-halo 3s ease-in-out infinite alternate-reverse;
}
.scn-christmas-carol-angels .clouds {
  position: absolute; top: 10%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse 40% 80% at 10% 50%, rgba(255,255,255,0.3) 0%, transparent 100%),
              radial-gradient(ellipse 50% 70% at 70% 30%, rgba(255,255,255,0.2) 0%, transparent 100%);
  filter: blur(10px);
  animation: cca-cloud 30s linear infinite;
}
.scn-christmas-carol-angels .horizon {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 5%;
  background: linear-gradient(180deg, #6a5a5a 0%, transparent 100%);
  border-radius: 30% 30% 0 0 / 100% 100% 0 0;
}
@keyframes cca-sky {
  0% { opacity: 0.2; }
  50% { opacity: 0.4; }
  100% { opacity: 0.25; }
}
@keyframes cca-sun {
  0% { transform: translate(-50%, -50%) scale(0.9); opacity: 0.6; }
  50% { transform: translate(-50%, -50%) scale(1.1); opacity: 1; }
  100% { transform: translate(-50%, -50%) scale(0.95); opacity: 0.8; }
}
@keyframes cca-angel {
  0% { transform: translateY(0) rotate(-2deg); opacity: 0.6; }
  25% { transform: translateY(-5px) rotate(1deg); opacity: 0.9; }
  50% { transform: translateY(-2px) rotate(-1deg); opacity: 0.8; }
  75% { transform: translateY(-6px) rotate(2deg); opacity: 1; }
  100% { transform: translateY(0) rotate(0deg); opacity: 0.7; }
}
@keyframes cca-halo {
  0% { transform: scale(0.8); opacity: 0.5; }
  50% { transform: scale(1.3); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.6; }
}
@keyframes cca-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(-20%); }
}

/* Christmas Carol - Mother (dim interior, warm) */
.scn-christmas-carol-mother {
  background:
    radial-gradient(ellipse 80% 90% at 50% 80%, #2a1a0e 0%, transparent 60%),
    linear-gradient(180deg, #1a120e 0%, #2a1a0e 30%, #3a2a1a 60%, #1a120a 100%);
  position: relative;
  overflow: hidden;
}
.scn-christmas-carol-mother .room-wall {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.7);
}
.scn-christmas-carol-mother .window {
  position: absolute; bottom: 55%; left: 50%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border: 4px solid #2a1a0a;
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: inset 0 0 10px rgba(100,100,200,0.2);
  animation: ccm-window 8s ease-in-out infinite alternate;
}
.scn-christmas-carol-mother .cradle {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: ccm-cradle 6s ease-in-out infinite;
}
.scn-christmas-carol-mother .figure-mother {
  position: absolute; bottom: 25%; left: 37%; width: 32px; height: 60px;
  background: linear-gradient(180deg, #2a1a3a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ccm-mother 7s ease-in-out infinite;
}
.scn-christmas-carol-mother .candle {
  position: absolute; bottom: 60%; left: 30%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #ffd080 0%, #b07030 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: ccm-candle 4s ease-in-out infinite;
}
.scn-christmas-carol-mother .candle-glow {
  position: absolute; bottom: 58%; left: 30%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffc060 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: ccm-glow 3s ease-in-out infinite alternate;
}
.scn-christmas-carol-mother .shadow {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #0a0a0a 100%);
  opacity: 0.5;
  animation: ccm-shadow 10s ease-in-out infinite alternate;
}
@keyframes ccm-window {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}
@keyframes ccm-cradle {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
}
@keyframes ccm-mother {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ccm-candle {
  0% { transform: rotate(-3deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes ccm-glow {
  0% { transform: translate(-50%, -50%) scale(0.8); opacity: 0.5; }
  50% { transform: translate(-50%, -50%) scale(1.2); opacity: 1; }
  100% { transform: translate(-50%, -50%) scale(0.9); opacity: 0.7; }
}
@keyframes ccm-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.5; }
}

/* Christmas Carol - Query (overcast, tense) */
.scn-christmas-carol-query {
  background:
    radial-gradient(ellipse 100% 80% at 50% 100%, #2a3a2a 0%, transparent 60%),
    linear-gradient(180deg, #4a4a4a 0%, #3a3a3a 30%, #2a2a2a 60%, #1a1a1a 100%);
  position: relative;
  overflow: hidden;
}
.scn-christmas-carol-query .overcast-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 50%, #3a3a3a 100%);
  animation: ccq-sky 10s ease-in-out infinite alternate;
}
.scn-christmas-carol-query .hill {
  position: absolute; bottom: 35%; left: -10%; right: -10%; height: 20%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  opacity: 0.8;
  animation: ccq-hill 15s ease-in-out infinite alternate;
}
.scn-christmas-carol-query .figure-shepherd-1 {
  position: absolute; bottom: 25%; left: 30%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ccq-figure 4s ease-in-out infinite;
}
.scn-christmas-carol-query .figure-shepherd-2 {
  position: absolute; bottom: 25%; left: 60%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ccq-figure 4s ease-in-out infinite alternate;
}
.scn-christmas-carol-query .staff {
  position: absolute; bottom: 28%; left: 33%; width: 3px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: ccq-staff 3s ease-in-out infinite alternate;
}
.scn-christmas-carol-query .shadow-figure {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 30px;
  background: linear-gradient(180deg, transparent 0%, #0a0a0a 100%);
  border-radius: 50%;
  filter: blur(8px);
  transform: translateX(-50%);
  animation: ccq-shadow 7s ease-in-out infinite;
}
.scn-christmas-carol-query .rocks {
  position: absolute; bottom: 30%; left: 10%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ccq-rocks 8s ease-in-out infinite alternate;
}
.scn-christmas-carol-query .wind-streaks {
  position: absolute; top: 20%; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, transparent 0%, rgba(200,200,200,0.05) 10%, transparent 20%);
  background-size: 200% 100%;
  animation: ccq-wind 5s linear infinite;
}
@keyframes ccq-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ccq-hill {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(1.01); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes ccq-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ccq-staff {
  0% { transform: rotate(12deg); }
  50% { transform: rotate(18deg); }
  100% { transform: rotate(14deg); }
}
@keyframes ccq-shadow {
  0% { transform: translateX(-50%) scale(1); opacity: 0.5; }
  50% { transform: translateX(-50%) scale(1.05); opacity: 0.7; }
  100% { transform: translateX(-50%) scale(1); opacity: 0.5; }
}
@keyframes ccq-rocks {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes ccq-wind {
  0% { background-position: 0% 0%; }
  100% { background-position: -200% 0%; }
}

/* ============================================================ */
/* kubla-khan-notes-continued (kknc) */
.scn-kubla-khan-notes-continued {
  background:
    radial-gradient(ellipse at 50% 80%, #3a2a1e 0%, #1a1010 70%),
    linear-gradient(180deg, #1a1010 0%, #2c1e14 50%, #1a1010 100%);
}
.scn-kubla-khan-notes-continued .desk {
  position:absolute; bottom:0; left:5%; right:5%; height:35%;
  background: linear-gradient(180deg, #4a3020 0%, #2c1a0e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-kubla-khan-notes-continued .wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #1e1410 0%, #2c1e14 40%, #1a1010 100%);
}
.scn-kubla-khan-notes-continued .candle {
  position:absolute; bottom:38%; left:45%; width:12px; height:50px;
  background: linear-gradient(180deg, #d4b88a 0%, #b09070 100%);
  border-radius: 2px 2px 6px 6px;
  box-shadow: 2px 0 6px rgba(0,0,0,.4);
  transform-origin: bottom center;
  animation: kknc-candle 8s ease-in-out infinite alternate;
}
.scn-kubla-khan-notes-continued .flame {
  position:absolute; bottom:68%; left:45%; width:8px; height:18px;
  background: radial-gradient(circle, #fce8b0 0%, #f0b040 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 6px #f0b040, 0 0 40px 12px rgba(240,176,64,.3);
  animation: kknc-flame 4s ease-in-out infinite alternate;
}
.scn-kubla-khan-notes-continued .inkwell {
  position:absolute; bottom:36%; left:34%; width:20px; height:22px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.5);
  animation: kknc-float 12s ease-in-out infinite alternate;
}
.scn-kubla-khan-notes-continued .paper-stack {
  position:absolute; bottom:34%; left:48%; width:70px; height:8px;
  background: linear-gradient(180deg, #d4c8a0 0%, #bfb090 100%);
  border-radius: 2px;
  box-shadow: 0 4px 10px rgba(0,0,0,.3);
  transform: rotate(-2deg);
}
.scn-kubla-khan-notes-continued .hand {
  position:absolute; bottom:37%; left:54%; width:16px; height:28px;
  background: linear-gradient(180deg, #3a2a22 0%, #1e1814 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: 50% 90%;
  animation: kknc-hand 6s ease-in-out infinite alternate;
}
@keyframes kknc-candle {
  0% { transform: rotate(-0.5deg); }
  50% { transform: rotate(0.5deg) scaleY(1.01); }
  100% { transform: rotate(-0.4deg); }
}
@keyframes kknc-flame {
  0% { transform: scale(1) translate(0,0); opacity: .9; }
  25% { transform: scale(1.08, 1.15) translate(-1px,-2px); opacity: 1; }
  50% { transform: scale(0.95, 0.9) translate(1px,1px); opacity: .8; }
  75% { transform: scale(1.05, 1.1) translate(-0.5px,-1px); opacity: 1; }
  100% { transform: scale(1) translate(0,0); opacity: .9; }
}
@keyframes kknc-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes kknc-hand {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* ============================================================ */
/* kubla-khan-quotation (kkq) */
.scn-kubla-khan-quotation {
  background:
    radial-gradient(ellipse at 50% 90%, #2c2018 0%, #1a1010 70%),
    linear-gradient(180deg, #14100c 0%, #1e1612 100%);
}
.scn-kubla-khan-quotation .bg-bookshelf {
  position:absolute; bottom:25%; left:0; right:0; height:55%;
  background: repeating-linear-gradient(90deg, #2c1e14 0px, #2c1e14 4px, #1e1410 4px, #1e1410 8px);
  border-radius: 0 0 4% 4%;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.6);
}
.scn-kubla-khan-quotation .lamp-base {
  position:absolute; bottom:32%; left:20%; width:20px; height:30px;
  background: linear-gradient(180deg, #7a6040 0%, #4a3220 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-kubla-khan-quotation .lamp-glow {
  position:absolute; bottom:45%; left:19%; width:24px; height:24px;
  background: radial-gradient(circle, #fff0c0 0%, #f0c860 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #f0c860, 0 0 60px 20px rgba(240,200,96,.3);
  animation: kkq-lamp 7s ease-in-out infinite alternate;
}
.scn-kubla-khan-quotation .open-book {
  position:absolute; bottom:28%; left:38%; width:120px; height:14px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 20% 20% 4% 4%;
  box-shadow: 0 12px 20px rgba(0,0,0,.5);
}
.scn-kubla-khan-quotation .page-left {
  position:absolute; bottom:31%; left:38%; width:58px; height:20px;
  background: linear-gradient(135deg, #e8dcc0 0%, #c8b898 100%);
  border-radius: 10% 0 0 20%;
  transform-origin: right bottom;
  animation: kkq-page 10s ease-in-out infinite alternate;
}
.scn-kubla-khan-quotation .page-right {
  position:absolute; bottom:31%; left:59%; width:58px; height:20px;
  background: linear-gradient(225deg, #e8dcc0 0%, #c8b898 100%);
  border-radius: 0 10% 20% 0;
  transform-origin: left bottom;
  animation: kkq-page 10s ease-in-out infinite alternate-reverse;
}
.scn-kubla-khan-quotation .figure-back {
  position:absolute; bottom:24%; left:62%; width:28px; height:48px;
  background: linear-gradient(180deg, #2a241e 0%, #1c1612 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: -8px 0 12px rgba(0,0,0,.4);
  animation: kkq-figure 8s ease-in-out infinite alternate;
}
@keyframes kkq-lamp {
  0% { opacity: .85; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: .9; transform: scale(0.98); }
}
@keyframes kkq-page {
  0% { transform: rotateY(0deg); }
  50% { transform: rotateY(8deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes kkq-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* ============================================================ */
/* kubla-khan-more-notes (kkmn) */
.scn-kubla-khan-more-notes {
  background:
    radial-gradient(ellipse at 50% 70%, #2c2018 0%, #14100c 70%),
    linear-gradient(180deg, #1a1410 0%, #0c0806 100%);
}
.scn-kubla-khan-more-notes .tabletop {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #4a3220 0%, #2c1a0e 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.7);
}
.scn-kubla-khan-more-notes .candle-top {
  position:absolute; bottom:36%; left:28%; width:14px; height:40px;
  background: linear-gradient(180deg, #dcc8a0 0%, #b8a080 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 2px 0 4px rgba(0,0,0,.5);
}
.scn-kubla-khan-more-notes .candle-body {
  position:absolute; bottom:36%; left:28%; width:14px; height:40px;
  background: linear-gradient(180deg, #c8b090 0%, #a08868 100%);
  border-radius: 2px 2px 4px 4px;
  opacity: .7;
  animation: kkmn-melt 10s ease-in-out infinite alternate;
}
.scn-kubla-khan-more-notes .flame-dance {
  position:absolute; bottom:64%; left:28%; width:10px; height:20px;
  background: radial-gradient(circle, #fff4c0 0%, #f0c040 60%, transparent 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 24px 8px #f0c040, 0 0 50px 15px rgba(240,192,64,.25);
  animation: kkmn-flame 5s ease-in-out infinite alternate;
}
.scn-kubla-khan-more-notes .letter-pile {
  position:absolute; bottom:28%; left:42%; width:80px; height:12px;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a880 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
  transform: rotate(2deg);
}
.scn-kubla-khan-more-notes .quill {
  position:absolute; bottom:34%; left:65%; width:4px; height:36px;
  background: linear-gradient(180deg, #c8b8a0 0%, #8a7a6a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(10deg);
  transform-origin: 50% 90%;
  animation: kkmn-quill 7s ease-in-out infinite alternate;
}
.scn-kubla-khan-more-notes .ink-drop {
  position:absolute; bottom:32%; left:65%; width:6px; height:6px;
  background: radial-gradient(circle, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,.3);
  animation: kkmn-drop 12s linear infinite;
}
@keyframes kkmn-melt {
  0% { height: 40px; }
  50% { height: 38px; }
  100% { height: 40px; }
}
@keyframes kkmn-flame {
  0% { transform: scale(1) translate(0,0); opacity: .9; }
  30% { transform: scale(1.12,1.2) translate(-1px,-2px); opacity: 1; }
  60% { transform: scale(0.9,0.85) translate(1px,1px); opacity: .8; }
  100% { transform: scale(1) translate(0,0); opacity: .9; }
}
@keyframes kkmn-quill {
  0% { transform: rotate(8deg) translateY(0); }
  50% { transform: rotate(14deg) translateY(-2px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes kkmn-drop {
  0% { transform: translateY(0) scale(1); opacity: .6; }
  50% { transform: translateY(3px) scale(0.8); opacity: .4; }
  100% { transform: translateY(6px) scale(0.5); opacity: 0; }
}

/* ============================================================ */
/* kubla-khan-further-notes (kkfn) */
.scn-kubla-khan-further-notes {
  background:
    radial-gradient(ellipse at 80% 60%, #2a1c14 0%, #14100c 70%),
    linear-gradient(180deg, #0c0806 0%, #1a1410 50%, #0c0806 100%);
}
.scn-kubla-khan-further-notes .night-window {
  position:absolute; top:5%; right:10%; width:30%; height:45%;
  background: linear-gradient(180deg, #1a1a30 0%, #2a2a50 100%);
  border: 6px solid #3a2a20;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  overflow: hidden;
}
.scn-kubla-khan-further-notes .desk-ledge {
  position:absolute; bottom:0; left:0; right:0; height:28%;
  background: linear-gradient(180deg, #4a3220 0%, #2c1a0e 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.7);
}
.scn-kubla-khan-further-notes .book-stack {
  position:absolute; bottom:30%; left:14%; width:60px; height:18px;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 4px;
  box-shadow: 0 8px 12px rgba(0,0,0,.5);
  transform: rotate(2deg);
}
.scn-kubla-khan-further-notes .spine-a {
  position:absolute; bottom:36%; left:12%; width:6px; height:14px;
  background: linear-gradient(180deg, #7a4a30 0%, #4a2a18 100%);
  border-radius: 2px;
  box-shadow: 0 0 6px rgba(0,0,0,.3);
}
.scn-kubla-khan-further-notes .spine-b {
  position:absolute; bottom:38%; left:22%; width:6px; height:12px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
}
.scn-kubla-khan-further-notes .ice-figure {
  position:absolute; bottom:22%; left:55%; width:18px; height:34px;
  background: linear-gradient(180deg, #c0dce8 0%, #80b0c8 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 4px rgba(128,176,200,.4);
  opacity: .7;
  animation: kkfn-ice 8s ease-in-out infinite alternate;
}
.scn-kubla-khan-further-notes .ice-glow {
  position:absolute; bottom:22%; left:55%; width:40px; height:40px;
  background: radial-gradient(circle, rgba(128,200,220,.3) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
  animation: kkfn-glow 8s ease-in-out infinite alternate;
}
.scn-kubla-khan-further-notes .candle-warm {
  position:absolute; bottom:36%; left:42%; width:8px; height:16px;
  background: radial-gradient(circle, #fce8b0 0%, #e0a840 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px #e0a840, 0 0 32px 8px rgba(224,168,64,.2);
  animation: kkfn-candle 6s ease-in-out infinite alternate;
}
@keyframes kkfn-ice {
  0% { transform: scale(1); opacity: .65; }
  50% { transform: scale(1.02); opacity: .75; }
  100% { transform: scale(0.98); opacity: .65; }
}
@keyframes kkfn-glow {
  0% { transform: scale(1); opacity: .4; }
  50% { transform: scale(1.2); opacity: .6; }
  100% { transform: scale(0.9); opacity: .4; }
}
@keyframes kkfn-candle {
  0% { transform: scale(1); opacity: .85; }
  50% { transform: scale(1.08,1.15) translate(-1px,-1px); opacity: 1; }
  100% { transform: scale(1); opacity: .85; }
}

/* to-two-sisters-memory */
.scn-to-two-sisters-memory { background: linear-gradient(135deg, #2a1a0a 0%, #4a2a1a 40%, #6a3a2a 100%), radial-gradient(ellipse at 70% 20%, #6a3a2a 0%, transparent 70%); }
.scn-to-two-sisters-memory .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); animation: mem-bg 12s ease-in-out infinite alternate; }
.scn-to-two-sisters-memory .window { position:absolute; top:8%; left:60%; width:30%; height:45%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border:6px solid #4a3a2a; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: mem-window 8s ease-in-out infinite; }
.scn-to-two-sisters-memory .lamp { position:absolute; bottom:20%; left:15%; width:20px; height:30px; background: radial-gradient(circle at 50% 20%, #ffd080 0%, #c08040 60%, #8a5a2a 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 40px 12px #c08040; animation: mem-lamp 4s ease-in-out infinite alternate; }
.scn-to-two-sisters-memory .figure { position:absolute; bottom:10%; left:25%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mem-fig 6s ease-in-out infinite; }
.scn-to-two-sisters-memory .music-stand { position:absolute; bottom:10%; left:45%; width:30px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: mem-stand 5s ease-in-out infinite alternate; }
.scn-to-two-sisters-memory .notes { position:absolute; bottom:15%; left:45%; width:20px; height:25px; background: radial-gradient(ellipse, #fff 0%, transparent 70%); border-radius:50%; filter: blur(2px); animation: mem-notes 2s ease-in-out infinite; }
.scn-to-two-sisters-memory .shadow { position:absolute; bottom:0; left:20%; width:40%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.6) 100%); border-radius:50%; filter: blur(8px); animation: mem-shadow 10s ease-in-out infinite alternate; }
@keyframes mem-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mem-window { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.02) translateY(-3px) } 100% { transform: scale(1) translateY(0) } }
@keyframes mem-lamp { 0% { box-shadow: 0 0 30px 8px #c08040; opacity:0.9 } 50% { box-shadow: 0 0 50px 16px #ffd080; opacity:1 } 100% { box-shadow: 0 0 35px 10px #c08040; opacity:0.95 } }
@keyframes mem-fig { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mem-stand { 0% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(2deg) scale(1.05) } 100% { transform: rotate(-1deg) scale(1) } }
@keyframes mem-notes { 0% { opacity:0.3; transform: translateY(0) } 50% { opacity:0.6; transform: translateY(-8px) } 100% { opacity:0.3; transform: translateY(0) } }
@keyframes mem-shadow { 0% { opacity:0.4; transform: scaleY(1) } 50% { opacity:0.6; transform: scaleY(0.95) } 100% { opacity:0.4; transform: scaleY(1) } }

/* to-two-sisters-stranger */
.scn-to-two-sisters-stranger { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 20% 80%, #4a3a2a 0%, transparent 60%); }
.scn-to-two-sisters-stranger .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.4); animation: str-floor 15s ease-in-out infinite alternate; }
.scn-to-two-sisters-stranger .wall { position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); animation: str-wall 12s ease-in-out infinite alternate; }
.scn-to-two-sisters-stranger .mirror { position:absolute; top:10%; left:55%; width:25%; height:50%; background: linear-gradient(180deg, #6a5a4a 0%, #2a1a0a 100%); border:4px solid #4a3a2a; border-radius:4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 0 15px rgba(0,0,0,0.5); animation: str-mirror 8s ease-in-out infinite; }
.scn-to-two-sisters-stranger .stranger-fig { position:absolute; bottom:28%; left:60%; width:25px; height:55px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: str-stranger 5s ease-in-out infinite; }
.scn-to-two-sisters-stranger .observer { position:absolute; bottom:26%; left:30%; width:28px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: str-obs 7s ease-in-out infinite alternate; }
.scn-to-two-sisters-stranger .candle { position:absolute; bottom:20%; left:20%; width:8px; height:18px; background: linear-gradient(180deg, #ffd080 0%, #c08040 100%); border-radius:2px; box-shadow: 0 0 20px 6px #c08040; animation: str-candle 3s ease-in-out infinite alternate; }
.scn-to-two-sisters-stranger .doorway { position:absolute; top:5%; left:10%; width:20%; height:70%; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border:4px solid #3a2a1a; border-radius:0 0 4px 4px; animation: str-door 10s ease-in-out infinite; }
@keyframes str-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes str-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes str-mirror { 0% { transform: scaleY(1) rotate(-1deg) } 50% { transform: scaleY(1.02) rotate(1deg) } 100% { transform: scaleY(1) rotate(0) } }
@keyframes str-stranger { 0% { transform: scaleX(-1) translateX(0) } 25% { transform: scaleX(-1) translateX(4px) } 50% { transform: scaleX(-1) translateX(8px) } 75% { transform: scaleX(-1) translateX(4px) } 100% { transform: scaleX(-1) translateX(0) } }
@keyframes str-obs { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(-5px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes str-candle { 0% { transform: scaleY(1) rotate(-2deg); box-shadow: 0 0 15px 4px #c08040 } 50% { transform: scaleY(1.1) rotate(2deg); box-shadow: 0 0 25px 8px #ffd080 } 100% { transform: scaleY(1) rotate(0); box-shadow: 0 0 18px 5px #c08040 } }
@keyframes str-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } 100% { transform: scaleX(1) } }

/* to-two-sisters-grief */
.scn-to-two-sisters-grief { background: linear-gradient(180deg, #0a0a1a 0%, #1a0a1a 50%, #2a0a0a 100%), radial-gradient(ellipse at 50% 80%, #1a0a1a 0%, transparent 70%); }
.scn-to-two-sisters-grief .bg-grave { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 100%); animation: grf-bg 15s ease-in-out infinite alternate; }
.scn-to-two-sisters-grief .grave-mound { position:absolute; bottom:20%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 5px 10px rgba(0,0,0,0.6); animation: grf-mound 10s ease-in-out infinite alternate; }
.scn-to-two-sisters-grief .cross { position:absolute; bottom:30%; left:48%; width:4px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:2px; transform: translateX(-50%); box-shadow: 0 0 4px rgba(0,0,0,0.5); animation: grf-cross 6s ease-in-out infinite; }
.scn-to-two-sisters-grief .cross::before { content:''; position:absolute; top:-6px; left:-8px; width:20px; height:4px; background: inherit; border-radius:2px; } /* horizontal bar */
.scn-to-two-sisters-grief .orphan { position:absolute; bottom:15%; left:35%; width:24px; height:45px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0000 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: grf-orphan 8s ease-in-out infinite alternate; }
.scn-to-two-sisters-grief .flame { position:absolute; bottom:22%; left:30%; width:6px; height:12px; background: radial-gradient(ellipse at 50% 20%, #ff8040 0%, #c04020 100%); border-radius:50%; box-shadow: 0 0 20px 6px #c04020; animation: grf-flame 3s ease-in-out infinite alternate; }
.scn-to-two-sisters-grief .ghost { position:absolute; top:10%; left:40%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 30%, rgba(200,200,220,0.3) 0%, transparent 70%); border-radius:50%; filter: blur(10px); animation: grf-ghost 20s ease-in-out infinite; }
.scn-to-two-sisters-grief .tear { position:absolute; bottom:18%; left:38%; width:4px; height:6px; background: radial-gradient(circle, rgba(200,220,255,0.8) 0%, transparent 100%); border-radius:50%; animation: grf-tear 4s ease-in-out infinite; }
@keyframes grf-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes grf-mound { 0% { transform: scale(1,1) } 50% { transform: scale(1.02,0.98) } 100% { transform: scale(1,1) } }
@keyframes grf-cross { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes grf-orphan { 0% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-3px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes grf-flame { 0% { transform: scaleY(0.9) rotate(-5deg); box-shadow: 0 0 15px 4px #c04020 } 50% { transform: scaleY(1.1) rotate(5deg); box-shadow: 0 0 25px 8px #ff8040 } 100% { transform: scaleY(1) rotate(0); box-shadow: 0 0 18px 5px #c04020 } }
@keyframes grf-ghost { 0% { opacity:0.2; transform: translateY(0) scale(1) } 50% { opacity:0.5; transform: translateY(-15px) scale(1.1) } 100% { opacity:0.2; transform: translateY(0) scale(1) } }
@keyframes grf-tear { 0% { opacity:0; transform: translateY(0) } 50% { opacity:0.8; transform: translateY(-10px) } 100% { opacity:0; transform: translateY(0) } }

/* to-two-sisters-notes */
.scn-to-two-sisters-notes { background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%), radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, transparent 70%); }
.scn-to-two-sisters-notes .desk { position:absolute; bottom:5%; left:10%; width:80%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow: inset 0 4px 10px rgba(0,0,0,0.4); animation: not-desk 20s ease-in-out infinite alternate; }
.scn-to-two-sisters-notes .book { position:absolute; bottom:18%; left:25%; width:30%; height:15%; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: not-book 12s ease-in-out infinite; }
.scn-to-two-sisters-notes .quill { position:absolute; bottom:22%; left:45%; width:3px; height:25px; background: linear-gradient(180deg, #c08040 0%, #6a4020 100%); transform: rotate(-20deg); transform-origin: bottom; border-radius:1px; animation: not-quill 5s ease-in-out infinite alternate; }
.scn-to-two-sisters-notes .inkwell { position:absolute; bottom:16%; left:50%; width:12px; height:14px; background: radial-gradient(ellipse at 50% 30%, #2a1a0a 0%, #0a0000 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,0.6); animation: not-inkwell 8s ease-in-out infinite; }
.scn-to-two-sisters-notes .candle-desk { position:absolute; bottom:22%; left:15%; width:6px; height:12px; background: linear-gradient(180deg, #ffd080 0%, #c08040 100%); border-radius:2px; box-shadow: 0 0 18px 6px #c08040; animation: not-candle 4s ease-in-out infinite alternate; }
.scn-to-two-sisters-notes .window-night { position:absolute; top:2%; right:5%; width:25%; height:40%; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 100%); border:3px solid #3a2a1a; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: not-window 18s ease-in-out infinite alternate; }
.scn-to-two-sisters-notes .departing-fig { position:absolute; bottom:5%; right:8%; width:20px; height:45px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); opacity:0.7; animation: not-fig 15s ease-in-out infinite; }
@keyframes not-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes not-book { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0) } }
@keyframes not-quill { 0% { transform: rotate(-25deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-20deg) } }
@keyframes not-inkwell { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes not-candle { 0% { box-shadow: 0 0 14px 4px #c08040; transform: scaleY(0.95) } 50% { box-shadow: 0 0 22px 8px #ffd080; transform: scaleY(1.05) } 100% { box-shadow: 0 0 16px 5px #c08040; transform: scaleY(1) } }
@keyframes not-window { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.7 } }
@keyframes not-fig { 0% { transform: scaleX(-1) translateX(0) opacity:0.7 } 50% { transform: scaleX(-1) translateX(10px) opacity:0.4 } 100% { transform: scaleX(-1) translateX(0) opacity:0.7 } }

/* talleyrand-motto */
.scn-talleyrand-motto { background: linear-gradient(180deg, #120a06 0%, #1a0f08 40%, #2a1a0e 100%), radial-gradient(ellipse at 50% 80%, #3a2010 0%, transparent 70%); }
.scn-talleyrand-motto .bg-deep { position:absolute; inset:0; background: linear-gradient(135deg, #0d0804 0%, #1a0e06 100%); }
.scn-talleyrand-motto .desk { position:absolute; bottom:8%; left:5%; right:5%; height:20%; background: linear-gradient(180deg, #3a2515 0%, #2a1a0a 100%); border-radius:4px 4px 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,.5); }
.scn-talleyrand-motto .scroll { position:absolute; bottom:22%; left:15%; width:45%; height:18%; background: linear-gradient(135deg, #d4b896 0%, #b89a78 50%, #a08060 100%); border-radius:6px 6px 50% 50% / 10px 10px 80% 80%; transform: rotate(-3deg); box-shadow: inset 0 -4px 8px rgba(0,0,0,.3); animation: tm-scroll 6s ease-in-out infinite; }
.scn-talleyrand-motto .quill { position:absolute; bottom:30%; left:38%; width:60px; height:8px; background: linear-gradient(90deg, #4a3a2a 0%, #6a5030 60%, #8a7040 100%); border-radius:0 4px 4px 0; transform: rotate(-30deg); transform-origin: 0% 100%; animation: tm-quill 4s ease-in-out infinite alternate; }
.scn-talleyrand-motto .ink { position:absolute; bottom:15%; left:12%; width:16px; height:18px; background: radial-gradient(circle at 40% 30%, #2a1a10 0%, #0d0603 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.6); }
.scn-talleyrand-motto .candle { position:absolute; bottom:25%; left:60%; width:10px; height:40px; background: linear-gradient(180deg, #f0d0a0 0%, #d0b080 60%, #a08060 100%); border-radius:3px 3px 2px 2px; box-shadow: -1px 0 3px rgba(0,0,0,.4); animation: tm-candle 8s ease-in-out infinite; }
.scn-talleyrand-motto .glow { position:absolute; bottom:40%; left:60%; width:40px; height:40px; margin:-20px 0 0 -20px; background: radial-gradient(circle, rgba(255,200,100,.25) 0%, transparent 70%); border-radius:50%; animation: tm-glow 2s ease-in-out infinite alternate; }
@keyframes tm-scroll { 0% { transform: rotate(-3deg) translateY(0); } 33% { transform: rotate(-2deg) translateY(-3px); } 66% { transform: rotate(-4deg) translateY(1px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes tm-quill { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-5px); } 100% { transform: rotate(-32deg) translateY(2px); } }
@keyframes tm-candle { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } }
@keyframes tm-glow { 0% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:.7; transform: scale(.9); } }

/* talleyrand-salutation */
.scn-talleyrand-salutation { background: linear-gradient(180deg, #140c08 0%, #1e120a 50%, #2a180e 100%), radial-gradient(ellipse at 50% 100%, #3a2010 0%, transparent 80%); }
.scn-talleyrand-salutation .bg-shadows { position:absolute; inset:0; background: linear-gradient(135deg, #0d0806 0%, #1a0e08 100%); }
.scn-talleyrand-salutation .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0f06 100%); }
.scn-talleyrand-salutation .figure { position:absolute; bottom:15%; left:35%; width:22%; height:60%; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ts-figure 8s ease-in-out infinite; }
.scn-talleyrand-salutation .hat { position:absolute; bottom:65%; left:38%; width:18%; height:12%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e06 100%); border-radius: 60% 60% 10% 10% / 80% 80% 20% 20%; transform: rotate(-5deg); box-shadow: 0 -3px 5px rgba(0,0,0,.4); animation: ts-hat 6s ease-in-out infinite; }
.scn-talleyrand-salutation .coat { position:absolute; bottom:28%; left:33%; width:26%; height:40%; background: linear-gradient(180deg, #3a2015 0%, #2a180e 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%); animation: ts-coat 10s ease-in-out infinite; }
.scn-talleyrand-salutation .arm { position:absolute; bottom:35%; left:55%; width:15%; height:25%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius:40% 40% 10% 10%; transform: rotate(30deg); transform-origin: 0% 100%; animation: ts-arm 7s ease-in-out infinite alternate; }
.scn-talleyrand-salutation .letter { position:absolute; bottom:40%; left:60%; width:12%; height:15%; background: linear-gradient(135deg, #d4b896 0%, #b89a78 100%); border-radius:2px; transform: rotate(15deg); box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: ts-letter 5s ease-in-out infinite; }
@keyframes ts-figure { 0%,100% { transform: scaleY(1) translateX(0); } 25% { transform: scaleY(1.01) translateX(3px); } 50% { transform: scaleY(.98) translateX(-2px); } 75% { transform: scaleY(1.02) translateX(1px); } }
@keyframes ts-hat { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-4px); } 100% { transform: rotate(-3deg) translateY(2px); } }
@keyframes ts-coat { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } }
@keyframes ts-arm { 0% { transform: rotate(30deg); } 50% { transform: rotate(35deg); } 100% { transform: rotate(28deg); } }
@keyframes ts-letter { 0% { transform: rotate(15deg) translateY(0); } 33% { transform: rotate(12deg) translateY(-3px); } 66% { transform: rotate(18deg) translateY(2px); } 100% { transform: rotate(15deg) translateY(0); } }

/* talleyrand-identity */
.scn-talleyrand-identity { background: linear-gradient(180deg, #0d0806 0%, #1a0e0a 40%, #2a160e 100%), radial-gradient(circle at 40% 60%, #3a1a10 0%, transparent 70%); }
.scn-talleyrand-identity .bg-walls { position:absolute; inset:0; background: linear-gradient(135deg, #0a0503 0%, #120a06 100%); }
.scn-talleyrand-identity .figure-torso { position:absolute; bottom:15%; left:25%; width:30%; height:65%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ti-torso 12s ease-in-out infinite; }
.scn-talleyrand-identity .collar { position:absolute; bottom:68%; left:30%; width:20%; height:8%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 40% 40% 10% 10%; clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%); animation: ti-collar 7s ease-in-out infinite alternate; }
.scn-talleyrand-identity .pointing-arm { position:absolute; bottom:30%; left:50%; width:18%; height:40%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 30% 30% 10% 10%; transform: rotate(20deg); transform-origin: 0% 100%; animation: ti-arm 5s ease-in-out infinite alternate; }
.scn-talleyrand-identity .hand-finger { position:absolute; bottom:55%; left:63%; width:10%; height:15%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(40deg); transform-origin: 0% 100%; animation: ti-hand 4s ease-in-out infinite; }
.scn-talleyrand-identity .candle-flame { position:absolute; bottom:70%; left:10%; width:8px; height:20px; background: linear-gradient(180deg, #ffd080 0%, #e0a050 60%, #804020 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 12px 4px rgba(255,180,80,.3); animation: ti-flame 1.5s ease-in-out infinite alternate; }
.scn-talleyrand-identity .glow-ring { position:absolute; bottom:68%; left:10%; width:30px; height:30px; margin:-15px 0 0 -15px; background: radial-gradient(circle, rgba(255,200,100,.15) 0%, transparent 70%); border-radius:50%; animation: ti-glow 3s ease-in-out infinite; }
@keyframes ti-torso { 0%,100% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.01) translateX(5px); } }
@keyframes ti-collar { 0% { transform: scaleX(1) rotate(0); } 50% { transform: scaleX(1.05) rotate(2deg); } 100% { transform: scaleX(.98) rotate(-1deg); } }
@keyframes ti-arm { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-5px); } 100% { transform: rotate(18deg) translateY(3px); } }
@keyframes ti-hand { 0% { transform: rotate(40deg) scale(1); } 33% { transform: rotate(35deg) scale(1.1); } 66% { transform: rotate(45deg) scale(.95); } 100% { transform: rotate(40deg) scale(1); } }
@keyframes ti-flame { 0% { transform: scaleY(1) translateY(0); opacity:.8; } 50% { transform: scaleY(1.15) translateY(-3px); opacity:1; } 100% { transform: scaleY(.9) translateY(2px); opacity:.9; } }
@keyframes ti-glow { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.3); } 100% { opacity:.4; transform: scale(.8); } }

/* talleyrand-established-forms */
.scn-talleyrand-established-forms { background: linear-gradient(180deg, #120a06 0%, #1a0e08 40%, #2a1a0e 100%), radial-gradient(ellipse at 50% 70%, #3a2010 0%, transparent 80%); }
.scn-talleyrand-established-forms .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0d0804 0%, #140a06 100%); }
.scn-talleyrand-established-forms .wall { position:absolute; bottom:15%; left:0; right:0; height:60%; background: linear-gradient(180deg, #2a1a0e 0%, #1a100a 100%); border-radius:0 0 30% 30% / 0 0 10% 10%; }
.scn-talleyrand-established-forms .pillar-left { position:absolute; bottom:18%; left:10%; width:12%; height:65%; background: linear-gradient(90deg, #3a2515 0%, #2a1a0e 50%, #1a0f06 100%); border-radius:6px 6px 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,.5); animation: te-pillar 12s ease-in-out infinite alternate; }
.scn-talleyrand-established-forms .pillar-right { position:absolute; bottom:18%; right:10%; width:12%; height:65%; background: linear-gradient(90deg, #1a0f06 0%, #2a1a0e 50%, #3a2515 100%); border-radius:6px 6px 0 0; box-shadow: inset 4px 0 8px rgba(0,0,0,.5); animation: te-pillar 12s ease-in-out infinite alternate; animation-delay: -6s; }
.scn-talleyrand-established-forms .keystone { position:absolute; bottom:78%; left:45%; width:10%; height:8%; background: linear-gradient(180deg, #4a3020 0%, #3a2010 100%); border-radius:4px 4px 0 0; clip-path: polygon(20% 0, 80% 0, 100% 100%, 0 100%); box-shadow: 0 -2px 6px rgba(0,0,0,.5); animation: te-keystone 7s ease-in-out infinite; }
.scn-talleyrand-established-forms .arch { position:absolute; bottom:70%; left:10%; width:80%; height:25%; border: 6px solid #3a2515; border-top: none; border-radius: 0 0 50% 50% / 0 0 80% 80%; background: transparent; box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: te-arch 15s ease-in-out infinite; }
.scn-talleyrand-established-forms .floor { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0f06 100); border-radius:30% 30% 0 0 / 10% 10% 0 0; }
@keyframes te-pillar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(.99); } }
@keyframes te-keystone { 0%,100% { transform: translateY(0) scale(1); } 33% { transform: translateY(-2px) scale(1.03); } 66% { transform: translateY(1px) scale(.98); } }
@keyframes te-arch { 0% { opacity:.7; } 50% { opacity:1; transform: scaleX(1.02); } 100% { opacity:.8; transform: scaleX(.98); } }

.scn-boccaccio-variants {
  background: linear-gradient(180deg, #1f1a18 0%, #2c2420 40%, #3a2e28 100%), radial-gradient(ellipse at 50% 30%, #4a3a2e 0%, transparent 70%);
}
.scn-boccaccio-variants .bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a201c 0%, transparent 60%); opacity:0.6; animation: bv-bg 15s ease-in-out infinite alternate;
}
.scn-boccaccio-variants .arch {
  position:absolute; top:8%; left:15%; right:15%; bottom:50%; background: linear-gradient(180deg, #4a3a2e 0%, #2a201c 100%); border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: bv-arch 20s ease-in-out infinite alternate;
}
.scn-boccaccio-variants .shelf {
  position:absolute; bottom:35%; left:10%; right:10%; height:8%; background: linear-gradient(0deg, #3a2a1e 0%, #5a4a3a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: bv-shelf 12s ease-in-out infinite;
}
.scn-boccaccio-variants .books {
  position:absolute; bottom:37%; left:12%; right:12%; height:14%; background: linear-gradient(90deg, #6a4a3a 0%, #8a6a4a 20%, #5a3a2a 40%, #7a5a3a 60%, #4a2a1a 80%, #6a4a2a 100%); border-radius: 2px; animation: bv-books 18s ease-in-out infinite alternate;
}
.scn-boccaccio-variants .figure {
  position:absolute; bottom:32%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bv-figure 4s ease-in-out infinite;
}
.scn-boccaccio-variants .flower {
  position:absolute; bottom:30%; left:52%; width:12px; height:12px; background: radial-gradient(circle, #c8a07a 0%, #a07850 70%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(200,160,122,0.5); animation: bv-flower 6s ease-in-out infinite alternate;
}
.scn-boccaccio-variants .stone {
  position:absolute; bottom:28%; left:58%; width:16px; height:10px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 40% 60% 50% 50%; animation: bv-stone 8s ease-in-out infinite alternate;
}
.scn-boccaccio-variants .window-glow {
  position:absolute; top:15%; left:45%; width:30px; height:40px; background: radial-gradient(circle at 50% 50%, rgba(230,200,160,0.4) 0%, transparent 70%); border-radius: 10%; animation: bv-window-glow 5s ease-in-out infinite alternate;
}
@keyframes bv-bg { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes bv-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes bv-shelf { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes bv-books { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes bv-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(24px) rotate(1deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes bv-flower { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.2) rotate(15deg); } 100% { transform: scale(1) rotate(5deg); } }
@keyframes bv-stone { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes bv-window-glow { 0% { opacity:0.3; box-shadow: 0 0 20px 5px rgba(230,200,160,0.2); } 50% { opacity:0.7; box-shadow: 0 0 40px 10px rgba(230,200,160,0.4); } 100% { opacity:0.4; box-shadow: 0 0 25px 6px rgba(230,200,160,0.3); } }

.scn-love-hope-patience-intro {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a3a4e 100%), radial-gradient(ellipse at 50% 60%, #3a3a5e 0%, transparent 70%);
}
.scn-love-hope-patience-intro .bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a2a40 0%, transparent 50%); opacity:0.5; animation: lhi-bg 20s ease-in-out infinite alternate;
}
.scn-love-hope-patience-intro .base {
  position:absolute; bottom:10%; left:5%; right:5%; height:20%; background: linear-gradient(180deg, #4a3a3e 0%, #2a1a1e 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.6); animation: lhi-base 15s ease-in-out infinite alternate;
}
.scn-love-hope-patience-intro .globe {
  position:absolute; bottom:25%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(circle at 40% 40%, #8a7a6a 0%, #5a4a3a 70%, #3a2a1a 100%); border-radius: 50%; box-shadow: 10px 10px 20px rgba(0,0,0,0.5), inset -5px -5px 10px rgba(0,0,0,0.3); animation: lhi-globe 25s ease-in-out infinite alternate;
}
.scn-love-hope-patience-intro .figure-love {
  position:absolute; bottom:22%; left:20%; width:22px; height:50px; background: linear-gradient(180deg, #c8553d 0%, #8a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lhi-love 5s ease-in-out infinite;
}
.scn-love-hope-patience-intro .figure-hope {
  position:absolute; bottom:22%; left:50%; width:22px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #6a8a6a 0%, #3a5a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lhi-hope 6s ease-in-out infinite 1s;
}
.scn-love-hope-patience-intro .figure-patience {
  position:absolute; bottom:22%; left:72%; width:22px; height:50px; background: linear-gradient(180deg, #7a6a8a 0%, #4a3a5a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lhi-patience 7s ease-in-out infinite 2s;
}
.scn-love-hope-patience-intro .halo-love {
  position:absolute; top:12%; left:18%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,85,61,0.4) 0%, transparent 70%); border-radius: 50%; animation: lhi-halo-love 4s ease-in-out infinite alternate;
}
.scn-love-hope-patience-intro .halo-hope {
  position:absolute; top:12%; left:48%; width:30px; height:30px; background: radial-gradient(circle, rgba(106,138,106,0.4) 0%, transparent 70%); border-radius: 50%; animation: lhi-halo-hope 5s ease-in-out infinite alternate 0.5s;
}
.scn-love-hope-patience-intro .halo-patience {
  position:absolute; top:12%; left:70%; width:30px; height:30px; background: radial-gradient(circle, rgba(122,106,138,0.4) 0%, transparent 70%); border-radius: 50%; animation: lhi-halo-patience 6s ease-in-out infinite alternate 1s;
}
@keyframes lhi-bg { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes lhi-base { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes lhi-globe { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(5deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(-5deg) scale(0.98); } }
@keyframes lhi-love { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes lhi-hope { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-2deg); } }
@keyframes lhi-patience { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(1deg); } }
@keyframes lhi-halo-love { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.2); } 100% { opacity:0.5; transform: scale(0.9); } }
@keyframes lhi-halo-hope { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.15); } 100% { opacity:0.5; transform: scale(0.95); } }
@keyframes lhi-halo-patience { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.1); } 100% { opacity:0.5; transform: scale(0.85); } }

.scn-love-hope-patience-two {
  background: linear-gradient(180deg, #1e1a28 0%, #2e2a3a 40%, #3e3a4a 100%), radial-gradient(ellipse at 50% 80%, #3a2a3a 0%, transparent 70%);
}
.scn-love-hope-patience-two .bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a2636 0%, transparent 60%); opacity:0.6; animation: lhp2-bg 18s ease-in-out infinite alternate;
}
.scn-love-hope-patience-two .ground {
  position:absolute; bottom:10%; left:0; right:0; height:15%; background: linear-gradient(180deg, #3a2a32 0%, #1a101a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: lhp2-ground 12s ease-in-out infinite alternate;
}
.scn-love-hope-patience-two .love-bending {
  position:absolute; bottom:15%; left:35%; width:25px; height:55px; background: linear-gradient(180deg, #c8553d 0%, #8a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lhp2-love 6s ease-in-out infinite;
}
.scn-love-hope-patience-two .dove {
  position:absolute; bottom:30%; left:40%; width:20px; height:15px; background: radial-gradient(circle at 50% 50%, #c0b0a0 0%, #a09080 100%); border-radius: 50% 50% 40% 60%; transform: rotate(-20deg); animation: lhp2-dove 4s ease-in-out infinite alternate;
}
.scn-love-hope-patience-two .patience-statue {
  position:absolute; bottom:15%; left:60%; width:22px; height:50px; background: linear-gradient(180deg, #7a6a7a 0%, #4a3a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lhp2-patience 8s ease-in-out infinite;
}
.scn-love-hope-patience-two .aura-love {
  position:absolute; bottom:30%; left:33%; width:40px; height:40px; background: radial-gradient(circle, rgba(200,85,61,0.3) 0%, transparent 70%); border-radius: 50%; animation: lhp2-aura-love 5s ease-in-out infinite alternate;
}
.scn-love-hope-patience-two .aura-patience {
  position:absolute; bottom:20%; left:58%; width:30px; height:50px; background: radial-gradient(circle, rgba(122,106,138,0.25) 0%, transparent 70%); border-radius: 50%; animation: lhp2-aura-patience 7s ease-in-out infinite alternate 1s;
}
.scn-love-hope-patience-two .shadow {
  position:absolute; bottom:8%; left:30%; width:30%; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); border-radius: 50%; animation: lhp2-shadow 6s ease-in-out infinite;
}
@keyframes lhp2-bg { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes lhp2-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes lhp2-love { 0% { transform: translateX(0) rotate(5deg); } 25% { transform: translateX(5px) rotate(-2deg); } 50% { transform: translateX(10px) rotate(3deg); } 75% { transform: translateX(15px) rotate(-5deg); } 100% { transform: translateX(20px) rotate(2deg); } }
@keyframes lhp2-dove { 0% { transform: translateY(0) rotate(-20deg); } 50% { transform: translateY(-8px) rotate(-15deg); } 100% { transform: translateY(0) rotate(-25deg); } }
@keyframes lhp2-patience { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes lhp2-aura-love { 0% { opacity:0.2; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.2); } 100% { opacity:0.3; transform: scale(0.9); } }
@keyframes lhp2-aura-patience { 0% { opacity:0.15; transform: scale(1); } 50% { opacity:0.4; transform: scale(1.15); } 100% { opacity:0.25; transform: scale(0.95); } }
@keyframes lhp2-shadow { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.5; transform: scaleX(1.2); } 100% { opacity:0.2; transform: scaleX(0.8); } }

.scn-love-hope-patience-notes {
  background: linear-gradient(180deg, #1a1a1e 0%, #2a2a30 50%, #3a3a40 100%), radial-gradient(ellipse at 50% 60%, #3a3a40 0%, transparent 70%);
}
.scn-love-hope-patience-notes .bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a2a32 0%, transparent 50%); opacity:0.5; animation: lhpn-bg 20s ease-in-out infinite alternate;
}
.scn-love-hope-patience-notes .desk {
  position:absolute; bottom:10%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.6); animation: lhpn-desk 15s ease-in-out infinite alternate;
}
.scn-love-hope-patience-notes .book-open {
  position:absolute; bottom:20%; left:35%; width:40px; height:30px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: lhpn-book 8s ease-in-out infinite alternate;
}
.scn-love-hope-patience-notes .candle {
  position:absolute; bottom:30%; left:55%; width:8px; height:20px; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 20% 20% 10% 10%; animation: lhpn-candle 6s ease-in-out infinite;
}
.scn-love-hope-patience-notes .flame {
  position:absolute; bottom:50%; left:55.5%; width:6px; height:10px; background: radial-gradient(circle at 50% 100%, #ffd080 0%, #ffa040 60%, transparent 100%); border-radius: 50% 50% 20% 20%; animation: lhpn-flame 2s ease-in-out infinite alternate;
}
.scn-love-hope-patience-notes .inkwell {
  position:absolute; bottom:20%; left:65%; width:14px; height:14px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.6); animation: lhpn-ink 12s ease-in-out infinite;
}
.scn-love-hope-patience-notes .scroll {
  position:absolute; bottom:18%; left:25%; width:30px; height:8px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-5deg); animation: lhpn-scroll 10s ease-in-out infinite alternate;
}
.scn-love-hope-patience-notes .glow-desk {
  position:absolute; bottom:25%; left:50%; width:60%; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(255,200,150,0.15) 0%, transparent 70%); border-radius: 50%; animation: lhpn-glow-desk 4s ease-in-out infinite alternate;
}
@keyframes lhpn-bg { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes lhpn-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes lhpn-book { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(0.98) rotate(-2deg); } }
@keyframes lhpn-candle { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes lhpn-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.8; } 50% { transform: scaleY(1.3) translateY(-2px); opacity:1; } 100% { transform: scaleY(0.8) translateY(1px); opacity:0.6; } }
@keyframes lhpn-ink { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes lhpn-scroll { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes lhpn-glow-desk { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

.scn-home-sweet-home {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 40%, #ffd700 70%, #fff8dc 100%),
    radial-gradient(ellipse at 50% 20%, #fff0b3 0%, transparent 50%);
}
.scn-home-sweet-home .hsh-sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(135,206,235,.6) 0%, transparent 60%);
  animation: hsh-skydrift 25s ease-in-out infinite alternate;
}
.scn-home-sweet-home .hsh-sun {
  position: absolute; top: 15%; left: 70%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffee88 0%, #ffd700 40%, transparent 60%);
  border-radius: 50%; filter: blur(4px);
  animation: hsh-sunrise 30s ease-in-out infinite alternate;
}
.scn-home-sweet-home .hsh-cottage {
  position: absolute; bottom: 20%; left: 40%; width: 140px; height: 100px;
  background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.2);
  animation: hsh-house 8s ease-in-out infinite;
}
.scn-home-sweet-home .hsh-roof {
  position: absolute; bottom: calc(20% + 100px); left: 36%; width: 160px; height: 50px;
  background: linear-gradient(135deg, #b04d1a 0%, #8b3a1a 50%, #5c240e 100%);
  clip-path: polygon(10% 100%, 50% 0%, 90% 100%);
  animation: hsh-roof 8s ease-in-out infinite;
}
.scn-home-sweet-home .hsh-window {
  position: absolute; bottom: 45%; left: 50%; width: 30px; height: 40px;
  background: radial-gradient(circle, #fff7b0 0%, #f0d060 60%, #b08030 100%);
  border-radius: 4px; box-shadow: 0 0 20px 6px #f0d060;
  animation: hsh-windowglow 3s ease-in-out infinite alternate;
}
.scn-home-sweet-home .hsh-door {
  position: absolute; bottom: 20%; left: 44%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #6b3a2a 0%, #4a2212 100%);
  border-radius: 4px 4px 0 0; box-shadow: inset 0 -4px 6px rgba(0,0,0,.3);
}
.scn-home-sweet-home .hsh-lawn {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7ec850 0%, #4a7a2a 100%);
  border-radius: 40% 0 0 0 / 80% 0 0 0;
  animation: hsh-lawnwave 12s ease-in-out infinite alternate;
}
.scn-home-sweet-home .hsh-flowers {
  position: absolute; bottom: 18%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ff6b6b 0%, #b84d3d 40%, transparent 60%);
  filter: blur(2px); animation: hsh-flowersway 6s ease-in-out infinite;
}
.scn-home-sweet-home .hsh-sunbeams {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, transparent, transparent 30px, rgba(255,255,200,.15) 30px, rgba(255,255,200,.15) 35px);
  animation: hsh-beams 10s linear infinite;
}
@keyframes hsh-skydrift { 0% { opacity: .7; transform: scale(1); } 50% { opacity: .85; transform: scale(1.02); } 100% { opacity: .75; transform: scale(1); } }
@keyframes hsh-sunrise { 0% { top: 20%; left: 60%; width: 60px; height: 60px; } 50% { top: 15%; left: 70%; width: 80px; height: 80px; } 100% { top: 18%; left: 65%; width: 70px; height: 70px; } }
@keyframes hsh-house { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hsh-roof { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hsh-windowglow { 0% { box-shadow: 0 0 12px 3px #e0b050; opacity: .8; } 50% { box-shadow: 0 0 30px 8px #ffd060; opacity: 1; } 100% { box-shadow: 0 0 16px 4px #e0b050; opacity: .85; } }
@keyframes hsh-lawnwave { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes hsh-flowersway { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hsh-beams { 0% { opacity: .3; } 50% { opacity: .5; } 100% { opacity: .3; } }

.scn-brocken-sovereign {
  background: 
    linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, #2a3a4a 70%, #1a2a3a 100%),
    radial-gradient(ellipse at 30% 50%, #5a6a7a 0%, transparent 60%);
}
.scn-brocken-sovereign .brs-sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(90,110,130,.5) 0%, transparent 50%); animation: brs-skydrift 20s ease-in-out infinite alternate;
}
.scn-brocken-sovereign .brs-clouds {
  position: absolute; top: 5%; left: 0; right: 0; height: 40%;
  background: 
    radial-gradient(ellipse at 30% 30%, rgba(180,190,200,.4) 0%, transparent 40%),
    radial-gradient(ellipse at 70% 50%, rgba(160,170,180,.3) 0%, transparent 40%);
  filter: blur(6px); animation: brs-clouddrift 35s linear infinite;
}
.scn-brocken-sovereign .brs-mountains {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%);
  clip-path: polygon(0% 100%, 10% 60%, 20% 80%, 35% 40%, 50% 70%, 65% 30%, 80% 55%, 90% 45%, 100% 65%, 100% 100%);
  animation: brs-mountain 15s ease-in-out infinite alternate;
}
.scn-brocken-sovereign .brs-firs {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 40%;
  background: linear-gradient(135deg, #1a3a1a 0%, #2a4a2a 50%, #1a3a1a 100%);
  clip-path: polygon(0% 100%, 5% 70%, 12% 90%, 20% 60%, 28% 85%, 35% 55%, 45% 80%, 55% 50%, 65% 75%, 75% 45%, 85% 70%, 95% 40%, 100% 60%, 100% 100%);
  animation: brs-firs 12s ease-in-out infinite alternate;
}
.scn-brocken-sovereign .brs-path {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 60%;
  background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 50%, #4a3a2a 100%);
  clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%);
  animation: brs-path 18s ease-in-out infinite alternate;
}
.scn-brocken-sovereign .brs-moss {
  position: absolute; bottom: 25%; left: 45%; width: 50px; height: 25px;
  background: radial-gradient(ellipse, #7a8a4a 0%, #5a6a3a 40%, transparent 60%);
  filter: blur(3px); animation: brs-moss 9s ease-in-out infinite;
}
.scn-brocken-sovereign .brs-lightshafts {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(60deg, transparent, transparent 40px, rgba(255,255,220,.1) 40px, rgba(255,255,220,.1) 45px);
  animation: brs-lightshafts 8s ease-in-out infinite alternate;
}
@keyframes brs-skydrift { 0% { opacity: .6; } 50% { opacity: .8; } 100% { opacity: .6; } }
@keyframes brs-clouddrift { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(20px) scaleX(1.05); } 100% { transform: translateX(-20px) scaleX(1); } }
@keyframes brs-mountain { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes brs-firs { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3px) rotate(-1deg); } 60% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes brs-path { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes brs-moss { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes brs-lightshafts { 0% { opacity: .2; transform: translateX(0); } 50% { opacity: .4; transform: translateX(5px); } 100% { opacity: .2; transform: translateX(0); } }

.scn-inward-life {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 70%, #4a4a5e 100%),
    radial-gradient(ellipse at 50% 60%, #4a4a5e 0%, transparent 50%);
}
.scn-inward-life .iwL-wall {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%); animation: iwL-wall 20s ease-in-out infinite alternate;
}
.scn-inward-life .iwL-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #4a3e32 0%, #3a2e22 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
}
.scn-inward-life .iwL-window {
  position: absolute; top: 15%; left: 35%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 60%, #3a4a5a 100%);
  border: 6px solid #5a4a3a; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
  animation: iwL-window 12s ease-in-out infinite alternate;
}
.scn-inward-life .iwL-window::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,255,240,.1) 0%, transparent 40%);
}
.scn-inward-life .iwL-table {
  position: absolute; bottom: 30%; left: 38%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: iwL-table 10s ease-in-out infinite;
}
.scn-inward-life .iwL-candle {
  position: absolute; bottom: 38%; left: 48%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 30%, #806040 100%);
  border-radius: 4px;
  animation: iwL-candle 4s ease-in-out infinite;
}
.scn-inward-life .iwL-glow {
  position: absolute; bottom: 35%; left: 42%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,100,.6) 0%, rgba(255,180,80,.2) 30%, transparent 70%);
  filter: blur(8px); animation: iwL-glow 3s ease-in-out infinite alternate;
}
.scn-inward-life .iwL-shadow {
  position: absolute; bottom: 24%; left: 40%; width: 100px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 70%);
  filter: blur(12px); animation: iwL-shadow 8s ease-in-out infinite alternate;
}
@keyframes iwL-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes iwL-window { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,.5); } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,.7); } 100% { box-shadow: inset 0 0 30px rgba(0,0,0,.6); } }
@keyframes iwL-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes iwL-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes iwL-glow { 0% { opacity: .6; transform: scale(1); } 50% { opacity: .9; transform: scale(1.2); } 100% { opacity: .7; transform: scale(1.1); } }
@keyframes iwL-shadow { 0% { opacity: .3; transform: scaleX(1); } 50% { opacity: .5; transform: scaleX(1.1); } 100% { opacity: .3; transform: scaleX(1); } }

.scn-stranger-impulses {
  background: 
    linear-gradient(180deg, #7a8a9a 0%, #6a7a8a 40%, #5a6a7a 70%, #4a5a6a 100%),
    radial-gradient(ellipse at 50% 30%, #8a9aaa 0%, transparent 50%);
}
.scn-stranger-impulses .sti-sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(120,140,160,.5) 0%, transparent 60%); animation: sti-skydrift 30s ease-in-out infinite alternate;
}
.scn-stranger-impulses .sti-clouds {
  position: absolute; top: 0; left: 0; right: 0; height: 50%;
  background: 
    radial-gradient(ellipse at 20% 30%, rgba(180,190,200,.3) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 50%, rgba(170,180,190,.2) 0%, transparent 40%);
  filter: blur(8px); animation: sti-clouddrift 45s linear infinite;
}
.scn-stranger-impulses .sti-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8a9a7a 0%, #6a7a5a 50%, #4a5a3a 100%);
  border-radius: 30% 0 0 0 / 60% 0 0 0;
  animation: sti-ground 20s ease-in-out infinite alternate;
}
.scn-stranger-impulses .sti-path {
  position: absolute; bottom: 20%; left: 40%; width: 80px; height: 30%;
  background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%);
  clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%);
  animation: sti-path 14s ease-in-out infinite alternate;
}
.scn-stranger-impulses .sti-tree {
  position: absolute; bottom: 30%; left: 20%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%);
  clip-path: polygon(40% 0%, 60% 0%, 80% 50%, 70% 100%, 30% 100%, 20% 50%);
  animation: sti-tree 12s ease-in-out infinite alternate;
}
.scn-stranger-impulses .sti-figure {
  position: absolute; bottom: 22%; left: 52%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sti-figure 8s ease-in-out infinite;
}
.scn-stranger-impulses .sti-bird {
  position: absolute; top: 30%; left: 60%; width: 30px; height: 10px;
  background: radial-gradient(ellipse, #3a4a3a 0%, transparent 60%);
  clip-path: polygon(0% 50%, 30% 0%, 50% 40%, 70% 0%, 100% 50%, 70% 100%, 50% 60%, 30% 100%);
  animation: sti-bird 15s ease-in-out infinite;
}
@keyframes sti-skydrift { 0% { opacity: .7; } 50% { opacity: .85; } 100% { opacity: .7; } }
@keyframes sti-clouddrift { 0% { transform: translateX(0); } 50% { transform: translateX(30px); } 100% { transform: translateX(-30px); } }
@keyframes sti-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes sti-path { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sti-tree { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(-2deg); } 60% { transform: translateY(1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sti-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(10px) translateY(0) rotate(-1deg); } 75% { transform: translateX(5px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes sti-bird { 0% { transform: translateX(0) translateY(0) scaleX(1); } 25% { transform: translateX(20px) translateY(-10px) scaleX(-1); } 50% { transform: translateX(40px) translateY(0) scaleX(1); } 75% { transform: translateX(20px) translateY(-5px) scaleX(-1); } 100% { transform: translateX(0) translateY(0) scaleX(1); } }

.scn-epitaph-on-infant {
  background: linear-gradient(135deg, #1a1410 0%, #2a1f15 40%, #1e1813 100%),
              radial-gradient(ellipse at 40% 30%, #3a2a1a 0%, transparent 50%);
}
.scn-epitaph-on-infant .room-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1f15 0%, #1a1410 100%); opacity: 0.6; animation: epi-wall 20s ease-in-out infinite alternate;
}
.scn-epitaph-on-infant .moonlight {
  position: absolute; top: 5%; right: 10%; width: 60px; height: 100px; background: radial-gradient(ellipse at center, rgba(180,170,160,0.2) 0%, transparent 70%); filter: blur(12px); animation: epi-moon 30s linear infinite;
}
.scn-epitaph-on-infant .cradle {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%); width: 120px; height: 50px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2215 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 -4px 12px rgba(0,0,0,0.5); animation: epi-cradle 6s ease-in-out infinite;
}
.scn-epitaph-on-infant .baby {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%); width: 30px; height: 18px; background: radial-gradient(ellipse, #c8a080 0%, #b08060 70%); border-radius: 50% 50% 40% 40%; animation: epi-baby 4s ease-in-out infinite;
}
.scn-epitaph-on-infant .mother {
  position: absolute; bottom: 28%; left: 35%; width: 20px; height: 60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(10deg); transform-origin: bottom center; animation: epi-mother 7s ease-in-out infinite alternate;
}
.scn-epitaph-on-infant .candle {
  position: absolute; bottom: 30%; left: 25%; width: 8px; height: 20px; background: linear-gradient(180deg, #ffd080 0%, #a06030 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 24px 8px rgba(255,180,60,0.5); animation: epi-candle 3s ease-in-out infinite alternate;
}
.scn-epitaph-on-infant .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(0deg, rgba(10,8,6,0.8) 0%, transparent 100%); animation: epi-shadow 12s ease-in-out infinite;
}
@keyframes epi-wall { 0% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes epi-moon { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(10px) scale(1.05) } 100% { transform: translateX(0) scale(1) } }
@keyframes epi-cradle { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(-2deg) translateY(-3px) } }
@keyframes epi-baby { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(0.95) } }
@keyframes epi-mother { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes epi-candle { 0% { box-shadow: 0 0 20px 6px rgba(255,180,60,0.4); opacity:0.9 } 50% { box-shadow: 0 0 32px 12px rgba(255,200,80,0.6); opacity:1 } 100% { box-shadow: 0 0 20px 6px rgba(255,180,60,0.4); opacity:0.9 } }
@keyframes epi-shadow { 0%,100% { opacity:0.8 } 50% { opacity:0.6 } }

.scn-virgins-cradle-hymn {
  background: linear-gradient(180deg, #1a1814 0%, #2a2218 40%, #1e1610 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 60%);
}
.scn-virgins-cradle-hymn .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1410 0%, #0e0a08 100%); animation: vir-bg 30s ease-in-out infinite alternate;
}
.scn-virgins-cradle-hymn .halo {
  position: absolute; top: 20%; left: 50%; transform: translateX(-50%); width: 140px; height: 140px; background: radial-gradient(circle, rgba(255,220,180,0.25) 0%, rgba(255,200,150,0.1) 50%, transparent 70%); border-radius: 50%; filter: blur(20px); animation: vir-halo 8s ease-in-out infinite;
}
.scn-virgins-cradle-hymn .mary {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%); width: 50px; height: 90px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: vir-mary 6s ease-in-out infinite alternate;
}
.scn-virgins-cradle-hymn .jesus {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%); width: 28px; height: 22px; background: radial-gradient(ellipse, #d0a080 0%, #b88060 80%); border-radius: 50% 50% 40% 40%; animation: vir-jesus 4s ease-in-out infinite;
}
.scn-virgins-cradle-hymn .swaddle {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%); width: 40px; height: 10px; background: linear-gradient(90deg, #b0a090 0%, #d0c0b0 50%, #b0a090 100%); border-radius: 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: vir-swaddle 5s ease-in-out infinite;
}
.scn-virgins-cradle-hymn .star {
  position: absolute; top: 8%; right: 15%; width: 12px; height: 12px; background: radial-gradient(circle, #ffe0a0 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,220,150,0.6); animation: vir-star 4s ease-in-out infinite alternate;
}
.scn-virgins-cradle-hymn .beam {
  position: absolute; top: 0; left: 30%; width: 8px; height: 100%; background: linear-gradient(180deg, rgba(255,235,200,0.15) 0%, transparent 100%); transform: skewX(-10deg); animation: vir-beam 15s linear infinite;
}
@keyframes vir-bg { 0%,100% { opacity:0.8 } 50% { opacity:0.6 } }
@keyframes vir-halo { 0% { transform: translateX(-50%) scale(0.95); opacity:0.7 } 50% { transform: translateX(-50%) scale(1.05); opacity:1 } 100% { transform: translateX(-50%) scale(0.95); opacity:0.7 } }
@keyframes vir-mary { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(-2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes vir-jesus { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } }
@keyframes vir-swaddle { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } }
@keyframes vir-star { 0% { box-shadow: 0 0 15px 4px rgba(255,220,150,0.5); opacity:0.8 } 50% { box-shadow: 0 0 30px 10px rgba(255,240,200,0.8); opacity:1 } 100% { box-shadow: 0 0 15px 4px rgba(255,220,150,0.5); opacity:0.8 } }
@keyframes vir-beam { 0% { opacity:0.1 } 50% { opacity:0.25 } 100% { opacity:0.1 } }

.scn-to-lady-offended {
  background: linear-gradient(180deg, #2a1c14 0%, #3a2a1e 40%, #1e140e 100%),
              radial-gradient(ellipse at 50% 40%, #4a3424 0%, transparent 60%);
}
.scn-to-lady-offended .scene-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1e1610 0%, #0e0a06 100%); opacity: 0.5; animation: off-bg 25s ease-in-out infinite alternate;
}
.scn-to-lady-offended .table {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 160px; height: 30px; background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: off-table 8s ease-in-out infinite;
}
.scn-to-lady-offended .gentleman {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 80px; background: linear-gradient(180deg, #3a2a20 0%, #1a120a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: off-gen 5s ease-in-out infinite;
}
.scn-to-lady-offended .lady {
  position: absolute; bottom: 25%; right: 30%; width: 28px; height: 80px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 40% 40% 25% 25% / 50% 50% 30% 30%; transform-origin: bottom center; animation: off-lady 6s ease-in-out infinite;
}
.scn-to-lady-offended .wine {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%); width: 16px; height: 24px; background: linear-gradient(180deg, #a03020 0%, #601010 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 10px 3px rgba(160,48,32,0.3); animation: off-wine 4s ease-in-out infinite;
}
.scn-to-lady-offended .gesture {
  position: absolute; bottom: 35%; left: 38%; width: 20px; height: 6px; background: #3a2a1a; border-radius: 30%; transform-origin: left center; animation: off-gesture 3s ease-in-out infinite;
}
.scn-to-lady-offended .shadow-fig {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, rgba(10,8,6,0.7) 0%, transparent 100%); animation: off-shadow 15s ease-in-out infinite;
}
@keyframes off-bg { 0%,100% { opacity:0.5 } 50% { opacity:0.7 } }
@keyframes off-table { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes off-gen { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(4px) } 100% { transform: rotate(5deg) translateX(0) } }
@keyframes off-lady { 0% { transform: rotate(-4deg) translateX(0) } 50% { transform: rotate(4deg) translateX(-3px) } 100% { transform: rotate(-4deg) translateX(0) } }
@keyframes off-wine { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(10deg) translateY(-2px) } }
@keyframes off-gesture { 0% { transform: rotate(-20deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-20deg) } }
@keyframes off-shadow { 0%,100% { opacity:0.7 } 50% { opacity:0.5 } }

.scn-reason-for-loves-blindness {
  background: linear-gradient(180deg, #1a1612 0%, #2a221a 40%, #1e1812 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 50%);
}
.scn-reason-for-loves-blindness .bg-circle {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(circle at 50% 40%, #2a1e14 0%, #120e0a 100%); animation: rea-bg 20s ease-in-out infinite alternate;
}
.scn-reason-for-loves-blindness .cupid-body {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); width: 50px; height: 80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: rea-cupid 6s ease-in-out infinite;
}
.scn-reason-for-loves-blindness .blindfold {
  position: absolute; bottom: 55%; left: 50%; transform: translateX(-50%); width: 40px; height: 10px; background: linear-gradient(90deg, #c0a890 0%, #a08070 100%); border-radius: 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: rea-blindfold 4s ease-in-out infinite alternate;
}
.scn-reason-for-loves-blindness .heart {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%); width: 30px; height: 28px; background: radial-gradient(ellipse at 50% 40%, #c8553d 0%, #a0461a 100%); border-radius: 50% 50% 20% 20%; clip-path: polygon(50% 15%, 65% 0%, 100% 15%, 100% 60%, 50% 100%, 0% 60%, 0% 15%, 35% 0%); animation: rea-heart 4s ease-in-out infinite;
}
.scn-reason-for-loves-blindness .arrow {
  position: absolute; bottom: 40%; left: 25%; width: 80px; height: 4px; background: linear-gradient(90deg, transparent, #a08060 30%, #c0a080 70%, transparent); transform: rotate(-20deg); border-radius: 50%; animation: rea-arrow 5s ease-in-out infinite;
}
.scn-reason-for-loves-blindness .sparkle {
  position: absolute; top: 20%; left: 20%; width: 6px; height: 6px; background: #ffd080; border-radius: 50%; box-shadow: 0 0 12px 4px rgba(255,200,100,0.6); animation: rea-sparkle 3s ease-in-out infinite alternate;
}
.scn-reason-for-loves-blindness .shadow-wing {
  position: absolute; bottom: 25%; left: 10%; width: 60px; height: 30px; background: linear-gradient(180deg, rgba(30,20,15,0.6) 0%, transparent 100%); border-radius: 50% 0% 50% 0%; transform: rotate(20deg); filter: blur(4px); animation: rea-wing 8s ease-in-out infinite;
}
@keyframes rea-bg { 0%,100% { opacity:0.6 } 50% { opacity:0.8 } }
@keyframes rea-cupid { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes rea-blindfold { 0% { transform: translateX(-50%) rotate(-4deg) } 100% { transform: translateX(-50%) rotate(4deg) } }
@keyframes rea-heart { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.08) } }
@keyframes rea-arrow { 0% { transform: rotate(-20deg) translateX(0); opacity:0.6 } 50% { transform: rotate(-15deg) translateX(10px); opacity:1 } 100% { transform: rotate(-20deg) translateX(0); opacity:0.6 } }
@keyframes rea-sparkle { 0% { opacity:0.5; transform: scale(0.8) } 100% { opacity:1; transform: scale(1.2) } }
@keyframes rea-wing { 0%,100% { transform: rotate(20deg) scaleX(1) } 50% { transform: rotate(25deg) scaleX(1.1) } }

.scn-talleyrand-apostate {
  background: linear-gradient(180deg, #2b1a10 0%, #3d2415 40%, #4a2a18 100%), radial-gradient(ellipse at 60% 30%, #5a3a20 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-talleyrand-apostate .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #4a3020 0%, #2b1a10 100%);
  animation: ta-wall 12s ease-in-out infinite alternate;
}
.scn-talleyrand-apostate .arch {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, #2b1a10 60%, transparent 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-talleyrand-apostate .candle {
  position: absolute; bottom: 38%; left: 38%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #f5e6c8 0%, #8a6a40 100%);
  border-radius: 3px 3px 0 0;
  box-shadow: 0 0 8px rgba(200,160,120,0.3);
  animation: ta-candle 3s ease-in-out infinite;
}
.scn-talleyrand-apostate .candle-glow {
  position: absolute; bottom: 42%; left: 38%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f5d6a0 0%, #cba070 40%, transparent 70%);
  border-radius: 50%;
  animation: ta-glow 2s ease-in-out infinite alternate;
}
.scn-talleyrand-apostate .figure {
  position: absolute; bottom: 20%; left: 42%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a0f08 0%, #0d0603 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ta-figure 6s ease-in-out infinite;
}
.scn-talleyrand-apostate .mitre {
  position: absolute; bottom: 52%; left: 43.5%; width: 14px; height: 16px;
  background: linear-gradient(180deg, #5a3a20 0%, #3d2415 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: ta-mitre 4s ease-in-out infinite;
}
.scn-talleyrand-apostate .shadow {
  position: absolute; bottom: 20%; left: 38%; width: 30px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: ta-shadow 4s ease-in-out infinite;
}
.scn-talleyrand-apostate .dust {
  position: absolute; top: 30%; left: 60%; width: 4px; height: 4px; border-radius: 50%;
  background: #c8a880;
  box-shadow: 0 0 4px #c8a880;
  animation: ta-dust 8s linear infinite;
}
@keyframes ta-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ta-candle {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
}
@keyframes ta-glow {
  0% { transform: scale(0.9); opacity: 0.7; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.8; }
}
@keyframes ta-figure {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(0deg); }
}
@keyframes ta-mitre {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
}
@keyframes ta-shadow {
  0%,100% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.2); opacity: 0.8; }
}
@keyframes ta-dust {
  0% { transform: translate(0,0) scale(1); opacity: 0.8; }
  25% { transform: translate(30px,-20px) scale(1.5); opacity: 0.4; }
  50% { transform: translate(60px,-10px) scale(1); opacity: 0.6; }
  75% { transform: translate(90px,-30px) scale(0.8); opacity: 0.3; }
  100% { transform: translate(120px,0) scale(1); opacity: 0.5; }
}

.scn-talleyrand-preface-digressive {
  background: linear-gradient(180deg, #2b1a10 0%, #3a2212 50%, #1f0f05 100%), radial-gradient(ellipse at 50% 40%, #4a2a18 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-talleyrand-preface-digressive .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #6a4a2e 0%, #3d2415 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
}
.scn-talleyrand-preface-digressive .scroll-left {
  position: absolute; bottom: 18%; left: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #d4b48c 0%, #b8946a 100%);
  border-radius: 50% / 40% 40% 60% 60%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: tp-scroll-l 10s ease-in-out infinite alternate;
}
.scn-talleyrand-preface-digressive .scroll-right {
  position: absolute; bottom: 18%; right: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #d4b48c 0%, #b8946a 100%);
  border-radius: 50% / 40% 40% 60% 60%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: tp-scroll-r 10s ease-in-out infinite alternate;
}
.scn-talleyrand-preface-digressive .scroll-unfold {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 40px;
  background: linear-gradient(90deg, #d4b48c 0%, #e6d0b0 50%, #d4b48c 100%);
  border-radius: 2px;
  box-shadow: inset 0 2px 4px rgba(255,255,255,0.2), 0 2px 8px rgba(0,0,0,0.3);
  animation: tp-unfold 12s ease-in-out infinite;
}
.scn-talleyrand-preface-digressive .hand {
  position: absolute; bottom: 22%; left: 48%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #c8a880 0%, #8a6a40 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: tp-hand 5s ease-in-out infinite;
}
.scn-talleyrand-preface-digressive .lantern {
  position: absolute; top: 20%; left: 15%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #8a6a40 0%, #4a2a18 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 10px rgba(200,160,100,0.2);
}
.scn-talleyrand-preface-digressive .lantern-glow {
  position: absolute; top: 15%; left: 12%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f5d6a0 0%, #cba070 40%, transparent 70%);
  border-radius: 50%;
  animation: tp-lantern-glow 4s ease-in-out infinite alternate;
}
.scn-talleyrand-preface-digressive .dust {
  position: absolute; top: 40%; left: 30%; width: 3px; height: 3px;
  background: #d4b48c; border-radius: 50%;
  box-shadow: 0 0 4px #d4b48c;
  animation: tp-dust 9s linear infinite;
}
@keyframes tp-scroll-l {
  0% { transform: translateY(0) rotate(0deg) scaleX(1); }
  50% { transform: translateY(-5px) rotate(-2deg) scaleX(1.05); }
  100% { transform: translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes tp-scroll-r {
  0% { transform: translateY(0) rotate(0deg) scaleX(1); }
  50% { transform: translateY(-5px) rotate(2deg) scaleX(1.05); }
  100% { transform: translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes tp-unfold {
  0%,100% { height: 40px; }
  50% { height: 50px; }
}
@keyframes tp-hand {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(5deg); }
}
@keyframes tp-lantern-glow {
  0% { transform: scale(0.9); opacity: 0.5; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(1); opacity: 0.7; }
}
@keyframes tp-dust {
  0% { transform: translate(0,0) scale(1); opacity: 0.6; }
  25% { transform: translate(20px,-15px) scale(1.3); opacity: 0.3; }
  50% { transform: translate(40px,-10px) scale(1); opacity: 0.5; }
  75% { transform: translate(60px,-25px) scale(0.8); opacity: 0.2; }
  100% { transform: translate(80px,0) scale(1); opacity: 0.4; }
}

.scn-talleyrand-straight-line {
  background: linear-gradient(180deg, #1f0f05 0%, #2b1a10 40%, #3a2212 100%), radial-gradient(ellipse at 50% 20%, #4a2a18 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-talleyrand-straight-line .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a2a18 0%, #2b1a10 100%);
}
.scn-talleyrand-straight-line .road {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 4px;
  background: linear-gradient(90deg, #8a6a40 0%, #b8946a 50%, #8a6a40 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-talleyrand-straight-line .tortoise {
  position: absolute; bottom: 26%; left: 10%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: inset 0 2px 4px rgba(255,255,255,0.1);
  animation: ts-tortoise 15s linear infinite;
}
.scn-talleyrand-straight-line .hare {
  position: absolute; bottom: 28%; left: 20%; width: 14px; height: 16px;
  background: linear-gradient(180deg, #b87878 0%, #9a5a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: ts-hare 6s ease-in-out infinite;
}
.scn-talleyrand-straight-line .bush-left {
  position: absolute; bottom: 30%; left: 8%; width: 20px; height: 15px;
  background: radial-gradient(ellipse, #2a4a2a 0%, #1a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-talleyrand-straight-line .bush-right {
  position: absolute; bottom: 30%; right: 8%; width: 20px; height: 15px;
  background: radial-gradient(ellipse, #2a4a2a 0%, #1a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-talleyrand-straight-line .candle {
  position: absolute; bottom: 40%; left: 50%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #f5e6c8 0%, #8a6a40 100%);
  border-radius: 2px 2px 0 0;
  transform: translateX(-50%);
  box-shadow: 0 0 6px rgba(200,160,120,0.2);
}
.scn-talleyrand-straight-line .candle-glow {
  position: absolute; bottom: 43%; left: 50%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f5d6a0 0%, #cba070 40%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: ts-glow 3s ease-in-out infinite alternate;
}
@keyframes ts-tortoise {
  0% { left: 5%; }
  50% { left: 45%; }
  100% { left: 85%; }
}
@keyframes ts-hare {
  0% { left: 10%; transform: translateY(0) rotate(0deg); }
  20% { left: 30%; transform: translateY(-5px) rotate(15deg); }
  40% { left: 20%; transform: translateY(2px) rotate(-20deg); }
  60% { left: 50%; transform: translateY(-8px) rotate(10deg); }
  80% { left: 40%; transform: translateY(3px) rotate(-5deg); }
  100% { left: 70%; transform: translateY(0) rotate(0deg); }
}
@keyframes ts-glow {
  0% { transform: translate(-50%, -50%) scale(0.9); opacity: 0.6; }
  50% { transform: translate(-50%, -50%) scale(1.2); opacity: 1; }
  100% { transform: translate(-50%, -50%) scale(1); opacity: 0.8; }
}

.scn-talleyrand-orations {
  background: linear-gradient(180deg, #1f0f05 0%, #2b1a10 30%, #3a2212 70%, #1f0f05 100%), radial-gradient(ellipse at 50% 20%, #4a2a18 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-talleyrand-orations .backdrop {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2212 0%, #2b1a10 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-talleyrand-orations .podium {
  position: absolute; bottom: 0; left: 40%; right: 40%; height: 35%;
  background: linear-gradient(180deg, #6a4a2e 0%, #3d2415 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-talleyrand-orations .speaker {
  position: absolute; bottom: 25%; left: 43%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a0f08 0%, #0d0603 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: to-speaker 8s ease-in-out infinite;
}
.scn-talleyrand-orations .mouse {
  position: absolute; bottom: 10%; left: 30%; width: 12px; height: 8px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: inset 0 1px 2px rgba(255,255,255,0.1);
  animation: to-mouse 4s ease-in-out infinite;
}
.scn-talleyrand-orations .pigeon {
  position: absolute; top: 15%; left: 60%; width: 18px; height: 12px;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  clip-path: polygon(0 50%, 100% 50%, 100% 80%, 0 80%);
  animation: to-pigeon 7s ease-in-out infinite;
}
.scn-talleyrand-orations .candle {
  position: absolute; bottom: 38%; left: 35%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #f5e6c8 0%, #8a6a40 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 6px rgba(200,160,120,0.2);
}
.scn-talleyrand-orations .candle-glow {
  position: absolute; bottom: 41%; left: 35%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f5d6a0 0%, #cba070 40%, transparent 70%);
  border-radius: 50%;
  animation: to-glow 3s ease-in-out infinite alternate;
}
.scn-talleyrand-orations .torch {
  position: absolute; bottom: 38%; right: 35%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #f5e6c8 0%, #8a6a40 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 6px rgba(200,160,120,0.2);
}
@keyframes to-speaker {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(3deg); }
}
@keyframes to-mouse {
  0%,100% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(15px) translateY(-2px); }
}
@keyframes to-pigeon {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-10px) rotate(-5deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-8px) rotate(5deg); }
}
@keyframes to-glow {
  0% { transform: scale(0.8); opacity: 0.5; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(1); opacity: 0.7; }
}

/* night-scene-sandoval */
.scn-night-scene-sandoval {
  background: linear-gradient(180deg, #0c0c1e 0%, #1a1a2e 40%, #2a2a3e 100%), radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 70%);
}
.scn-night-scene-sandoval .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #111128 0%, transparent 100%); animation: ns-sky 20s ease-in-out infinite alternate; }
.scn-night-scene-sandoval .dunes { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 60% 40% 0 0 / 70% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: ns-dunes 25s ease-in-out infinite alternate; }
.scn-night-scene-sandoval .pillar-left { position:absolute; bottom:35%; left:20%; width:12%; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.5); animation: ns-pillar 15s ease-in-out infinite; }
.scn-night-scene-sandoval .pillar-right { position:absolute; bottom:35%; right:20%; width:12%; height:55%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.5); animation: ns-pillar 18s ease-in-out infinite reverse; }
.scn-night-scene-sandoval .sand-cloud-a { position:absolute; top:25%; left:10%; width:40%; height:6%; background: radial-gradient(ellipse, rgba(240,220,180,.3) 0%, transparent 100%); filter: blur(12px); animation: ns-drift-a 30s linear infinite; }
.scn-night-scene-sandoval .sand-cloud-b { position:absolute; top:40%; right:5%; width:35%; height:5%; background: radial-gradient(ellipse, rgba(240,220,180,.2) 0%, transparent 100%); filter: blur(10px); animation: ns-drift-b 40s linear infinite reverse; }
.scn-night-scene-sandoval .figure-silhouette { position:absolute; bottom:30%; left:50%; width:3%; height:12%; transform:translateX(-50%); background: linear-gradient(180deg, #0a0a0a 0%, #050505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ns-figure 8s ease-in-out infinite alternate; }
@keyframes ns-sky { 0% { opacity:.7 } 33% { opacity:.9 } 66% { opacity:.8 } 100% { opacity:.6 } }
@keyframes ns-dunes { 0% { transform: translateY(0) scaleX(1) } 33% { transform: translateY(-4px) scaleX(1.02) } 66% { transform: translateY(2px) scaleX(0.98) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes ns-pillar { 0% { transform: scaleY(1) } 33% { transform: scaleY(0.97) } 66% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes ns-drift-a { 0% { transform: translateX(-20%) scale(1) } 50% { transform: translateX(80%) scale(1.3) } 100% { transform: translateX(-20%) scale(1) } }
@keyframes ns-drift-b { 0% { transform: translateX(20%) scale(1.2) } 50% { transform: translateX(-90%) scale(0.9) } 100% { transform: translateX(20%) scale(1.2) } }
@keyframes ns-figure { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) translateY(-3px) } 100% { transform: translateX(-50%) rotate(0) } }

/* hymn-makers-power */
.scn-hymn-makers-power {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a120a 100%), radial-gradient(ellipse at 50% 0%, #4a3a2a 0%, transparent 60%);
}
.scn-hymn-makers-power .back-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #1a120a 0%, #2a1a0a 50%, #1a120a 100%); animation: hm-wall 30s ease-in-out infinite alternate; }
.scn-hymn-makers-power .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 0 0 10% 10% / 0 0 20% 20%; box-shadow: inset 0 -10px 30px rgba(0,0,0,.8); }
.scn-hymn-makers-power .window-frame { position:absolute; top:10%; left:35%; width:30%; height:45%; background: transparent; border: 6px solid #3a2a1a; border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 30px rgba(0,0,0,.7); }
.scn-hymn-makers-power .window-light { position:absolute; top:12%; left:37%; width:26%; height:41%; background: radial-gradient(ellipse at center, #c8a868 0%, #a08040 50%, transparent 100%); opacity: .6; animation: hm-window 8s ease-in-out infinite alternate; }
.scn-hymn-makers-power .book { position:absolute; bottom:25%; left:45%; width:12%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: rotate(-5deg); animation: hm-book 12s ease-in-out infinite; }
.scn-hymn-makers-power .candle { position:absolute; bottom:30%; left:55%; width:2%; height:10%; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,.6); }
.scn-hymn-makers-power .candle-flame { position:absolute; bottom:39%; left:55.5%; width:1.2%; height:3%; background: radial-gradient(ellipse, #ffe080 0%, #d06020 50%, transparent 100%); filter: blur(1px); animation: hm-flame 3s ease-in-out infinite alternate; }
.scn-hymn-makers-power .kneeling-figure { position:absolute; bottom:20%; left:48%; width:6%; height:15%; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hm-figure 10s ease-in-out infinite alternate; }
@keyframes hm-wall { 0% { opacity:.95 } 33% { opacity:1 } 66% { opacity:.9 } 100% { opacity:.95 } }
@keyframes hm-window { 0% { opacity:.4 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes hm-book { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) } }
@keyframes hm-flame { 0% { transform: scaleX(1) scaleY(1) translateY(0) } 50% { transform: scaleX(1.2) scaleY(0.8) translateY(-2px) } 100% { transform: scaleX(1) scaleY(1) translateY(0) } }
@keyframes hm-figure { 0% { transform: translateY(0) rotate(0) } 33% { transform: translateY(-2px) rotate(1deg) } 66% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }

/* to-lady-falconer */
.scn-to-lady-falconer {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a0a00 100%), radial-gradient(ellipse at 80% 100%, #4a3a2a 0%, transparent 60%);
}
.scn-to-lady-falconer .room-wall { position:absolute; inset:0 0 15% 0; background: linear-gradient(90deg, #1a0a00 0%, #2a1a0a 50%, #1a0a00 100%); animation: lf-wall 25s ease-in-out infinite alternate; }
.scn-to-lady-falconer .room-floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 0 0 20% 20% / 0 0 30% 30%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.7); }
.scn-to-lady-falconer .window-view { position:absolute; top:8%; left:30%; width:40%; height:50%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 50%, #000 100%); border-radius: 20% 20% 10% 10%; overflow:hidden; box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-to-lady-falconer .window-view::after { content:''; position:absolute; inset:0; background: radial-gradient(ellipse at 30% 20%, rgba(200,180,150,.2) 0%, transparent 70%); animation: lf-sea 12s ease-in-out infinite alternate; }
.scn-to-lady-falconer .desk { position:absolute; bottom:18%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #4a2a1a 0%, #2a120a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-to-lady-falconer .map { position:absolute; bottom:22%; left:35%; width:30%; height:10%; background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 50%, #5a4a2a 100%); border-radius: 5% 20% 10% 20%; transform: rotate(-3deg); animation: lf-map 20s ease-in-out infinite; }
.scn-to-lady-falconer .lantern { position:absolute; bottom:28%; left:60%; width:4%; height:10%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 5px #b08040; animation: lf-lantern 6s ease-in-out infinite alternate; }
.scn-to-lady-falconer .lantern-glow { position:absolute; bottom:26%; left:58%; width:8%; height:14%; background: radial-gradient(ellipse, #d09050 0%, transparent 100%); opacity: .7; filter: blur(8px); animation: lf-glow 4s ease-in-out infinite alternate; }
.scn-to-lady-falconer .pen { position:absolute; bottom:26%; left:40%; width:0.5%; height:6%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 0 0 40% 40%; transform: rotate(20deg); animation: lf-pen 15s ease-in-out infinite alternate; }
@keyframes lf-wall { 0% { opacity:.9 } 33% { opacity:1 } 66% { opacity:.8 } 100% { opacity:.9 } }
@keyframes lf-sea { 0% { transform: translateY(0) } 33% { transform: translateY(-5px) } 66% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes lf-map { 0% { transform: rotate(-3deg) translateX(0) } 50% { transform: rotate(-1deg) translateX(5px) } 100% { transform: rotate(-3deg) translateX(0) } }
@keyframes lf-lantern { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes lf-glow { 0% { opacity:.5 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes lf-pen { 0% { transform: rotate(20deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(20deg) } }

/* human-life-immortality */
.scn-human-life-immortality {
  background: linear-gradient(180deg, #0a0a0a 0%, #141414 40%, #1a1a1a 100%), radial-gradient(ellipse at 50% 100%, #1a1a1a 0%, transparent 70%);
}
.scn-human-life-immortality .dark-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #050505 0%, #0a0a0a 50%, #050505 100%); animation: hl-wall 35s ease-in-out infinite alternate; }
.scn-human-life-immortality .dark-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #0a0a0a 0%, #000 100%); border-radius: 0 0 30% 30% / 0 0 40% 40%; box-shadow: inset 0 -15px 30px rgba(0,0,0,.9); }
.scn-human-life-immortality .blank-window { position:absolute; top:10%; left:30%; width:40%; height:45%; background: #050505; border: 6px solid #1a1a1a; border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 40px rgba(0,0,0,.8); }
.scn-human-life-immortality .blank-window::after { content:''; position:absolute; inset:0; background: radial-gradient(ellipse at center, rgba(255,255,255,.02) 0%, transparent 100%); }
.scn-human-life-immortality .table { position:absolute; bottom:28%; left:40%; width:20%; height:5%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.8); }
.scn-human-life-immortality .hourglass { position:absolute; bottom:33%; left:45%; width:3%; height:12%; background: transparent; border-left: 4px solid #3a3a3a; border-right: 4px solid #3a3a3a; border-radius: 20% 20% 0 0; }
.scn-human-life-immortality .hourglass::before { content:''; position:absolute; top:0; left:-4px; right:-4px; bottom:50%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); clip-path: polygon(0 0, 100% 0, 50% 100%); animation: hl-sand 6s ease-in-out infinite; }
.scn-human-life-immortality .candle { position:absolute; bottom:35%; left:55%; width:1.5%; height:7%; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 10% 10% 0 0; }
.scn-human-life-immortality .candle-flame { position:absolute; bottom:41%; left:55.3%; width:0.8%; height:2%; background: radial-gradient(ellipse, #4a4a3a 0%, #2a2a1a 50%, transparent 100%); filter: blur(1px); animation: hl-flame 4s ease-in-out infinite alternate; }
.scn-human-life-immortality .seated-figure { position:absolute; bottom:26%; left:38%; width:8%; height:18%; background: linear-gradient(180deg, #0a0a0a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hl-figure 12s ease-in-out infinite alternate; }
@keyframes hl-wall { 0% { opacity:.8 } 33% { opacity:.9 } 66% { opacity:.7 } 100% { opacity:.8 } }
@keyframes hl-sand { 0% { clip-path: polygon(0 0, 100% 0, 50% 100%); transform: scaleY(1) } 33% { clip-path: polygon(10% 0, 90% 0, 50% 100%); transform: scaleY(0.95) } 66% { clip-path: polygon(20% 0, 80% 0, 50% 100%); transform: scaleY(0.9) } 100% { clip-path: polygon(30% 0, 70% 0, 50% 100%); transform: scaleY(0.85) } }
@keyframes hl-flame { 0% { transform: scaleX(1) scaleY(1) translateY(0); opacity:.6 } 50% { transform: scaleX(1.3) scaleY(0.7) translateY(-1px); opacity:.9 } 100% { transform: scaleX(1) scaleY(1) translateY(0); opacity:.7 } }
@keyframes hl-figure { 0% { transform: translateY(0) rotate(0) } 33% { transform: translateY(3px) rotate(-2deg) } 66% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }

/* etna-death */
.scn-etna-death {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #4a2a2a 30%, #1a0a0a 80%),
    radial-gradient(ellipse at 50% 20%, #5e1a1d 0%, transparent 70%);
}
.scn-etna-death .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #3a2a2a 0%, transparent 100%);
  animation: etd-sky 12s ease-in-out infinite alternate;
}
.scn-etna-death .trees {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 35%;
  background: repeating-linear-gradient(90deg, #1a2a1a 0px, #1a2a1a 4px, #2a3a2a 4px, #2a3a2a 8px);
  border-radius: 30% 70% 0 0 / 100% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: etd-trees 18s ease-in-out infinite alternate;
}
.scn-etna-death .mist {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 30% 50%, rgba(100,80,80,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: etd-mist 25s ease-in-out infinite alternate;
}
.scn-etna-death .figure {
  position: absolute; bottom: 28%; 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: etd-figure 4s ease-in-out infinite;
}
.scn-etna-death .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #1a0a0a 0%, #2a1a1a 100%);
  border-radius: 20% 80% 0 0 / 50% 90% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.8);
  animation: etd-ground 8s ease-in-out infinite;
}
.scn-etna-death .spectre {
  position: absolute; bottom: 40%; left: 50%; width: 30px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, #5e1a1d 0%, transparent 70%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(6px);
  box-shadow: 0 0 40px 20px rgba(94,26,29,0.4);
  animation: etd-spectre 6s ease-in-out infinite alternate;
}
@keyframes etd-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes etd-trees { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes etd-mist { 0% { transform: translateX(-20px) scale(1); } 50% { transform: translateX(10px) scale(1.05); } 100% { transform: translateX(-20px) scale(1); } }
@keyframes etd-figure { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(2deg); } }
@keyframes etd-ground { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } }
@keyframes etd-spectre { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(0.95); } }

/* etna-notes */
.scn-etna-notes {
  background:
    linear-gradient(135deg, #1c1613 0%, #2a1f1a 50%, #1a1410 100%),
    radial-gradient(ellipse at 60% 40%, #8a6a4a 0%, transparent 70%);
}
.scn-etna-notes .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1c1613 0%, #251d19 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.7);
  animation: etn-wall 20s ease-in-out infinite alternate;
}
.scn-etna-notes .desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 25%;
  background: linear-gradient(180deg, #4a3525 0%, #2a1f15 100%);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: etn-desk 8s ease-in-out infinite;
}
.scn-etna-notes .lamp {
  position: absolute; bottom: 30%; left: 40%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 10px 2px #c08040;
  animation: etn-lamp 3s ease-in-out infinite alternate;
}
.scn-etna-notes .glow {
  position: absolute; bottom: 28%; left: 36%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(192,128,64,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: etn-glow 4s ease-in-out infinite alternate;
}
.scn-etna-notes .book {
  position: absolute; bottom: 12%; left: 30%; width: 50px; height: 15px;
  background: linear-gradient(180deg, #7a6050 0%, #4a3525 100%);
  border-radius: 5% 5% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: etn-book 6s ease-in-out infinite;
}
.scn-etna-notes .shadow {
  position: absolute; bottom: 5%; left: 20%; right: 20%; height: 15%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(15px);
  animation: etn-shadow 5s ease-in-out infinite alternate;
}
@keyframes etn-wall { 0%, 100% { opacity: 0.9; } 50% { opacity: 1; } }
@keyframes etn-desk { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes etn-lamp { 0% { opacity: 0.7; box-shadow: 0 0 8px 2px #a07040; } 50% { opacity: 1; box-shadow: 0 0 20px 6px #c08040; } 100% { opacity: 0.8; box-shadow: 0 0 12px 3px #a07040; } }
@keyframes etn-glow { 0% { transform: scale(0.9); opacity: 0.5; } 50% { transform: scale(1.1); opacity: 0.8; } 100% { transform: scale(1); opacity: 0.6; } }
@keyframes etn-book { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(0.5deg); } }
@keyframes etn-shadow { 0% { transform: scaleX(0.95); opacity: 0.3; } 50% { transform: scaleX(1.05); opacity: 0.5; } 100% { transform: scaleX(0.95); opacity: 0.3; } }

/* windy-brow-inscription */
.scn-windy-brow-inscription {
  background:
    linear-gradient(180deg, #a0a0a0 0%, #c0c0c0 40%, #808060 100%),
    radial-gradient(ellipse at 50% 30%, #d0d0c0 0%, transparent 80%);
}
.scn-windy-brow-inscription .sky-overcast {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b8b8b0 0%, #909090 100%);
  animation: wbi-sky 15s ease-in-out infinite alternate;
}
.scn-windy-brow-inscription .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: wbi-hills 20s ease-in-out infinite alternate;
}
.scn-windy-brow-inscription .stone {
  position: absolute; bottom: 30%; left: 43%; width: 40px; height: 28px;
  background: linear-gradient(180deg, #8a8a7a 0%, #5a5a4a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: wbi-stone 8s ease-in-out infinite;
}
.scn-windy-brow-inscription .grass {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 15%;
  background: repeating-linear-gradient(90deg, #5a6a3a 0px, #5a6a3a 3px, #4a5a2a 3px, #4a5a2a 6px);
  border-radius: 30% 70% 0 0 / 100% 40% 0 0;
  animation: wbi-grass 4s ease-in-out infinite;
}
.scn-windy-brow-inscription .wind-leaves {
  position: absolute; top: 20%; left: 0; right: 0; height: 10%;
  background: radial-gradient(circle at 20% 50%, rgba(120,130,80,0.6) 0%, transparent 50%);
  filter: blur(4px);
  animation: wbi-leaves 8s linear infinite;
}
.scn-windy-brow-inscription .clouds {
  position: absolute; top: 5%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,200,200,0.5) 0%, transparent 70%);
  filter: blur(12px);
  animation: wbi-clouds 40s linear infinite;
}
@keyframes wbi-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes wbi-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes wbi-stone { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } }
@keyframes wbi-grass { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(5px); } }
@keyframes wbi-leaves { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }
@keyframes wbi-clouds { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* windy-brow-reflection */
.scn-windy-brow-reflection {
  background:
    linear-gradient(180deg, #606060 0%, #404040 50%, #202020 100%),
    radial-gradient(ellipse at 50% 80%, #a08060 0%, transparent 80%);
}
.scn-windy-brow-reflection .sky-evening {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #707070 0%, #505050 100%);
  animation: wbr-sky 18s ease-in-out infinite alternate;
}
.scn-windy-brow-reflection .hills-back {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 60% 40% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,0.5);
  animation: wbr-hills 20s ease-in-out infinite alternate;
}
.scn-windy-brow-reflection .rock {
  position: absolute; bottom: 20%; left: 35%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: wbr-rock 10s ease-in-out infinite;
}
.scn-windy-brow-reflection .figure-sitting {
  position: absolute; bottom: 25%; left: 45%; width: 22px; height: 35px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wbr-figure 5s ease-in-out infinite;
}
.scn-windy-brow-reflection .grass-blades {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 12%;
  background: repeating-linear-gradient(45deg, #3a4a2a 0px, #3a4a2a 2px, #2a3a1a 2px, #2a3a1a 4px);
  border-radius: 50% 50% 0 0;
  animation: wbr-grass 3s ease-in-out infinite;
}
.scn-windy-brow-reflection .sun-glow {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(160,128,96,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(20px);
  animation: wbr-sun 6s ease-in-out infinite alternate;
}
@keyframes wbr-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes wbr-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes wbr-rock { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.3deg); } }
@keyframes wbr-figure { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(1deg); } }
@keyframes wbr-grass { 0%, 100% { transform: skewX(0deg); } 50% { transform: skewX(2deg); } }
@keyframes wbr-sun { 0% { transform: scale(0.9); opacity: 0.4; } 50% { transform: scale(1.1); opacity: 0.7; } 100% { transform: scale(1); opacity: 0.5; } }

.scn-dejection-variants-five {
  background:
    radial-gradient(ellipse at 50% 30%, #3a2e2a 0%, transparent 50%),
    linear-gradient(180deg, #1e1a18 0%, #2a2420 40%, #1c1816 100%);
}
.scn-dejection-variants-five .wall-shadow {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 80%);
  animation: dv5-shadow 14s ease-in-out infinite alternate;
}
.scn-dejection-variants-five .desk {
  position:absolute; bottom:0; left:5%; right:5%; height:45%;
  background: linear-gradient(180deg, #4a3830 0%, #2a1e18 100%);
  border-radius: 4% 4% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: dv5-desk 20s ease-in-out infinite;
}
.scn-dejection-variants-five .paper-stack {
  position:absolute; bottom:38%; left:30%; width:30%; height:12%;
  background: linear-gradient(180deg, #d4c8b0 0%, #b8a890 40%, #a0907a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.1);
  transform: rotate(-2deg) translateY(0);
  animation: dv5-paper 8s ease-in-out infinite alternate;
}
.scn-dejection-variants-five .inkwell {
  position:absolute; bottom:38%; left:58%; width:12px; height:16px;
  background: radial-gradient(circle at 50% 30%, #1a1412 0%, #0a0806 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
  transform: translateX(-50%);
  animation: dv5-ink 12s ease-in-out infinite;
}
.scn-dejection-variants-five .candle {
  position:absolute; bottom:36%; left:50%; width:8px; height:24px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 60%, #a0907a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 2px 4px rgba(255,255,255,.15), 0 4px 8px rgba(0,0,0,.3);
  transform: translateX(-50%);
  animation: dv5-candle 6s ease-in-out infinite alternate;
}
.scn-dejection-variants-five .candle-flame {
  position:absolute; bottom:62%; left:50%; width:6px; height:12px;
  background: radial-gradient(ellipse at 50% 40%, #ffd080 0%, #e89040 40%, #c06020 70%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(232,144,64,.4), 0 0 40px 12px rgba(232,144,64,.15);
  transform: translateX(-50%);
  animation: dv5-flame 2.5s ease-in-out infinite alternate;
}
.scn-dejection-variants-five .manuscript-edge {
  position:absolute; bottom:42%; left:28%; width:8px; height:6px;
  background: #c8b898;
  border-radius: 1px;
  box-shadow: 0 0 4px rgba(200,184,152,.3);
  transform: rotate(8deg);
  animation: dv5-edge 10s ease-in-out infinite;
}
.scn-dejection-variants-five .subtle-glare {
  position:absolute; inset: 20% 10% 50% 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,220,160,.06) 0%, transparent 60%);
  border-radius: 50%;
  animation: dv5-glare 7s ease-in-out infinite alternate;
}
@keyframes dv5-shadow { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes dv5-desk { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes dv5-paper { 0% { transform: rotate(-2deg) translateY(0); opacity:.9 } 50% { transform: rotate(-1deg) translateY(-2px); opacity:1 } 100% { transform: rotate(-2.5deg) translateY(0); opacity:.85 } }
@keyframes dv5-ink { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes dv5-candle { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) scaleY(1.02) } 100% { transform: translateX(-50%) } }
@keyframes dv5-flame { 0% { transform: translateX(-50%) scale(1) rotate(-3deg) } 50% { transform: translateX(-48%) scale(1.1) rotate(0) } 100% { transform: translateX(-52%) scale(.95) rotate(3deg) } }
@keyframes dv5-edge { 0%,100% { transform: rotate(8deg) } 50% { transform: rotate(6deg) translateX(2px) } }
@keyframes dv5-glare { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-dejection-variants-six {
  background:
    radial-gradient(ellipse at 50% 40%, #2a2420 0%, #1a1614 50%, #0e0c0a 100%),
    linear-gradient(90deg, #1e1a18 0%, #2a2420 30%, #1e1a18 70%, #14100e 100%);
}
.scn-dejection-variants-six .room-depth {
  position:absolute; inset: 10% 5% 15% 5%;
  background: linear-gradient(180deg, #1a1614 0%, #2a2420 30%, #1e1a18 70%, #14100e 100%);
  border-radius: 8px;
  transform: perspective(800px) rotateX(2deg);
  animation: dv6-depth 25s ease-in-out infinite;
}
.scn-dejection-variants-six .bookshelf-back {
  position:absolute; top:15%; left:8%; right:8%; height:55%;
  background: linear-gradient(180deg, #3a2e2a 0%, #2a1e1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
  display:flex; flex-wrap:wrap; align-content:flex-start; gap:2px;
  padding: 8px 4px;
  animation: dv6-shelf-bg 20s ease-in-out infinite alternate;
}
.scn-dejection-variants-six .bookshelf-back::before {
  content:''; position:absolute; inset:8px 4px; display:flex; flex-wrap:wrap; gap:2px;
  background: repeating-linear-gradient(90deg, #4a3a32 0px, #3a2a24 6px, #5a4a3e 12px);
  opacity:.3;
  border-radius:2px;
}
.scn-dejection-variants-six .bookshelf-front {
  position:absolute; top:13%; left:6%; right:6%; height:58%;
  background: linear-gradient(180deg, #5a4a3e 0%, #3a2e2a 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.05);
  transform: scaleX(.98);
  animation: dv6-shelf-f 18s ease-in-out infinite;
}
.scn-dejection-variants-six .reading-figure {
  position:absolute; bottom:22%; left:35%; width:28px; height:46px;
  background: linear-gradient(180deg, #1e1a18 0%, #0e0c0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dv6-figure 12s ease-in-out infinite alternate;
}
.scn-dejection-variants-six .open-book {
  position:absolute; bottom:18%; left:38%; width:24px; height:16px;
  background: linear-gradient(135deg, #d4c0a8 0%, #b8a088 50%, #a08870 100%);
  border-radius: 2px;
  transform: perspective(200px) rotateX(15deg) rotateY(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: dv6-book 10s ease-in-out infinite alternate;
}
.scn-dejection-variants-six .lamp-glow {
  position:absolute; bottom:35%; left:60%; width:10px; height:14px;
  background: radial-gradient(circle at 50% 60%, #ffd080 0%, #d09050 50%, transparent 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(208,144,80,.3), 0 0 60px 20px rgba(208,144,80,.1);
  animation: dv6-lamp 4s ease-in-out infinite alternate;
}
.scn-dejection-variants-six .floating-dust {
  position:absolute; top:20%; left:20%; width:4px; height:4px;
  background: rgba(232,216,192,.3);
  border-radius: 50%;
  box-shadow: 40px 30px 0 1px rgba(232,216,192,.2), 80px 60px 0 2px rgba(232,216,192,.15), 120px 20px 0 1px rgba(232,216,192,.25), 160px 50px 0 1px rgba(232,216,192,.1);
  animation: dv6-dust 45s linear infinite;
}
@keyframes dv6-depth { 0%,100% { transform: perspective(800px) rotateX(2deg) } 50% { transform: perspective(800px) rotateX(1.5deg) scale(1.01) } }
@keyframes dv6-shelf-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes dv6-shelf-f { 0%,100% { transform: scaleX(.98) } 50% { transform: scaleX(1) } }
@keyframes dv6-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes dv6-book { 0% { transform: perspective(200px) rotateX(15deg) rotateY(-5deg) } 50% { transform: perspective(200px) rotateX(12deg) rotateY(-3deg) } 100% { transform: perspective(200px) rotateX(16deg) rotateY(-6deg) } }
@keyframes dv6-lamp { 0% { box-shadow: 0 0 25px 8px rgba(208,144,80,.25); opacity:.8 } 50% { box-shadow: 0 0 40px 14px rgba(208,144,80,.4); opacity:1 } 100% { box-shadow: 0 0 30px 10px rgba(208,144,80,.3); opacity:.9 } }
@keyframes dv6-dust { 0% { transform: translateY(0) } 100% { transform: translateY(-100vh) } }

.scn-dejection-variants-seven {
  background:
    linear-gradient(180deg, #0e0c0a 0%, #1a1614 30%, #2a2420 60%, #1e1a18 100%),
    radial-gradient(ellipse at 50% 20%, #2a2420 0%, transparent 60%);
}
.scn-dejection-variants-seven .window-frame {
  position:absolute; top:10%; left:20%; right:20%; bottom:30%;
  border: 8px solid #3a2e2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 4px 16px rgba(0,0,0,.3);
  background: transparent;
  animation: dv7-frame 20s ease-in-out infinite alternate;
}
.scn-dejection-variants-seven .window-glass {
  position:absolute; top:10%; left:20%; right:20%; bottom:30%;
  background: linear-gradient(180deg, rgba(208,184,160,.08) 0%, rgba(160,140,120,.04) 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.2);
  animation: dv7-glass 15s ease-in-out infinite;
}
.scn-dejection-variants-seven .sill {
  position:absolute; bottom:28%; left:18%; right:18%; height:6px;
  background: linear-gradient(180deg, #4a3a32 0%, #2a1e18 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.scn-dejection-variants-seven .falling-page-a {
  position:absolute; top:15%; left:35%; width:10px; height:14px;
  background: linear-gradient(135deg, #d4c0a8 0%, #b8a088 100%);
  border-radius: 1px;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  transform-origin: center top;
  animation: dv7-fall-a 6s ease-in-out infinite;
}
.scn-dejection-variants-seven .falling-page-b {
  position:absolute; top:10%; left:55%; width:8px; height:12px;
  background: linear-gradient(135deg, #c8b898 0%, #a89078 100%);
  border-radius: 1px;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  transform-origin: center top;
  animation: dv7-fall-b 8s ease-in-out infinite 2s;
}
.scn-dejection-variants-seven .shadow-cast {
  position:absolute; top:5%; left:15%; right:15%; bottom:35%;
  background: linear-gradient(135deg, rgba(0,0,0,.4) 0%, transparent 60%);
  animation: dv7-shadow 22s ease-in-out infinite alternate;
}
.scn-dejection-variants-seven .curtain-l {
  position:absolute; top:8%; left:16%; right:76%; bottom:28%;
  background: linear-gradient(180deg, #2a2420 0%, #1a1614 50%, #0e0c0a 100%);
  border-radius: 4px 0 0 8px;
  box-shadow: 4px 0 12px rgba(0,0,0,.3);
  transform-origin: left top;
  animation: dv7-curl 25s ease-in-out infinite;
}
.scn-dejection-variants-seven .curtain-r {
  position:absolute; top:8%; left:76%; right:16%; bottom:28%;
  background: linear-gradient(180deg, #2a2420 0%, #1a1614 50%, #0e0c0a 100%);
  border-radius: 0 4px 8px 0;
  box-shadow: -4px 0 12px rgba(0,0,0,.3);
  transform-origin: right top;
  animation: dv7-cur-r 25s ease-in-out infinite 2s;
}
@keyframes dv7-frame { 0% { border-color: #3a2e2a } 50% { border-color: #4a3a32 } 100% { border-color: #2a1e18 } }
@keyframes dv7-glass { 0%,100% { opacity:.3 } 50% { opacity:.5 } }
@keyframes dv7-fall-a { 0% { transform: translateY(0) rotate(0) scale(1); opacity:1 } 50% { transform: translateY(30px) rotate(180deg) scale(.95); opacity:.8 } 100% { transform: translateY(60px) rotate(360deg) scale(.9); opacity:0 } }
@keyframes dv7-fall-b { 0% { transform: translateY(0) rotate(45deg) scale(1); opacity:1 } 50% { transform: translateY(40px) rotate(225deg) scale(.9); opacity:.7 } 100% { transform: translateY(80px) rotate(405deg) scale(.8); opacity:0 } }
@keyframes dv7-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.4 } }
@keyframes dv7-curl { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } }
@keyframes dv7-cur-r { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } }

.scn-dejection-variants-eight {
  background:
    radial-gradient(ellipse at 40% 50%, #2a2420 0%, #1a1614 50%, #0e0c0a 100%),
    linear-gradient(180deg, #1e1a18 0%, #14100e 50%, #0a0806 100%);
}
.scn-dejection-variants-eight .room-corner {
  position:absolute; inset: 5% 5% 10% 5%;
  background: linear-gradient(135deg, #2a2420 0%, #1a1614 40%, #14100e 100%);
  border-radius: 12px;
  box-shadow: inset 0 0 40px rgba(0,0,0,.3);
  animation: dv8-corner 18s ease-in-out infinite alternate;
}
.scn-dejection-variants-eight .desk-wide {
  position:absolute; bottom:0; left:8%; right:8%; height:38%;
  background: linear-gradient(180deg, #4a3830 0%, #2a1e18 100%);
  border-radius: 6% 6% 0 0 / 12% 12% 0 0;
  box-shadow: inset 0 6px 16px rgba(0,0,0,.4), 0 -2px 8px rgba(0,0,0,.2);
  transform-origin: bottom center;
  animation: dv8-desk 22s ease-in-out infinite;
}
.scn-dejection-variants-eight .scholar-silhouette {
  position:absolute; bottom:22%; left:38%; width:24px; height:40px;
  background: linear-gradient(180deg, #0e0c0a 0%, #060504 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: dv8-scholar 14s ease-in-out infinite alternate;
}
.scn-dejection-variants-eight .candle-pair {
  position:absolute; bottom:20%; left:48%; width:6px; height:20px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 60%, #a0907a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3), -16px 4px 0 #c8b898, -16px 2px 8px rgba(0,0,0,.2);
  animation: dv8-candle 8s ease-in-out infinite alternate;
}
.scn-dejection-variants-eight .flame-double {
  position:absolute; bottom:48%; left:47%; width:5px; height:10px;
  background: radial-gradient(ellipse at 50% 40%, #ffd080 0%, #e89040 40%, #c06020 70%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 16px 4px rgba(232,144,64,.3), -16px 0 16px 4px rgba(232,144,64,.2);
  animation: dv8-flame 3s ease-in-out infinite alternate;
}
.scn-dejection-variants-eight .scattered-papers {
  position:absolute; bottom:28%; left:20%; width:18%; height:10%;
  background: linear-gradient(135deg, #d4c0a8 0%, #b8a088 40%, #c8b898 70%, #a89078 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  transform: rotate(-6deg);
  animation: dv8-papers 12s ease-in-out infinite;
}
.scn-dejection-variants-eight .wall-vignette {
  position:absolute; inset: 0;
  background: radial-gradient(ellipse at 55% 40%, transparent 50%, rgba(0,0,0,.4) 100%);
  animation: dv8-vignette 20s ease-in-out infinite alternate;
}
.scn-dejection-variants-eight .ink-spot {
  position:absolute; bottom:32%; left:30%; width:4px; height:4px;
  background: #0a0806;
  border-radius: 50%;
  box-shadow: 0 0 2px rgba(0,0,0,.4);
  animation: dv8-spot 15s ease-in-out infinite;
}
@keyframes dv8-corner { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes dv8-desk { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.008) } }
@keyframes dv8-scholar { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes dv8-candle { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) scaleY(1.02) } }
@keyframes dv8-flame { 0% { transform: translateY(0) scale(1) rotate(-2deg); opacity:.85 } 50% { transform: translateY(-3px) scale(1.08) rotate(0); opacity:1 } 100% { transform: translateY(0) scale(.95) rotate(2deg); opacity:.9 } }
@keyframes dv8-papers { 0% { transform: rotate(-6deg) } 50% { transform: rotate(-4deg) translateY(2px) } 100% { transform: rotate(-7deg) } }
@keyframes dv8-vignette { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes dv8-spot { 0%,100% { transform: scale(1) } 50% { transform: scale(1.3) } }

/* psyche-butterfly */
.scn-psyche-butterfly {
  background: 
    linear-gradient(180deg, #1a1020 0%, #2a1a30 40%, #3a2030 70%, #1a0a10 100%),
    radial-gradient(ellipse at 50% 60%, #4a3040 0%, transparent 70%);
}
.scn-psyche-butterfly .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%); }
.scn-psyche-butterfly .desk { position:absolute; bottom:0; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); border-radius: 12% 12% 0 0 / 20% 20% 0 0; box-shadow: inset 0 -8px 20px rgba(0,0,0,0.5); }
.scn-psyche-butterfly .candle { position:absolute; bottom:28%; left:40%; width:12px; height:40px; background: linear-gradient(0deg, #e8d8c0 0%, #c8b8a0 100%); border-radius: 4px 4px 3px 3px; transform-origin: bottom center; }
.scn-psyche-butterfly .flame { position:absolute; bottom:48%; left:40.5%; width:8px; height:16px; background: radial-gradient(circle, #ffc070 0%, #ff8030 50%, #ff4020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px 6px #ff8030; animation: ps-flame 3s ease-in-out infinite alternate; }
.scn-psyche-butterfly .butterfly { position:absolute; top:25%; left:30%; width:40px; height:30px; background: radial-gradient(ellipse 40% 60% at 30% 50%, #c0a070 0%, #a08050 30%, transparent 50%), radial-gradient(ellipse 40% 60% at 70% 50%, #c0a070 0%, #a08050 30%, transparent 50%), radial-gradient(ellipse 10% 30% at 50% 50%, #5a3a2a 0%, transparent 80%); border-radius: 50%; transform-origin: center 40%; animation: ps-butterfly 4s ease-in-out infinite; }
.scn-psyche-butterfly .shadow { position:absolute; bottom:28%; left:50%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: ps-shadow 8s ease-in-out infinite; }
.scn-psyche-butterfly .glow { position:absolute; bottom:30%; left:35%; right:35%; height:40%; background: radial-gradient(ellipse at 50% 100%, rgba(255,200,100,0.15) 0%, transparent 70%); pointer-events: none; }
@keyframes ps-flame { 0% { transform: scaleY(1) scaleX(1) translateY(0); opacity:0.9; } 50% { transform: scaleY(1.2) scaleX(0.8) translateY(-2px); opacity:1; } 100% { transform: scaleY(0.9) scaleX(1.1) translateY(1px); opacity:0.85; } }
@keyframes ps-butterfly { 0% { transform: translate(0,0) rotate(-5deg) scaleX(1); } 25% { transform: translate(10px,-8px) rotate(5deg) scaleX(0.8); } 50% { transform: translate(20px,-2px) rotate(-3deg) scaleX(1); } 75% { transform: translate(30px,-10px) rotate(7deg) scaleX(0.7); } 100% { transform: translate(40px,-4px) rotate(-2deg) scaleX(1); } }
@keyframes ps-shadow { 0% { opacity:0.6; transform: translateX(-50%) scaleY(1); } 50% { opacity:0.8; transform: translateX(-50%) scaleY(1.05); } 100% { opacity:0.6; transform: translateX(-50%) scaleY(0.95); } }

/* psyche-linenotes */
.scn-psyche-linenotes {
  background: 
    linear-gradient(180deg, #1a1510 0%, #2a2018 40%, #3a2a1a 70%, #1a1008 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 80%);
}
.scn-psyche-linenotes .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,8,5,0.3) 0%, transparent 50%, rgba(10,8,5,0.2) 100%); }
.scn-psyche-linenotes .table { position:absolute; bottom:0; left:5%; right:5%; height:25%; background: linear-gradient(180deg, #4a3222 0%, #2a1a10 100%); border-radius: 8% 8% 0 0 / 15% 15% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,0.6); }
.scn-psyche-linenotes .lamp-base { position:absolute; bottom:25%; left:50%; width:30px; height:40px; margin-left:-15px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-psyche-linenotes .lamp-glow { position:absolute; bottom:25%; left:50%; width:80px; height:80px; margin-left:-40px; background: radial-gradient(ellipse, rgba(255,180,80,0.3) 0%, rgba(255,180,80,0.05) 50%, transparent 70%); pointer-events: none; animation: pl-glow 4s ease-in-out infinite alternate; }
.scn-psyche-linenotes .papers { position:absolute; bottom:23%; left:30%; width:100px; height:70px; background: linear-gradient(135deg, #f0e8d0 0%, #e0d0b0 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3), inset 0 0 0 1px #d0c0a0; transform: rotate(-2deg); animation: pl-papers 10s ease-in-out infinite; }
.scn-psyche-linenotes .quill { position:absolute; bottom:30%; left:55%; width:4px; height:50px; background: linear-gradient(0deg, #c0a080 0%, #e0c8a0 60%, #f0e0c0 100%); border-radius: 2px 2px 50% 50%; transform-origin: bottom center; transform: rotate(15deg); animation: pl-quill 6s ease-in-out infinite; }
.scn-psyche-linenotes .inkwell { position:absolute; bottom:22%; left:58%; width:20px; height:22px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.5); }
@keyframes pl-glow { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.8; transform: scale(0.95); } }
@keyframes pl-papers { 0% { transform: rotate(-2deg) translate(0,0); } 50% { transform: rotate(1deg) translate(2px,-1px); } 100% { transform: rotate(-3deg) translate(-1px,1px); } }
@keyframes pl-quill { 0% { transform: rotate(15deg); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(17deg); } }

/* tombless-epitaph-intro */
.scn-tombless-epitaph-intro {
  background: 
    linear-gradient(180deg, #1a1a20 0%, #2a2a30 30%, #3a3a40 60%, #1a1a20 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a30 0%, transparent 70%);
}
.scn-tombless-epitaph-intro .wall { position:absolute; inset:0; background: linear-gradient(0deg, rgba(0,0,0,0.3) 0%, transparent 50%, rgba(0,0,0,0.1) 100%); }
.scn-tombless-epitaph-intro .shelf { position:absolute; bottom:35%; left:10%; right:10%; height:10px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,0.5); }
.scn-tombless-epitaph-intro .books { position:absolute; bottom:37%; left:15%; right:15%; height:60px; background: repeating-linear-gradient(90deg, #5a3a2a 0px, #5a3a2a 8px, #4a2a1a 8px, #4a2a1a 16px, #3a2a2a 16px, #3a2a2a 24px, #6a4a3a 24px, #6a4a3a 32px); border-radius: 2px; box-shadow: inset 0 -2px 4px rgba(0,0,0,0.4); }
.scn-tombless-epitaph-intro .bust { position:absolute; bottom:40%; left:50%; width:40px; height:60px; margin-left:-20px; background: radial-gradient(ellipse 60% 70% at 50% 40%, #c0b0a0 0%, #a09080 40%, #807060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: te-bust 12s ease-in-out infinite; }
.scn-tombless-epitaph-intro .candle { position:absolute; bottom:42%; left:30%; width:10px; height:35px; background: linear-gradient(0deg, #c8b8a0 0%, #a89880 100%); border-radius: 3px; }
.scn-tombless-epitaph-intro .flame { position:absolute; bottom:54%; left:30.5%; width:6px; height:12px; background: radial-gradient(circle, #ffc070 0%, #ff8030 50%, #ff4020 100%); border-radius: 50%; box-shadow: 0 0 12px 4px #ff8030; animation: te-flame 2.5s ease-in-out infinite alternate; }
.scn-tombless-epitaph-intro .glow { position:absolute; bottom:38%; left:20%; right:20%; height:40%; background: radial-gradient(ellipse at 30% 70%, rgba(255,180,80,0.12) 0%, transparent 60%); pointer-events: none; animation: te-glow 5s ease-in-out infinite; }
@keyframes te-bust { 0% { transform: translatex(-50%) rotate(0deg); } 50% { transform: translatex(-50%) rotate(2deg) translateY(-1px); } 100% { transform: translatex(-50%) rotate(-1deg); } }
@keyframes te-flame { 0% { transform: scaleY(1) scaleX(1); opacity:0.9; } 50% { transform: scaleY(1.15) scaleX(0.85) translateY(-2px); opacity:1; } 100% { transform: scaleY(0.9) scaleX(1.1) translateY(1px); opacity:0.8; } }
@keyframes te-glow { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }

/* tombless-epitaph-conclusion */
.scn-tombless-epitaph-conclusion {
  background: 
    linear-gradient(180deg, #0a0a14 0%, #14141e 40%, #1a1a28 70%, #0e0e18 100%),
    radial-gradient(ellipse at 50% 30%, #1a1a2a 0%, transparent 80%);
}
.scn-tombless-epitaph-conclusion .cave-bg { position:absolute; inset:0; background: linear-gradient(0deg, rgba(0,0,0,0.4) 0%, transparent 40%, rgba(0,0,0,0.6) 100%); }
.scn-tombless-epitaph-conclusion .cave-wall { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 60% 60% 0 0 / 80% 80% 0 0; clip-path: polygon(0% 100%, 0% 40%, 15% 35%, 30% 45%, 45% 30%, 60% 50%, 75% 35%, 90% 45%, 100% 40%, 100% 100%); /* jagged cave entrance shape */ }
.scn-tombless-epitaph-conclusion .stars { position:absolute; top:5%; left:0; right:0; height:30%; background: radial-gradient(2px 2px at 10% 20%, #ffe0a0, transparent), radial-gradient(2px 2px at 30% 10%, #ffe0a0, transparent), radial-gradient(2px 2px at 50% 30%, #ffe0a0, transparent), radial-gradient(2px 2px at 70% 15%, #ffe0a0, transparent), radial-gradient(2px 2px at 90% 25%, #ffe0a0, transparent); background-size: 100% 100%; animation: tc-stars 8s ease-in-out infinite; }
.scn-tombless-epitaph-conclusion .lamp { position:absolute; bottom:40%; left:40%; width:16px; height:24px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); transform-origin: bottom center; animation: tc-lamp 6s ease-in-out infinite; }
.scn-tombless-epitaph-conclusion .lamp-glow { position:absolute; bottom:40%; left:35%; right:35%; height:40%; background: radial-gradient(ellipse at 50% 80%, rgba(255,180,80,0.3) 0%, rgba(255,180,80,0.05) 50%, transparent 70%); pointer-events: none; animation: tc-glow 4s ease-in-out infinite alternate; }
.scn-tombless-epitaph-conclusion .figure { position:absolute; bottom:30%; left:50%; width:24px; height:60px; margin-left:-12px; background: radial-gradient(ellipse 60% 70% at 50% 40%, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tc-figure 10s ease-in-out infinite; }
.scn-tombless-epitaph-conclusion .flame { position:absolute; bottom:42%; left:41.5%; width:6px; height:14px; background: radial-gradient(circle, #ffc070 0%, #ff8030 50%, #ff4020 100%); border-radius: 50%; box-shadow: 0 0 16px 4px #ff8030; animation: tc-flame 2.8s ease-in-out infinite alternate; }
@keyframes tc-stars { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes tc-lamp { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-2deg); } }
@keyframes tc-glow { 0% { transform: scale(1); opacity:0.8; } 100% { transform: scale(1.2); opacity:1; } }
@keyframes tc-figure { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg) translateY(-3px); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes tc-flame { 0% { transform: scaleY(1) scaleX(1); opacity:0.9; } 50% { transform: scaleY(1.2) scaleX(0.8) translateY(-2px); opacity:1; } 100% { transform: scaleY(0.9) scaleX(1.1) translateY(1px); opacity:0.8; } }

/* Scene: saddleback-notes – dim interior, calm */
.scn-saddleback-notes {
  background:
    linear-gradient(180deg, #3c2e24 0%, #2a1f18 30%, #1f1610 100%),
    radial-gradient(ellipse at 50% 70%, #4a382a 0%, transparent 60%);
}
.scn-saddleback-notes .bg-room {
  position:absolute; inset:0; background:linear-gradient(180deg, #4a382a 0%, #1f1610 100%); animation: sn-room 20s ease-in-out infinite alternate;
}
.scn-saddleback-notes .desk {
  position:absolute; bottom:10%; left:20%; right:20%; height:12%; background:linear-gradient(180deg, #6a5038 0%, #3a2a1c 100%); border-radius:4px; box-shadow:0 -4px 10px rgba(0,0,0,.6);
}
.scn-saddleback-notes .candle-glare {
  position:absolute; bottom:26%; left:30%; width:40px; height:40px; background:radial-gradient(circle, #ffdd88 0%, #cca860 30%, transparent 70%); border-radius:50%; animation: sn-glare 4s ease-in-out infinite alternate;
}
.scn-saddleback-notes .candle-flame {
  position:absolute; bottom:26%; left:31%; width:6px; height:20px; background:linear-gradient(180deg, #ffdd66 0%, #ffaa33 50%, #aa5511 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; animation: sn-flame 2s ease-in-out infinite;
}
.scn-saddleback-notes .paper-stack {
  position:absolute; bottom:16%; left:35%; width:40%; height:6%; background:linear-gradient(180deg, #ecd9b3 0%, #d4b98a 100%); border-radius:2px; box-shadow:0 2px 6px rgba(0,0,0,.4); animation: sn-paper 8s ease-in-out infinite alternate;
}
.scn-saddleback-notes .window {
  position:absolute; top:12%; right:15%; width:35%; height:45%; background:linear-gradient(135deg, #3a4a5a 0%, #2a3a4a 100%); border:4px solid #2a1c14; border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,.5); animation: sn-window 12s ease-in-out infinite alternate;
}
.scn-saddleback-notes .mountain-silhouette {
  position:absolute; top:20%; right:20%; width:30%; height:35%; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:60% 40% 0 0 / 80% 70% 0 0; animation: sn-mountain 30s linear infinite alternate;
}
@keyframes sn-room {
  0% { opacity:.85 }
  50% { opacity:.95 }
  100% { opacity:.9 }
}
@keyframes sn-glare {
  0% { transform:scale(1); opacity:.6; box-shadow:0 0 20px 6px #ffdd88 }
  50% { transform:scale(1.05); opacity:.8; box-shadow:0 0 30px 10px #ffdd88 }
  100% { transform:scale(.98); opacity:.7; box-shadow:0 0 25px 8px #ffdd88 }
}
@keyframes sn-flame {
  0% { transform:translateY(0) scaleY(1) rotate(-2deg) }
  25% { transform:translateY(-2px) scaleY(1.1) rotate(2deg) }
  50% { transform:translateY(-1px) scaleY(1.05) rotate(-1deg) }
  75% { transform:translateY(-3px) scaleY(1.15) rotate(3deg) }
  100% { transform:translateY(0) scaleY(1) rotate(0) }
}
@keyframes sn-paper {
  0% { transform:translateY(0) rotate(0deg) }
  50% { transform:translateY(-2px) rotate(.5deg) }
  100% { transform:translateY(0) rotate(0deg) }
}
@keyframes sn-window {
  0% { background:linear-gradient(135deg, #3a4a5a 0%, #2a3a4a 100%); box-shadow:inset 0 0 10px rgba(0,0,0,.4) }
  50% { background:linear-gradient(135deg, #4a5a6a 0%, #3a4a5a 100%); box-shadow:inset 0 0 20px rgba(0,0,0,.6) }
  100% { background:linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 100%); box-shadow:inset 0 0 15px rgba(0,0,0,.5) }
}
@keyframes sn-mountain {
  0% { transform:translateX(0) scale(1) }
  50% { transform:translateX(5px) scale(1.02) }
  100% { transform:translateX(-5px) scale(.98) }
}

/* Scene: etna-voice – overcast, tense */
.scn-etna-voice {
  background:
    linear-gradient(180deg, #5a6a70 0%, #3a4a50 40%, #2a3a40 100%),
    radial-gradient(ellipse at 50% 0%, #7a8a90 0%, transparent 60%);
}
.scn-etna-voice .bg-overcast {
  position:absolute; inset:0; background:linear-gradient(180deg, #5a6a70 0%, #2a3a40 100%); animation: ev-sky 15s ease-in-out infinite alternate;
}
.scn-etna-voice .ground {
  position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #3a4a30 0%, #1a2a1a 100%); border-radius:20% 20% 0 0 / 30% 30% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,.4);
}
.scn-etna-voice .tree-trunk {
  position:absolute; bottom:20%; left:30%; width:12px; height:60%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:4px; transform-origin:bottom center; animation: ev-trunk 12s ease-in-out infinite;
}
.scn-etna-voice .tree-foliage {
  position:absolute; bottom:50%; left:22%; width:30%; height:30%; background:radial-gradient(ellipse at 50% 60%, #4a6a3a 0%, #2a3a1a 70%); border-radius:60% 40% 50% 50%; filter:blur(3px); animation: ev-foliage 18s ease-in-out infinite alternate;
}
.scn-etna-voice .cave-mouth {
  position:absolute; bottom:28%; right:20%; width:80px; height:50px; background:radial-gradient(ellipse at 50% 0%, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 20% 20%; box-shadow:inset 0 0 30px rgba(0,0,0,.8); animation: ev-cave 9s ease-in-out infinite;
}
.scn-etna-voice .hermit-figure {
  position:absolute; bottom:30%; left:38%; width:16px; height:40px; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation: ev-figure 6s ease-in-out infinite;
}
.scn-etna-voice .sound-ripples {
  position:absolute; top:20%; left:40%; width:80px; height:80px; background:radial-gradient(circle, rgba(180,200,220,.4) 0%, transparent 70%); border-radius:50%; animation: ev-ripple 4s ease-in-out infinite;
}
@keyframes ev-sky {
  0% { opacity:.7; filter:contrast(1) }
  50% { opacity:.85; filter:contrast(1.1) }
  100% { opacity:.75; filter:contrast(.95) }
}
@keyframes ev-trunk {
  0% { transform:scaleY(1) rotate(0deg) }
  50% { transform:scaleY(1.02) rotate(1deg) }
  100% { transform:scaleY(.98) rotate(-1deg) }
}
@keyframes ev-foliage {
  0% { transform:translateY(0) scale(1) }
  50% { transform:translateY(-5px) scale(1.03) }
  100% { transform:translateY(3px) scale(.98) }
}
@keyframes ev-cave {
  0% { box-shadow:inset 0 0 20px rgba(0,0,0,.7); transform:scale(1) }
  50% { box-shadow:inset 0 0 40px rgba(0,0,0,.9); transform:scale(1.02) }
  100% { box-shadow:inset 0 0 25px rgba(0,0,0,.8); transform:scale(.98) }
}
@keyframes ev-figure {
  0% { transform:translateY(0) rotate(-2deg) }
  30% { transform:translateY(-3px) rotate(1deg) }
  60% { transform:translateY(1px) rotate(-1deg) }
  100% { transform:translateY(0) rotate(0deg) }
}
@keyframes ev-ripple {
  0% { transform:scale(.8); opacity:.3 }
  50% { transform:scale(1.2); opacity:.6 }
  100% { transform:scale(.9); opacity:.4 }
}

/* Scene: etna-plea – twilight, dark */
.scn-etna-plea {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 30%, #3a3a5a 60%, #2a2a4a 100%),
    radial-gradient(ellipse at 50% 0%, #6a5a7a 0%, transparent 70%);
}
.scn-etna-plea .bg-twilight {
  position:absolute; inset:0; background:linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 50%, #4a3a5a 100%); animation: ep-sky 25s ease-in-out infinite alternate;
}
.scn-etna-plea .turf-ground {
  position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:30% 30% 0 0 / 20% 20% 0 0; box-shadow:inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-etna-plea .grave-mound {
  position:absolute; bottom:18%; left:40%; width:40%; height:15%; background:radial-gradient(ellipse at 50% 30%, #3a4a3a 0%, #1a2a1a 100%); border-radius:50%; box-shadow:0 -4px 12px rgba(0,0,0,.6);
}
.scn-etna-plea .gravestone {
  position:absolute; bottom:25%; left:50%; width:20px; height:40px; transform:translateX(-50%); background:linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius:10% 10% 20% 20%; box-shadow:0 4px 8px rgba(0,0,0,.5); animation: ep-stone 14s ease-in-out infinite;
}
.scn-etna-plea .kneeling-figure {
  position:absolute; bottom:12%; left:35%; width:20px; height:30px; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:30% 30% 40% 40% / 40% 40% 50% 50%; transform-origin:bottom center; animation: ep-kneel 8s ease-in-out infinite;
}
.scn-etna-plea .moon-glow {
  position:absolute; top:10%; left:20%; width:60px; height:60px; background:radial-gradient(circle, #c0d0e0 0%, transparent 80%); border-radius:50%; filter:blur(8px); animation: ep-moon 30s linear infinite alternate;
}
@keyframes ep-sky {
  0% { opacity:.75 }
  50% { opacity:.9 }
  100% { opacity:.8 }
}
@keyframes ep-stone {
  0% { transform:translateX(-50%) rotate(0deg) }
  50% { transform:translateX(-50%) translateY(-2px) rotate(1deg) }
  100% { transform:translateX(-50%) rotate(0deg) }
}
@keyframes ep-kneel {
  0% { transform:scaleY(1) rotate(-1deg) }
  33% { transform:scaleY(1.02) rotate(2deg) translateY(-1px) }
  66% { transform:scaleY(.98) rotate(-2deg) translateY(1px) }
  100% { transform:scaleY(1) rotate(0deg) }
}
@keyframes ep-moon {
  0% { transform:translateX(-10px) scale(1); opacity:.4 }
  50% { transform:translateX(10px) scale(1.05); opacity:.6 }
  100% { transform:translateX(-10px) scale(.95); opacity:.5 }
}

/* Scene: etna-murder – moonlit, dark */
.scn-etna-murder {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 30%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 80%);
}
.scn-etna-murder .bg-night {
  position:absolute; inset:0; background:linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 60%, #2a2a3a 100%); animation: em-night 20s ease-in-out infinite alternate;
}
.scn-etna-murder .moon-disk {
  position:absolute; top:15%; right:20%; width:40px; height:40px; background:radial-gradient(circle, #e0e8f0 0%, #c0c8d0 80%); border-radius:50%; box-shadow:0 0 30px 10px rgba(200,210,230,.5); animation: em-moon 25s linear infinite alternate;
}
.scn-etna-murder .moon-halo {
  position:absolute; top:10%; right:15%; width:70px; height:70px; background:radial-gradient(circle, rgba(200,210,230,.3) 0%, transparent 70%); border-radius:50%; filter:blur(10px); animation: em-halo 25s linear infinite alternate;
}
.scn-etna-murder .figure-silhouette {
  position:absolute; bottom:20%; left:25%; width:22px; height:50px; background:linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation: em-figure 8s ease-in-out infinite;
}
.scn-etna-murder .storm-clouds {
  position:absolute; top:5%; left:0; right:0; height:30%; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 60% 0 0 / 20% 30% 0 0; filter:blur(4px); animation: em-clouds 18s linear infinite alternate;
}
.scn-etna-murder .lightning-flash {
  position:absolute; top:10%; left:50%; width:4px; height:60px; background:linear-gradient(180deg, #ff8844 0%, #cc4400 50%, transparent 100%); border-radius:2px; filter:blur(1px); animation: em-flash 6s ease-in-out infinite;
}
.scn-etna-murder .ground-shadow {
  position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius:50% 50% 0 0 / 30% 30% 0 0;
}
@keyframes em-night {
  0% { opacity:.9 }
  50% { opacity:1 }
  100% { opacity:.85 }
}
@keyframes em-moon {
  0% { transform:translateY(0) scale(1); opacity:.7 }
  50% { transform:translateY(5px) scale(1.03); opacity:.85 }
  100% { transform:translateY(-3px) scale(.97); opacity:.75 }
}
@keyframes em-halo {
  0% { opacity:.2; transform:scale(1) }
  50% { opacity:.35; transform:scale(1.05) }
  100% { opacity:.25; transform:scale(.95) }
}
@keyframes em-figure {
  0% { transform:translateX(0) translateY(0) rotate(0deg) }
  33% { transform:translateX(3px) translateY(-2px) rotate(2deg) }
  66% { transform:translateX(-2px) translateY(1px) rotate(-1deg) }
  100% { transform:translateX(0) translateY(0) rotate(0deg) }
}
@keyframes em-clouds {
  0% { transform:translateX(0) scaleY(1) }
  50% { transform:translateX(-20px) scaleY(1.05) }
  100% { transform:translateX(20px) scaleY(.95) }
}
@keyframes em-flash {
  0% { opacity:0; transform:scaleY(.5) rotate(0deg) }
  10% { opacity:1; transform:scaleY(1.2) rotate(3deg) }
  20% { opacity:.3; transform:scaleY(.8) rotate(-2deg) }
  30% { opacity:.8; transform:scaleY(1.1) rotate(4deg) }
  40% { opacity:0; transform:scaleY(.6) rotate(0deg) }
  100% { opacity:0; transform:scaleY(.5) rotate(0deg) }
}

/* love-variants-four */
.scn-love-variants-four {
  background:
    linear-gradient(180deg, #2a1e1a 0%, #3a2a22 40%, #4a382e 100%),
    radial-gradient(ellipse at 40% 20%, #5a3a2a 0%, transparent 60%);
}
.scn-love-variants-four .lv4-window {
  position: absolute; inset: 10% 15% 55% 10%;
  background: radial-gradient(ellipse at 50% 50%, #705040 0%, #3a2a20 70%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: inset 0 0 30px #4a3022;
  animation: lv4-window 8s ease-in-out infinite alternate;
}
.scn-love-variants-four .lv4-curtain {
  position: absolute; inset: 8% 12% 52% 8%;
  background: linear-gradient(135deg, #5a4034 0%, #4a3024 50%, #3a2018 100%);
  border-radius: 30% 30% 20% 20%;
  transform: scale(1.1);
  animation: lv4-curtain 12s ease-in-out infinite;
}
.scn-love-variants-four .lv4-desk {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #6a5042 0%, #4a3428 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 8px 12px rgba(0,0,0,0.5);
  animation: lv4-desk 10s ease-in-out infinite;
}
.scn-love-variants-four .lv4-candle {
  position: absolute; bottom: 32%; left: 38%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 4px;
  box-shadow: 0 0 10px 2px rgba(192,160,80,0.3);
  animation: lv4-candle 6s ease-in-out infinite;
}
.scn-love-variants-four .lv4-flame {
  position: absolute; bottom: 50%; left: 38.5%; width: 6px; height: 10px;
  background: radial-gradient(circle, #f0d080 0%, #c88a30 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(240,200,100,0.6);
  animation: lv4-flame 1.5s ease-in-out infinite alternate;
}
.scn-love-variants-four .lv4-figure {
  position: absolute; bottom: 30%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lv4-figure 4s ease-in-out infinite;
}
.scn-love-variants-four .lv4-book {
  position: absolute; bottom: 22%; left: 45%; width: 26px; height: 34px;
  background: linear-gradient(135deg, #6a5040 0%, #4a3020 100%);
  border-radius: 4px;
  transform: rotate(-8deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: lv4-book 6s ease-in-out infinite;
}
@keyframes lv4-window { 0% { opacity: 0.7; transform: scaleY(0.98); } 50% { opacity: 1; transform: scaleY(1); } 100% { opacity: 0.8; transform: scaleY(0.99); } }
@keyframes lv4-curtain { 0%,100% { transform: scale(1.1) translateX(-2px); } 50% { transform: scale(1.08) translateX(2px); } }
@keyframes lv4-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes lv4-candle { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes lv4-flame { 0% { transform: scaleY(1) translateY(0); opacity: 0.9; } 50% { transform: scaleY(1.3) translateY(-2px); opacity: 1; } 100% { transform: scaleY(1.1) translateY(-1px); opacity: 0.95; } }
@keyframes lv4-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes lv4-book { 0%,100% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px); } }

/* love-variants-five */
.scn-love-variants-five {
  background:
    linear-gradient(180deg, #1a1420 0%, #2a1e30 40%, #3a263a 100%),
    radial-gradient(ellipse at 50% 80%, #4a2a2a 0%, transparent 60%);
}
.scn-love-variants-five .lv5-hearth {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 30%;
  background: linear-gradient(135deg, #4a3028 0%, #2a1a18 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 -10px 30px #1a0e0a;
  animation: lv5-hearth 12s ease-in-out infinite;
}
.scn-love-variants-five .lv5-fire {
  position: absolute; bottom: 25%; left: 38%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 80%, #d86820 0%, #b85018 40%, #8a3010 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,80,20,0.5);
  animation: lv5-fire 2s ease-in-out infinite alternate;
}
.scn-love-variants-five .lv5-knight {
  position: absolute; bottom: 12%; left: 20%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #3a2e3a 0%, #1e1220 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: lv5-knight 5s ease-in-out infinite;
}
.scn-love-variants-five .lv5-shield {
  position: absolute; bottom: 22%; left: 24%; width: 22px; height: 30px;
  background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 8px 8px 12px 12px;
  transform: rotate(10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: lv5-shield 4s ease-in-out infinite;
}
.scn-love-variants-five .lv5-sword {
  position: absolute; bottom: 20%; left: 16%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #b0a8a0 0%, #706860 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 0 6px rgba(255,255,255,0.2);
  animation: lv5-sword 7s ease-in-out infinite;
}
.scn-love-variants-five .lv5-smoke {
  position: absolute; top: 15%; left: 40%; width: 40px; height: 30px;
  background: radial-gradient(ellipse, rgba(180,160,140,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: lv5-smoke 20s linear infinite;
}
@keyframes lv5-hearth { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } }
@keyframes lv5-fire { 0% { transform: scale(1) translateY(0); opacity: 0.8; } 50% { transform: scale(1.2) translateY(-4px); opacity: 1; } 100% { transform: scale(1.05) translateY(-2px); opacity: 0.9; } }
@keyframes lv5-knight { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-2deg); } 75% { transform: translateX(-2px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes lv5-shield { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-3px); } }
@keyframes lv5-sword { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } }
@keyframes lv5-smoke { 0% { transform: translateX(0) translateY(0) scale(1); opacity: 0.4; } 50% { transform: translateX(20px) translateY(-10px) scale(1.3); opacity: 0.6; } 100% { transform: translateX(40px) translateY(-20px) scale(1.6); opacity: 0; } }

/* ode-to-georgiana-title */
.scn-ode-to-georgiana-title {
  background:
    linear-gradient(180deg, #1c1814 0%, #2c2420 40%, #3c3028 100%),
    radial-gradient(ellipse at 30% 20%, #4a3a2a 0%, transparent 60%);
}
.scn-ode-to-georgiana-title .ogt-wall {
  position: absolute; inset: 5% 10% 20% 10%;
  background: linear-gradient(180deg, #3a2e26 0%, #2a1e18 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: ogt-wall 15s ease-in-out infinite;
}
.scn-ode-to-georgiana-title .ogt-bow {
  position: absolute; top: 15%; left: 30%; width: 70px; height: 8px;
  background: linear-gradient(90deg, #6a4832 0%, #8a6040 50%, #6a4832 100%);
  border-radius: 4px;
  transform: rotate(-20deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ogt-bow 6s ease-in-out infinite alternate;
}
.scn-ode-to-georgiana-title .ogt-arrow {
  position: absolute; top: 22%; left: 55%; width: 40px; height: 4px;
  background: linear-gradient(90deg, #9a8060 0%, #b0a080 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: ogt-arrow 8s ease-in-out infinite;
}
.scn-ode-to-georgiana-title .ogt-quiver {
  position: absolute; top: 12%; left: 50%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 4px;
  transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ogt-quiver 9s ease-in-out infinite;
}
.scn-ode-to-georgiana-title .ogt-figure {
  position: absolute; bottom: 10%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2e2a 0%, #1e1410 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ogt-figure 5s ease-in-out infinite;
}
.scn-ode-to-georgiana-title .ogt-pedestal {
  position: absolute; bottom: 5%; left: 30%; right: 40%; height: 14%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3428 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: ogt-pedestal 12s ease-in-out infinite;
}
@keyframes ogt-wall { 0%,100% { opacity: 0.9; } 50% { opacity: 1; } }
@keyframes ogt-bow { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(-18deg) scaleX(1.05); } 100% { transform: rotate(-22deg) scaleX(0.98); } }
@keyframes ogt-arrow { 0%,100% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(12deg) translateX(2px); } }
@keyframes ogt-quiver { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } }
@keyframes ogt-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ogt-pedestal { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } }

/* ode-georgiana-stanza */
.scn-ode-georgiana-stanza {
  background:
    linear-gradient(180deg, #4a3e30 0%, #5a4a3a 40%, #6a5a48 100%),
    radial-gradient(ellipse at 60% 10%, #8a7a60 0%, transparent 60%);
}
.scn-ode-georgiana-stanza .ogs-window {
  position: absolute; inset: 8% 20% 35% 20%;
  background: radial-gradient(ellipse at 50% 50%, #b0a080 0%, #6a5a48 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 0 40px #7a6a52;
  animation: ogs-window 10s ease-in-out infinite alternate;
}
.scn-ode-georgiana-stanza .ogs-drape-l {
  position: absolute; inset: 6% 65% 30% 8%;
  background: linear-gradient(135deg, #6a5040 0%, #4a382a 50%, #3a2820 100%);
  border-radius: 0 40% 40% 0;
  transform-origin: top left;
  animation: ogs-drape 14s ease-in-out infinite;
}
.scn-ode-georgiana-stanza .ogs-drape-r {
  position: absolute; inset: 6% 8% 30% 65%;
  background: linear-gradient(225deg, #6a5040 0%, #4a382a 50%, #3a2820 100%);
  border-radius: 40% 0 0 40%;
  transform-origin: top right;
  animation: ogs-drape 14s ease-in-out infinite alternate;
}
.scn-ode-georgiana-stanza .ogs-figure {
  position: absolute; bottom: 12%; left: 40%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #4a3e36 0%, #2a1e18 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ogs-figure 5s ease-in-out infinite;
}
.scn-ode-georgiana-stanza .ogs-chair {
  position: absolute; bottom: 6%; left: 35%; width: 50px; height: 30px;
  background: linear-gradient(135deg, #5a4836 0%, #3a2a1e 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: ogs-chair 8s ease-in-out infinite;
}
.scn-ode-georgiana-stanza .ogs-lightbeam {
  position: absolute; top: 10%; left: 30%; right: 40%; bottom: 50%;
  background: linear-gradient(180deg, rgba(255,240,200,0.2) 0%, rgba(255,240,200,0.05) 100%);
  filter: blur(10px);
  transform: skewX(-10deg);
  animation: ogs-lightbeam 20s linear infinite;
}
.scn-ode-georgiana-stanza .ogs-rug {
  position: absolute; bottom: 2%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(90deg, #8a6a50 0%, #6a5040 20%, #8a6a50 40%, #6a5040 60%, #8a6a50 80%, #6a5040 100%);
  border-radius: 40% 40% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
  animation: ogs-rug 6s ease-in-out infinite;
}
@keyframes ogs-window { 0% { opacity: 0.7; transform: scaleY(0.97); } 50% { opacity: 1; transform: scaleY(1); } 100% { opacity: 0.8; transform: scaleY(0.99); } }
@keyframes ogs-drape { 0%,100% { transform: scale(1) translateX(0); } 50% { transform: scale(1.02) translateX(4px); } }
@keyframes ogs-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ogs-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ogs-lightbeam { 0% { transform: skewX(-10deg) translateX(0); opacity: 0.5; } 50% { transform: skewX(-8deg) translateX(10px); opacity: 0.7; } 100% { transform: skewX(-12deg) translateX(0); opacity: 0.5; } }
@keyframes ogs-rug { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } }

.scn-metrical-feet-address {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #7a4a3a 60%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 70%, #8a5a3a 0%, transparent 70%);
}
.scn-metrical-feet-address .bg-amber {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  opacity: 0.6; animation: mfa-breathe 12s ease-in-out infinite alternate;
}
.scn-metrical-feet-address .window-glow {
  position: absolute; top: 8%; left: 25%; width: 40px; height: 60px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 60%, transparent 100%);
  border-radius: 10% 10% 4% 4%; filter: blur(3px);
  box-shadow: 0 0 40px 20px rgba(255,208,128,0.3), 0 0 80px 40px rgba(255,208,128,0.15);
  animation: mfa-glow 6s ease-in-out infinite alternate;
}
.scn-metrical-feet-address .desk {
  position: absolute; bottom: 18%; left: 15%; right: 20%; height: 14%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  transform: perspective(300px) rotateX(10deg);
}
.scn-metrical-feet-address .father {
  position: absolute; bottom: 20%; left: 22%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: mfa-father 8s ease-in-out infinite;
}
.scn-metrical-feet-address .child {
  position: absolute; bottom: 20%; left: 35%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: mfa-child 6s ease-in-out infinite;
}
.scn-metrical-feet-address .book {
  position: absolute; bottom: 24%; left: 28%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 50%, #5a4a2a 100%);
  border-radius: 10% 10% 2% 2%; transform: perspective(200px) rotateX(20deg) rotateY(10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: mfa-book 10s ease-in-out infinite alternate;
}
.scn-metrical-feet-address .candle {
  position: absolute; bottom: 22%; left: 38%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e0c080 0%, #b09060 100%);
  border-radius: 30% 30% 10% 10%;
}
.scn-metrical-feet-address .shadow-cast {
  position: absolute; bottom: 18%; left: 20%; right: 30%; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: mfa-shadow 8s ease-in-out infinite alternate;
}
@keyframes mfa-breathe {
  0% { opacity: 0.55; } 50% { opacity: 0.65; } 100% { opacity: 0.55; }
}
@keyframes mfa-glow {
  0% { box-shadow: 0 0 30px 15px rgba(255,208,128,0.25), 0 0 60px 30px rgba(255,208,128,0.1); opacity: 0.7; }
  50% { box-shadow: 0 0 50px 25px rgba(255,208,128,0.35), 0 0 90px 45px rgba(255,208,128,0.2); opacity: 1; }
  100% { box-shadow: 0 0 35px 18px rgba(255,208,128,0.28), 0 0 70px 35px rgba(255,208,128,0.12); opacity: 0.75; }
}
@keyframes mfa-father {
  0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes mfa-child {
  0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mfa-book {
  0% { transform: perspective(200px) rotateX(20deg) rotateY(8deg); } 50% { transform: perspective(200px) rotateX(22deg) rotateY(12deg); } 100% { transform: perspective(200px) rotateX(20deg) rotateY(8deg); }
}
@keyframes mfa-shadow {
  0% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(1.1); opacity: 0.6; } 100% { transform: scaleX(1); opacity: 0.5; }
}

.scn-farewell-to-love {
  background: linear-gradient(180deg, #1a1a3a 0%, #2a1a3a 40%, #1a0a2a 80%, #0a0a1a 100%),
              radial-gradient(ellipse at 60% 40%, #4a2a5a 0%, transparent 70%);
}
.scn-farewell-to-love .bg-night {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  opacity: 0.8; animation: ftl-pulse 15s ease-in-out infinite alternate;
}
.scn-farewell-to-love .figure-turn {
  position: absolute; bottom: 20%; right: 25%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ftl-turn 10s ease-in-out infinite;
}
.scn-farewell-to-love .love-form {
  position: absolute; bottom: 30%; left: 35%; width: 24px; height: 40px;
  background: radial-gradient(circle at 50% 40%, #ffc080 0%, #c06040 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px); box-shadow: 0 0 30px 15px rgba(255,192,128,0.3);
  animation: ftl-fade 12s ease-in-out infinite alternate;
}
.scn-farewell-to-love .light-fade {
  position: absolute; top: 30%; left: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,192,128,0.15) 0%, transparent 100%);
  border-radius: 50%; animation: ftl-light 12s ease-in-out infinite alternate;
}
.scn-farewell-to-love .shadow-ground {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: ftl-shadow 10s ease-in-out infinite alternate;
}
.scn-farewell-to-love .memory-orb {
  position: absolute; top: 45%; left: 55%; width: 10px; height: 10px;
  background: radial-gradient(circle, #c08060 0%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 16px 6px rgba(192,128,96,0.3);
  animation: ftl-orb 14s ease-in-out infinite alternate;
}
@keyframes ftl-pulse {
  0% { opacity: 0.75; } 50% { opacity: 0.85; } 100% { opacity: 0.75; }
}
@keyframes ftl-turn {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(4px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes ftl-fade {
  0% { opacity: 0.9; transform: scale(1); filter: blur(1px); } 50% { opacity: 0.5; transform: scale(0.95); filter: blur(2px); } 100% { opacity: 0.8; transform: scale(1); filter: blur(1px); }
}
@keyframes ftl-light {
  0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(1); opacity: 0.6; }
}
@keyframes ftl-shadow {
  0% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(0.9); opacity: 0.7; } 100% { transform: scaleX(1); opacity: 0.5; }
}
@keyframes ftl-orb {
  0% { transform: translate(0, 0) scale(1); opacity: 0.4; } 50% { transform: translate(-8px, -6px) scale(1.3); opacity: 0.8; } 100% { transform: translate(4px, -10px) scale(0.9); opacity: 0.3; }
}

.scn-farewell-to-love-grief {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a2a 50%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 60%, #2a1a3a 0%, transparent 80%);
}
.scn-farewell-to-love-grief .bg-void {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a0a15 0%, #050510 100%);
  opacity: 0.9; animation: ftg-drift 20s ease-in-out infinite alternate;
}
.scn-farewell-to-love-grief .figure-grief {
  position: absolute; bottom: 18%; left: 40%; width: 32px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center; transform: rotate(5deg) scaleY(0.95);
  animation: ftg-hunch 8s ease-in-out infinite;
}
.scn-farewell-to-love-grief .thought-a {
  position: absolute; top: 35%; left: 30%; width: 14px; height: 14px;
  background: radial-gradient(circle, rgba(180,160,200,0.3) 0%, transparent 100%);
  border-radius: 50%; animation: ftg-thought-a 18s ease-in-out infinite;
}
.scn-farewell-to-love-grief .thought-b {
  position: absolute; top: 40%; right: 28%; width: 10px; height: 10px;
  background: radial-gradient(circle, rgba(200,180,220,0.2) 0%, transparent 100%);
  border-radius: 50%; animation: ftg-thought-b 22s ease-in-out infinite reverse;
}
.scn-farewell-to-love-grief .thought-c {
  position: absolute; top: 50%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(160,140,180,0.25) 0%, transparent 100%);
  border-radius: 50%; animation: ftg-thought-c 15s ease-in-out infinite alternate;
}
.scn-farewell-to-love-grief .glimmer {
  position: absolute; top: 30%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,180,220,0.08) 0%, transparent 100%);
  border-radius: 50%; animation: ftg-glimmer 9s ease-in-out infinite alternate;
}
.scn-farewell-to-love-grief .ground-dark {
  position: absolute; bottom: 14%; left: 10%; right: 10%; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 100%);
  animation: ftg-ground 8s ease-in-out infinite alternate;
}
@keyframes ftg-drift {
  0% { opacity: 0.85; } 50% { opacity: 0.95; } 100% { opacity: 0.85; }
}
@keyframes ftg-hunch {
  0% { transform: rotate(5deg) scaleY(0.95) translateY(0); } 50% { transform: rotate(3deg) scaleY(0.98) translateY(-2px); } 100% { transform: rotate(5deg) scaleY(0.95) translateY(0); }
}
@keyframes ftg-thought-a {
  0% { transform: translate(0, 0) scale(1); opacity: 0.3; } 50% { transform: translate(-8px, -12px) scale(1.4); opacity: 0.6; } 100% { transform: translate(6px, -18px) scale(0.8); opacity: 0.15; }
}
@keyframes ftg-thought-b {
  0% { transform: translate(0, 0) scale(1); opacity: 0.2; } 50% { transform: translate(10px, -8px) scale(1.2); opacity: 0.5; } 100% { transform: translate(-4px, -14px) scale(0.9); opacity: 0.1; }
}
@keyframes ftg-thought-c {
  0% { transform: translate(0, 0) scale(1) rotate(0deg); opacity: 0.25; } 50% { transform: translate(-5px, -10px) scale(1.1) rotate(15deg); opacity: 0.5; } 100% { transform: translate(8px, -6px) scale(0.7) rotate(-10deg); opacity: 0.1; }
}
@keyframes ftg-glimmer {
  0% { opacity: 0.1; transform: scale(0.9); } 50% { opacity: 0.4; transform: scale(1.2); } 100% { opacity: 0.15; transform: scale(1); }
}
@keyframes ftg-ground {
  0% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(1.1); opacity: 0.8; } 100% { transform: scaleX(1); opacity: 0.6; }
}

.scn-farewell-to-love-brooke {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 40%, #3a1a0a 80%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 80%, #5a3a2a 0%, transparent 70%);
}
.scn-farewell-to-love-brooke .bg-warm {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  opacity: 0.7; animation: ftb-breathe 14s ease-in-out infinite alternate;
}
.scn-farewell-to-love-brooke .figure-seat {
  position: absolute; bottom: 18%; left: 30%; width: 34px; height: 48px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center; transform: rotate(-2deg);
  animation: ftb-seat 10s ease-in-out infinite;
}
.scn-farewell-to-love-brooke .thought-d {
  position: absolute; top: 35%; right: 25%; width: 12px; height: 12px;
  background: radial-gradient(circle, rgba(200,180,160,0.2) 0%, transparent 100%);
  border-radius: 50%; animation: ftb-thought-d 20s ease-in-out infinite;
}
.scn-farewell-to-love-brooke .thought-e {
  position: absolute; top: 45%; left: 55%; width: 9px; height: 9px;
  background: radial-gradient(circle, rgba(220,200,180,0.15) 0%, transparent 100%);
  border-radius: 50%; animation: ftb-thought-e 25s ease-in-out infinite reverse;
}
.scn-farewell-to-love-brooke .lamp-glow {
  position: absolute; bottom: 30%; right: 25%; width: 18px; height: 24px;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b08040 60%, transparent 100%);
  border-radius: 40% 40% 20% 20%; filter: blur(2px);
  box-shadow: 0 0 30px 15px rgba(255,208,128,0.2);
  animation: ftb-lamp 7s ease-in-out infinite alternate;
}
.scn-farewell-to-love-brooke .window-faint {
  position: absolute; top: 12%; left: 55%; width: 35px; height: 50px;
  background: radial-gradient(ellipse, rgba(255,224,192,0.15) 0%, transparent 100%);
  border-radius: 8% 8% 4% 4%; filter: blur(4px);
  animation: ftb-window 18s ease-in-out infinite alternate;
}
.scn-farewell-to-love-brooke .curtain {
  position: absolute; top: 8%; left: 52%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%; transform-origin: top center;
  animation: ftb-curtain 15s ease-in-out infinite alternate;
}
@keyframes ftb-breathe {
  0% { opacity: 0.65; } 50% { opacity: 0.75; } 100% { opacity: 0.65; }
}
@keyframes ftb-seat {
  0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes ftb-thought-d {
  0% { transform: translate(0, 0) scale(1); opacity: 0.25; } 50% { transform: translate(-6px, -10px) scale(1.3); opacity: 0.5; } 100% { transform: translate(8px, -14px) scale(0.8); opacity: 0.1; }
}
@keyframes ftb-thought-e {
  0% { transform: translate(0, 0) scale(1); opacity: 0.2; } 50% { transform: translate(10px, -6px) scale(1.2); opacity: 0.45; } 100% { transform: translate(-6px, -12px) scale(0.7); opacity: 0.1; }
}
@keyframes ftb-lamp {
  0% { box-shadow: 0 0 25px 12px rgba(255,208,128,0.15); opacity: 0.7; } 50% { box-shadow: 0 0 40px 20px rgba(255,208,128,0.3); opacity: 1; } 100% { box-shadow: 0 0 28px 14px rgba(255,208,128,0.18); opacity: 0.75; }
}
@keyframes ftb-window {
  0% { opacity: 0.1; } 50% { opacity: 0.25; } 100% { opacity: 0.12; }
}
@keyframes ftb-curtain {
  0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(0.98) rotate(2deg); } 100% { transform: scaleX(1) rotate(0deg); }
}

.scn-work-without-hope-notes { background: linear-gradient(180deg, #1c1a18 0%, #2c2420 40%, #3a2e28 100%), radial-gradient(ellipse at 30% 80%, #4a3a30 0%, transparent 70%); }

.scn-work-without-hope-notes .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 45%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2e20 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.6);
  animation: woh-desk 12s ease-in-out infinite alternate;
}
.scn-work-without-hope-notes .notebook {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 28%;
  background: linear-gradient(135deg, #c8b898 0%, #a89070 100%);
  border-radius: 3px; transform: rotate(-3deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: woh-note 6s ease-in-out infinite;
}
.scn-work-without-hope-notes .candle-stick {
  position: absolute; bottom: 48%; left: 22%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #a09080 0%, #706050 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: woh-candle 4s ease-in-out infinite alternate;
}
.scn-work-without-hope-notes .flame {
  position: absolute; bottom: 66%; left: 23%; width: 10px; height: 16px;
  background: radial-gradient(ellipse, #f0c060 0%, #d08030 40%, #803020 100%);
  border-radius: 50% 50% 40% 40%; filter: blur(1px);
  box-shadow: 0 0 20px 8px rgba(240,192,96,.5);
  animation: woh-flame 1.2s ease-in-out infinite alternate;
}
.scn-work-without-hope-notes .bee {
  position: absolute; bottom: 50%; left: 60%; width: 12px; height: 10px;
  background: radial-gradient(circle, #c8a040 30%, #302010 50%, #c8a040 70%);
  border-radius: 50%; box-shadow: 0 0 4px rgba(0,0,0,.3);
  animation: woh-bee 8s ease-in-out infinite;
}
.scn-work-without-hope-notes .inkwell {
  position: absolute; bottom: 38%; left: 58%; width: 16px; height: 18px;
  background: radial-gradient(circle, #403020 0%, #201810 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: inset 0 2px 4px #605040;
  animation: woh-ink 10s ease-in-out infinite alternate;
}
.scn-work-without-hope-notes .pen {
  position: absolute; bottom: 48%; left: 66%; width: 2px; height: 24px;
  background: linear-gradient(180deg, #a09080 0%, #605040 100%);
  border-radius: 1px; transform: rotate(20deg);
  animation: woh-pen 5s ease-in-out infinite alternate;
}

@keyframes woh-desk { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes woh-note { 0%,100% { transform: rotate(-3deg) scaleX(1) } 50% { transform: rotate(-1deg) scaleX(1.02) } }
@keyframes woh-candle { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }
@keyframes woh-flame { 0% { height: 14px; transform: scale(.9) } 50% { height: 18px; transform: scale(1.1) } 100% { height: 16px; transform: scale(1) } }
@keyframes woh-bee { 0% { transform: translate(0,0) rotate(0) } 25% { transform: translate(20px, -10px) rotate(10deg) } 50% { transform: translate(-10px, 5px) rotate(-5deg) } 75% { transform: translate(15px, -8px) rotate(8deg) } 100% { transform: translate(5px, 2px) rotate(0) } }
@keyframes woh-ink { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes woh-pen { 0% { transform: rotate(20deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(15deg) } }

.scn-sancti-dominici-pallium-intro { background: linear-gradient(180deg, #1a1a2e 0%, #24203a 40%, #2e284a 100%), radial-gradient(ellipse at 50% 60%, #3a3050 0%, transparent 80%); }

.scn-sancti-dominici-pallium-intro .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2640 0%, #1e1c30 100%);
  animation: sdp-wall 20s ease-in-out infinite alternate;
}
.scn-sancti-dominici-pallium-intro .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a3248 0%, #1e1c28 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,.5);
  animation: sdp-floor 15s ease-in-out infinite alternate;
}
.scn-sancti-dominici-pallium-intro .table {
  position: absolute; bottom: 30%; left: 40%; width: 20%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 2% 2% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: sdp-table 6s ease-in-out infinite alternate;
}
.scn-sancti-dominici-pallium-intro .figure-left {
  position: absolute; bottom: 22%; left: 28%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sdp-left 4s ease-in-out infinite;
}
.scn-sancti-dominici-pallium-intro .figure-right {
  position: absolute; bottom: 22%; right: 28%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sdp-right 4s ease-in-out infinite;
}
.scn-sancti-dominici-pallium-intro .lamp {
  position: absolute; bottom: 42%; left: 48%; width: 12px; height: 16px;
  background: radial-gradient(ellipse, #c0a060 0%, #805030 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(192,160,96,.4);
  animation: sdp-lamp 3s ease-in-out infinite alternate;
}
.scn-sancti-dominici-pallium-intro .cloak {
  position: absolute; bottom: 26%; left: 18%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a100a 100%);
  border-radius: 10% 30% 20% 40% / 20% 30% 30% 40%;
  transform: rotate(10deg);
  animation: sdp-cloak 7s ease-in-out infinite alternate;
}

@keyframes sdp-wall { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .7 } }
@keyframes sdp-floor { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes sdp-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }
@keyframes sdp-left { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(1px) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sdp-right { 0% { transform: translateY(0) rotate(1deg) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(1px) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sdp-lamp { 0% { box-shadow: 0 0 20px 6px rgba(192,160,96,.4); opacity: .8 } 50% { box-shadow: 0 0 40px 16px rgba(192,160,96,.6); opacity: 1 } 100% { box-shadow: 0 0 25px 8px rgba(192,160,96,.5); opacity: .9 } }
@keyframes sdp-cloak { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } 100% { transform: rotate(12deg) translateY(1px) } }

.scn-sancti-dominici-continued { background: linear-gradient(180deg, #1e1a2a 0%, #2a2440 40%, #3a3050 100%), radial-gradient(ellipse at 60% 70%, #4a3a60 0%, transparent 60%); }

.scn-sancti-dominici-continued .bg-shadows {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,.4) 0%, transparent 30%, transparent 70%, rgba(0,0,0,.4) 100%);
  animation: sdc-bg 18s ease-in-out infinite alternate;
}
.scn-sancti-dominici-continued .pedestal {
  position: absolute; bottom: 0; left: 40%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1e1410 100%);
  border-radius: 5% 5% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.5);
  animation: sdc-ped 10s ease-in-out infinite alternate;
}
.scn-sancti-dominici-continued .figure-profile {
  position: absolute; bottom: 20%; left: 44%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a1828 0%, #0e0c1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: sdc-fig 5s ease-in-out infinite;
}
.scn-sancti-dominici-continued .book-open {
  position: absolute; bottom: 36%; left: 38%; width: 28px; height: 16px;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 0 0 8px 8px; box-shadow: 0 2px 6px rgba(0,0,0,.4);
  transform: perspective(200px) rotateX(30deg);
  animation: sdc-book 4s ease-in-out infinite alternate;
}
.scn-sancti-dominici-continued .glow-eye {
  position: absolute; bottom: 42%; left: 42%; width: 6px; height: 6px;
  background: radial-gradient(circle, #c0ffc0 0%, #80c080 60%, transparent 100%);
  border-radius: 50%; filter: blur(1px);
  box-shadow: 0 0 20px 6px rgba(128,192,128,.5);
  animation: sdc-eye 2s ease-in-out infinite alternate;
}
.scn-sancti-dominici-continued .staff {
  position: absolute; bottom: 18%; left: 38%; width: 3px; height: 36px;
  background: linear-gradient(180deg, #604030 0%, #302018 100%);
  border-radius: 1px; transform: rotate(8deg);
  animation: sdc-staff 7s ease-in-out infinite alternate;
}

@keyframes sdc-bg { 0% { opacity: .5 } 50% { opacity: .7 } 100% { opacity: .6 } }
@keyframes sdc-ped { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }
@keyframes sdc-fig { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(1px) rotate(1deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sdc-book { 0% { transform: perspective(200px) rotateX(30deg) translateY(0) } 50% { transform: perspective(200px) rotateX(28deg) translateY(-1px) } 100% { transform: perspective(200px) rotateX(32deg) translateY(1px) } }
@keyframes sdc-eye { 0% { opacity: .5; transform: scale(.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .7; transform: scale(1) } }
@keyframes sdc-staff { 0% { transform: rotate(8deg) } 50% { transform: rotate(6deg) } 100% { transform: rotate(10deg) } }

.scn-sancti-dominici-three { background: linear-gradient(180deg, #1a1628 0%, #282240 40%, #3a3050 100%), radial-gradient(ellipse at 50% 40%, #4a3a60 0%, transparent 70%); }

.scn-sancti-dominici-three .window-arch {
  position: absolute; top: 10%; left: 30%; right: 30%; bottom: 35%;
  background: linear-gradient(180deg, #2a2640 0%, #1a1830 100%);
  border-radius: 40% 40% 0 0; border: 2px solid #4a3a5a;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
  animation: sdt-arch 20s ease-in-out infinite alternate;
}
.scn-sancti-dominici-three .grate {
  position: absolute; top: 15%; left: 33%; right: 33%; bottom: 38%;
  background: repeating-linear-gradient(0deg, #302840 0px, #302840 2px, transparent 2px, transparent 6px);
  opacity: .3;
  animation: sdt-grate 14s ease-in-out infinite alternate;
}
.scn-sancti-dominici-three .figure-bust {
  position: absolute; bottom: 35%; left: 42%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #1a1828 0%, #0e0c1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: sdt-bust 6s ease-in-out infinite;
}
.scn-sancti-dominici-three .hands {
  position: absolute; bottom: 28%; left: 48%; width: 12px; height: 14px;
  background: radial-gradient(ellipse, #1a1828 0%, #0e0c1a 100%);
  border-radius: 40% 40% 30% 30%; transform: rotate(-15deg);
  animation: sdt-hands 5s ease-in-out infinite alternate;
}
.scn-sancti-dominici-three .cautery-rod {
  position: absolute; bottom: 30%; left: 52%; width: 3px; height: 22px;
  background: linear-gradient(180deg, #c08040 0%, #a06030 100%);
  border-radius: 1px; transform: rotate(20deg);
  animation: sdt-rod 4s ease-in-out infinite alternate;
}
.scn-sancti-dominici-three .rod-glow {
  position: absolute; bottom: 48%; left: 52%; width: 8px; height: 8px;
  background: radial-gradient(circle, #f0c060 0%, #d08030 50%, transparent 100%);
  border-radius: 50%; filter: blur(2px);
  box-shadow: 0 0 30px 10px rgba(240,192,96,.5);
  animation: sdt-glow 1.5s ease-in-out infinite alternate;
}
.scn-sancti-dominici-three .cloth {
  position: absolute; bottom: 20%; left: 38%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0e10 100%);
  border-radius: 20% 20% 10% 10%; transform: rotate(5deg);
  animation: sdt-cloth 8s ease-in-out infinite alternate;
}

@keyframes sdt-arch { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes sdt-grate { 0% { opacity: .2 } 50% { opacity: .4 } 100% { opacity: .3 } }
@keyframes sdt-bust { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(1px) rotate(1deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sdt-hands { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-2px) } 100% { transform: rotate(-18deg) translateY(1px) } }
@keyframes sdt-rod { 0% { transform: rotate(20deg) scaleY(1) } 50% { transform: rotate(22deg) scaleY(1.05) } 100% { transform: rotate(18deg) scaleY(.95) } }
@keyframes sdt-glow { 0% { opacity: .5; transform: scale(.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .7; transform: scale(1) } }
@keyframes sdt-cloth { 0% { transform: rotate(5deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(7deg) } }

.scn-christmas-carol-war { background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 60%, #1a2a3a 100%), radial-gradient(ellipse at 50% 0%, #5a6a7a 0%, transparent 70%); }
.scn-christmas-carol-war .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a4a5a 0%, transparent 100%); animation: cwar-sky 8s ease-in-out infinite alternate; }
.scn-christmas-carol-war .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.5); animation: cwar-ground 6s ease-in-out infinite; }
.scn-christmas-carol-war .figure { position:absolute; bottom:30%; left:40%; width:28px; height:80px; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cwar-figure 12s ease-in-out infinite; }
.scn-christmas-carol-war .eye-glow { position:absolute; bottom:55%; left:45%; width:4px; height:6px; background: radial-gradient(circle, #f0e060 0%, #c0a040 70%); border-radius:50%; box-shadow: 0 0 12px 6px #c0a040, 0 0 24px 12px rgba(192,160,64,.4); animation: cwar-eye 3s ease-in-out infinite alternate; }
.scn-christmas-carol-war .sword { position:absolute; bottom:38%; left:46%; width:2px; height:50px; background: linear-gradient(180deg, #8a8a8a 0%, #4a4a4a 100%); transform-origin: bottom center; transform: rotate(20deg); border-radius: 0 0 4px 4px; box-shadow: 0 0 4px rgba(255,255,255,.2); animation: cwar-sword 6s ease-in-out infinite; }
.scn-christmas-carol-war .mist-a { position:absolute; top:20%; left:10%; width:120px; height:15px; background: rgba(200,210,220,.15); filter: blur(8px); border-radius:50%; animation: cwar-mist 50s linear infinite; }
.scn-christmas-carol-war .mist-b { position:absolute; top:30%; right:15%; width:80px; height:10px; background: rgba(200,210,220,.1); filter: blur(6px); border-radius:50%; animation: cwar-mistb 40s linear infinite reverse; }
@keyframes cwar-sky    { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes cwar-ground { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes cwar-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(12px) rotate(-2deg) } 50% { transform: translateX(24px) rotate(2deg) } 75% { transform: translateX(36px) rotate(-1deg) } 100% { transform: translateX(48px) rotate(0) } }
@keyframes cwar-eye    { 0% { box-shadow: 0 0 8px 4px #c0a040, 0 0 16px 6px rgba(192,160,64,.3); opacity:.7 } 50% { box-shadow: 0 0 18px 8px #f0e060, 0 0 32px 14px rgba(240,224,96,.5); opacity:1 } 100% { box-shadow: 0 0 10px 5px #c0a040, 0 0 20px 8px rgba(192,160,64,.35); opacity:.8 } }
@keyframes cwar-sword { 0% { transform: rotate(20deg) } 50% { transform: rotate(18deg) } 100% { transform: rotate(22deg) } }
@keyframes cwar-mist  { 0% { transform: translateX(-40px) scale(1) } 50% { transform: translateX(60vw) scale(1.2) } 100% { transform: translateX(120vw) scale(1) } }
@keyframes cwar-mistb { 0% { transform: translateX(0) scale(1.1) } 50% { transform: translateX(-40vw) scale(0.9) } 100% { transform: translateX(-80vw) scale(1) } }

.scn-christmas-carol-murder { background: linear-gradient(180deg, #1a1a1a 0%, #2a1a0a 100%), radial-gradient(circle at 50% 80%, #3a2a1a 0%, transparent 60%); }
.scn-christmas-carol-murder .wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a221a 0%, #1a120a 100%); box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-christmas-carol-murder .floor { position:absolute; bottom:0; left:0; right:0; height:52%; background: linear-gradient(180deg, #1a120a 0%, #0a0804 100%); border-radius: 20% 80% 0 0 / 30% 70% 0 0; }
.scn-christmas-carol-murder .table { position:absolute; bottom:30%; left:50%; width:80px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.7); animation: cmur-table 10s ease-in-out infinite; }
.scn-christmas-carol-murder .candle { position:absolute; bottom:38%; left:55%; width:8px; height:18px; background: linear-gradient(180deg, #e0d0a0 0%, #c0a060 100%); border-radius:2px; transform-origin: bottom center; animation: cmur-candle 6s ease-in-out infinite; }
.scn-christmas-carol-murder .flame { position:absolute; bottom:54%; left:55%; width:6px; height:10px; background: radial-gradient(circle, #ffd080 0%, #ff8020 70%); border-radius:50%; box-shadow: 0 0 14px 6px #ff8020, 0 0 28px 10px rgba(255,128,32,.4); animation: cmur-flame 2s ease-in-out infinite alternate; }
.scn-christmas-carol-murder .victim { position:absolute; bottom:20%; left:46%; width:30px; height:60px; background: linear-gradient(180deg, #0a0a0a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; transform: rotate(15deg); animation: cmur-victim 15s ease-in-out infinite; }
.scn-christmas-carol-murder .shadow-pool { position:absolute; bottom:18%; left:44%; width:50px; height:10px; background: rgba(0,0,0,.7); border-radius:50%; filter: blur(4px); animation: cmur-shadow 8s ease-in-out infinite; }
@keyframes cmur-table   { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes cmur-candle  { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes cmur-flame   { 0% { transform: scaleY(1) scaleX(1); opacity:.8 } 50% { transform: scaleY(1.2) scaleX(0.9); opacity:1 } 100% { transform: scaleY(0.9) scaleX(1.1); opacity:.9 } }
@keyframes cmur-victim  { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(12deg) translateY(3px) } 100% { transform: rotate(18deg) translateY(-1px) } }
@keyframes cmur-shadow  { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }

.scn-christmas-carol-conclusion { background: linear-gradient(180deg, #f0a060 0%, #c08040 50%, #804020 100%), radial-gradient(ellipse at 50% 30%, #ffd080 0%, transparent 60%); }
.scn-christmas-carol-conclusion .sky-dawn { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f0c060 0%, #ffa040 60%, transparent 100%); animation: ccon-sky 10s ease-in-out infinite alternate; }
.scn-christmas-carol-conclusion .sun { position:absolute; bottom:50%; left:50%; width:80px; height:80px; transform:translate(-50%,50%); background: radial-gradient(circle, #ffe080 0%, #ffa020 70%); border-radius:50%; box-shadow: 0 0 40px 20px #ffa020, 0 0 80px 40px rgba(255,160,32,.3); animation: ccon-sun 12s ease-in-out infinite; }
.scn-christmas-carol-conclusion .hills { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: ccon-hills 18s ease-in-out infinite; }
.scn-christmas-carol-conclusion .stable { position:absolute; bottom:30%; left:50%; width:120px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-christmas-carol-conclusion .star { position:absolute; top:15%; right:25%; width:14px; height:14px; background: radial-gradient(circle, #ffe080 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 20px 10px rgba(255,224,128,.6); animation: ccon-star 4s ease-in-out infinite alternate; }
.scn-christmas-carol-conclusion .shepherd-l { position:absolute; bottom:25%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: ccon-shepherd 8s ease-in-out infinite; }
.scn-christmas-carol-conclusion .shepherd-r { position:absolute; bottom:25%; right:30%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: ccon-shepherd 8s ease-in-out infinite reverse; }
.scn-christmas-carol-conclusion .child-silhouette { position:absolute; bottom:20%; left:50%; width:12px; height:30px; transform:translateX(-50%); background: #000; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ccon-child 6s ease-in-out infinite; }
@keyframes ccon-sky       { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ccon-sun       { 0% { transform: translate(-50%,50%) scale(1) } 50% { transform: translate(-50%,48%) scale(1.05) } 100% { transform: translate(-50%,52%) scale(0.95) } }
@keyframes ccon-hills     { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes ccon-star      { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.8; transform: scale(0.9) } }
@keyframes ccon-shepherd  { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-3px) } 100% { transform: rotate(-7deg) translateY(1px) } }
@keyframes ccon-child     { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(-5deg) } }

.scn-christmas-carol-linenotes { background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%), radial-gradient(ellipse at 50% 90%, #3a2a1a 0%, transparent 60%); }
.scn-christmas-carol-linenotes .wall { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #2a2218 0%, #1a1208 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-christmas-carol-linenotes .desk { position:absolute; bottom:20%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4% 4% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.4); animation: clin-desk 15s ease-in-out infinite; }
.scn-christmas-carol-linenotes .candle { position:absolute; bottom:45%; left:50%; width:8px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #e0d0a0 0%, #c0a060 100%); border-radius:2px; animation: clin-candle 5s ease-in-out infinite; }
.scn-christmas-carol-linenotes .flame { position:absolute; bottom:63%; left:50%; width:6px; height:12px; transform:translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #ff8020 70%); border-radius:50%; box-shadow: 0 0 16px 8px #ff8020, 0 0 32px 14px rgba(255,128,32,.3); animation: clin-flame 2s ease-in-out infinite alternate; }
.scn-christmas-carol-linenotes .papers { position:absolute; bottom:25%; left:30%; width:60px; height:45px; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius:2px; box-shadow: 2px 2px 6px rgba(0,0,0,.4); transform: rotate(-5deg); animation: clin-papers 12s ease-in-out infinite; }
.scn-christmas-carol-linenotes .quill { position:absolute; bottom:32%; left:55%; width:2px; height:40px; background: linear-gradient(180deg, #c0b0a0 0%, #8a7060 100%); transform: rotate(30deg); transform-origin: bottom center; border-radius: 0 0 2px 2px; animation: clin-quill 9s ease-in-out infinite; }
.scn-christmas-carol-linenotes .inkpot { position:absolute; bottom:28%; left:60%; width:12px; height:14px; background: radial-gradient(circle, #1a1a1a 0%, #000 70%); border-radius:50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.6); animation: clin-ink 7s ease-in-out infinite; }
.scn-christmas-carol-linenotes .desk-shadow { position:absolute; bottom:15%; left:15%; right:15%; height:10px; background: rgba(0,0,0,.5); filter: blur(6px); border-radius:50%; animation: clin-shadow 10s ease-in-out infinite; }
@keyframes clin-desk    { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(1px) } }
@keyframes clin-candle  { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes clin-flame   { 0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity:.7 } 50% { transform: translateX(-50%) scaleY(1.2) scaleX(0.9); opacity:1 } 100% { transform: translateX(-50%) scaleY(0.9) scaleX(1.1); opacity:.8 } }
@keyframes clin-papers  { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-7deg) translateY(1px) } }
@keyframes clin-quill   { 0% { transform: rotate(30deg) } 50% { transform: rotate(28deg) } 100% { transform: rotate(32deg) } }
@keyframes clin-ink     { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(5deg) } 100% { transform: translateY(1px) rotate(-5deg) } }
@keyframes clin-shadow  { 0% { opacity:.4; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(0.9) } 100% { opacity:.5; transform: scaleX(1.1) } }

/* cataract-poem – tense, overcast, mountain cataract */
.scn-cataract-poem {
  background: 
    linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 40%, #4a5a6a 70%, #3a4a5a 100%),
    radial-gradient(ellipse at 50% 0%, #5a6a7a 0%, transparent 70%);
}
.scn-cataract-poem .cliff    { position:absolute; left:0; top:10%; width:35%; height:70%; background: linear-gradient(135deg, #4a4a5a 0%, #2a2a3a 50%, #1a1a2a 100%); border-radius: 10% 60% 0% 0% / 20% 80% 0% 0%; box-shadow: inset -8px 0 20px rgba(0,0,0,.6); animation: cp-cliff 20s ease-in-out infinite; }
.scn-cataract-poem .waterfall{ position:absolute; left:40%; top:10%; width:30%; height:65%; background: linear-gradient(180deg, rgba(180,200,220,.2) 0%, rgba(200,220,240,.5) 30%, rgba(200,220,240,.3) 60%, rgba(180,200,220,.1) 100%); clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%); animation: cp-waterfall 3s ease-in-out infinite; }
.scn-cataract-poem .cavern   { position:absolute; left:42%; top:5%; width:26%; height:12%; background: radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, #3a3a4a 60%, transparent 100%); border-radius: 50% 50% 0% 0% / 80% 80% 0% 0%; animation: cp-cavern 12s ease-in-out infinite alternate; }
.scn-cataract-poem .goat     { position:absolute; right:12%; bottom:28%; width:20px; height:28px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(5deg); animation: cp-goat 4s ease-in-out infinite; }
.scn-cataract-poem .mist     { position:absolute; top:30%; left:20%; width:60%; height:20%; background: radial-gradient(ellipse at 50% 50%, rgba(180,200,220,.2) 0%, transparent 100%); filter: blur(12px); animation: cp-mist 8s ease-in-out infinite alternate; }
.scn-cataract-poem .spray    { position:absolute; bottom:30%; left:45%; width:10%; height:10%; background: radial-gradient(circle, rgba(200,220,240,.4) 0%, transparent 100%); filter: blur(4px); animation: cp-spray 2s ease-in-out infinite; }

@keyframes cp-cliff { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes cp-waterfall { 0% { transform: scaleY(1) translateY(0); opacity:0.6; } 50% { transform: scaleY(1.03) translateY(-2px); opacity:1; } 100% { transform: scaleY(0.98) translateY(1px); opacity:0.7; } }
@keyframes cp-cavern { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes cp-goat { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-3px); } }
@keyframes cp-mist { 0% { opacity:0.3; transform: scale(1) translateX(0); } 50% { opacity:0.7; transform: scale(1.1) translateX(10px); } 100% { opacity:0.4; transform: scale(0.95) translateX(-5px); } }
@keyframes cp-spray { 0%,100% { transform: scale(1) translateY(0); opacity:0.5; } 50% { transform: scale(1.2) translateY(-5px); opacity:1; } }

/* william-tell-chapel – warm, sunlit, holy chapel */
.scn-william-tell-chapel {
  background: 
    linear-gradient(180deg, #e8d5a0 0%, #c8b080 30%, #a89070 60%, #807060 100%),
    radial-gradient(ellipse at 40% 20%, #ffe8c0 0%, transparent 60%);
}
.scn-william-tell-chapel .hills   { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #a8a080 0%, #808060 100%); border-radius: 60% 40% 0% 0% / 50% 50% 0% 0%; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: wtc-hills 18s ease-in-out infinite alternate; }
.scn-william-tell-chapel .chapel  { position:absolute; bottom:25%; left:50%; width:100px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius: 6% 6% 4% 4% / 8% 8% 4% 4%; box-shadow: 0 6px 16px rgba(0,0,0,.4); animation: wtc-chapel 9s ease-in-out infinite; }
.scn-william-tell-chapel .roof    { position:absolute; bottom:55%; left:50%; width:110px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #b08050 0%, #906030 100%); clip-path: polygon(10% 100%, 50% 0%, 90% 100%); animation: wtc-roof 12s ease-in-out infinite; }
.scn-william-tell-chapel .window  { position:absolute; bottom:38%; left:50%; width:20px; height:28px; transform:translateX(-50%); background: radial-gradient(circle, #ffe080 0%, #e0b060 70%); border-radius: 4% 4% 6% 6% / 10% 10% 8% 8%; box-shadow: 0 0 24px 8px #ffe080, 0 0 48px 16px rgba(255,224,128,.5); animation: wtc-glow 3s ease-in-out infinite alternate; }
.scn-william-tell-chapel .door    { position:absolute; bottom:25%; left:50%; width:22px; height:38px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 4% 4% 0% 0% / 10% 10% 0% 0%; box-shadow: inset -2px 0 6px rgba(0,0,0,.5); animation: wtc-door 6s ease-in-out infinite; }
.scn-william-tell-chapel .cross   { position:absolute; bottom:58%; left:50%; width:4px; height:24px; transform:translateX(-50%); background: #c08040; border-radius: 1px; box-shadow: 0 -6px 0 #c08040, 0 -12px 0 #c08040; animation: wtc-cross 14s ease-in-out infinite alternate; }
.scn-william-tell-chapel .sunrays { position:absolute; top:20%; left:20%; width:60%; height:30%; background: linear-gradient(135deg, rgba(255,232,192,.3) 0%, transparent 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); filter: blur(2px); animation: wtc-sunrays 5s ease-in-out infinite; }

@keyframes wtc-hills { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes wtc-chapel { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes wtc-roof { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } }
@keyframes wtc-glow { 0% { box-shadow: 0 0 16px 4px #ffe080, 0 0 32px 8px rgba(255,224,128,.3); opacity:.8; } 50% { box-shadow: 0 0 40px 12px #ffe080, 0 0 80px 24px rgba(255,224,128,.6); opacity:1; } 100% { box-shadow: 0 0 20px 6px #ffe080, 0 0 40px 12px rgba(255,224,128,.4); opacity:.9; } }
@keyframes wtc-door { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.97); } }
@keyframes wtc-cross { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes wtc-sunrays { 0%,100% { opacity:0.6; transform: rotate(0deg); } 50% { opacity:1; transform: rotate(2deg); } }

/* william-tell-destiny – calm, overcast, hawk and mountain */
.scn-william-tell-destiny {
  background: 
    linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 40%, #6a7a8a 70%, #4a5a6a 100%),
    radial-gradient(ellipse at 70% 30%, #8a9aaa 0%, transparent 60%);
}
.scn-william-tell-destiny .sky      { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8a9aaa 0%, #6a7a8a 100%); animation: wtd-sky 20s ease-in-out infinite alternate; }
.scn-william-tell-destiny .cloud-a  { position:absolute; top:14%; left:10%; width:120px; height:24px; background: linear-gradient(180deg, rgba(200,210,220,.5) 0%, rgba(200,210,220,.1) 100%); border-radius:50%; filter: blur(8px); animation: wtd-drift-a 40s linear infinite; }
.scn-william-tell-destiny .cloud-b  { position:absolute; top:24%; right:15%; width:90px; height:18px; background: linear-gradient(180deg, rgba(200,210,220,.4) 0%, rgba(200,210,220,.05) 100%); border-radius:50%; filter: blur(6px); animation: wtd-drift-b 55s linear infinite reverse; }
.scn-william-tell-destiny .hawk     { position:absolute; top:20%; left:40%; width:70px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); clip-path: polygon(0% 50%, 20% 0%, 50% 20%, 80% 0%, 100% 50%, 80% 100%, 50% 80%, 20% 100%); animation: wtd-hawk 6s ease-in-out infinite; }
.scn-william-tell-destiny .eye-glow { position:absolute; top:22%; left:45%; width:6px; height:6px; background: radial-gradient(circle, #e0b860 0%, #c09840 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(224,184,96,.6); animation: wtd-eye 4s ease-in-out infinite alternate; }
.scn-william-tell-destiny .mountain { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 100%); clip-path: polygon(0% 100%, 0% 40%, 20% 20%, 40% 50%, 60% 10%, 80% 30%, 100% 20%, 100% 100%); animation: wtd-mountain 30s ease-in-out infinite; }

@keyframes wtd-sky { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes wtd-drift-a { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes wtd-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-130vw); } }
@keyframes wtd-hawk { 0%,100% { transform: translateY(0) rotate(0deg) scale(1); } 25% { transform: translateY(-4px) rotate(-3deg) scale(1.02); } 50% { transform: translateY(2px) rotate(2deg) scale(0.98); } 75% { transform: translateY(-2px) rotate(-1deg) scale(1.01); } }
@keyframes wtd-eye { 0% { opacity:0.5; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.7; transform: scale(0.9); } }
@keyframes wtd-mountain { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.01); } }

/* william-tell-strength – tense, sunlit, rowing on torrent */
.scn-william-tell-strength {
  background: 
    linear-gradient(180deg, #c0d0e0 0%, #a0b8c8 30%, #8098a8 70%, #608090 100%),
    radial-gradient(ellipse at 30% 20%, #f0e8c0 0%, transparent 50%);
}
.scn-william-tell-strength .sky   { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #d0e0f0 0%, #a0b8c8 100%); animation: wts-sky 12s ease-in-out infinite alternate; }
.scn-william-tell-strength .sun   { position:absolute; top:10%; left:25%; width:40px; height:40px; background: radial-gradient(circle, #ffe8a0 0%, #ffd080 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,224,128,.4); animation: wts-sun 8s ease-in-out infinite; }
.scn-william-tell-strength .boat  { position:absolute; bottom:35%; left:40%; width:80px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius: 0% 0% 40% 40% / 0% 0% 80% 80%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: wts-boat 2s ease-in-out infinite; }
.scn-william-tell-strength .figure{ position:absolute; bottom:43%; left:38%; width:16px; height:32px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: wts-row 1.5s ease-in-out infinite; }
.scn-william-tell-strength .oar   { position:absolute; bottom:45%; left:32%; width:40px; height:4px; background: #6a5a4a; border-radius: 2px; transform-origin: right center; animation: wts-oar 1.5s ease-in-out infinite; }
.scn-william-tell-strength .wave-1{ position:absolute; bottom:20%; left:0; right:0; height:20%; background: linear-gradient(180deg, #608090 0%, #4a6a7a 100%); border-radius: 20% 20% 0% 0% / 80% 80% 0% 0%; animation: wts-wave1 3s ease-in-out infinite; }
.scn-william-tell-strength .wave-2{ position:absolute; bottom:10%; left:0; right:0; height:18%; background: linear-gradient(180deg, #507080 0%, #3a5a6a 100%); border-radius: 30% 30% 0% 0% / 70% 70% 0% 0%; animation: wts-wave2 4s ease-in-out infinite; }
.scn-william-tell-strength .spray { position:absolute; bottom:50%; left:42%; width:30px; height:20px; background: radial-gradient(ellipse at 50% 100%, rgba(200,220,240,.3) 0%, transparent 100%); filter: blur(3px); animation: wts-spray 1s ease-in-out infinite; }

@keyframes wts-sky { 0% { opacity:0.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.01); } 100% { opacity:0.85; transform: scaleY(0.99); } }
@keyframes wts-sun { 0%,100% { transform: scale(1) translate(0,0); opacity:0.9; } 50% { transform: scale(1.1) translate(2px,-2px); opacity:1; } }
@keyframes wts-boat { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-4deg); } }
@keyframes wts-row { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-8deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(8deg) translateY(-2px); } }
@keyframes wts-oar { 0%,100% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(-20deg) translateX(-8px); } }
@keyframes wts-wave1 { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-5px) scaleX(1.02); } }
@keyframes wts-wave2 { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(0.98); } }
@keyframes wts-spray { 0%,100% { opacity:0.3; transform: translateY(0) scale(1); } 50% { opacity:0.8; transform: translateY(-8px) scale(1.3); } }

.scn-names-from-lessing {
  background: 
    linear-gradient(180deg, #1e1a1c 0%, #2c241f 40%, #3a2e28 70%, #251e1b 100%),
    radial-gradient(ellipse at 80% 60%, #5a3a28 0%, transparent 60%);
}
.scn-names-from-lessing .wall { position:absolute; inset:0; background: linear-gradient(135deg, #1e1a1c 0%, #2c241f 100%); }
.scn-names-from-lessing .window-glow {
  position:absolute; top:12%; left:16%; width:30%; height:40%;
  background: radial-gradient(ellipse at 50% 50%, #d4a060 0%, #a06830 50%, transparent 80%);
  border-radius: 4px 4px 30% 30% / 20% 20% 60% 60%;
  box-shadow: 0 0 40px 20px rgba(212,160,96,0.3);
  animation: nfl-window 8s ease-in-out infinite alternate;
}
.scn-names-from-lessing .lamp {
  position:absolute; bottom:42%; left:55%; width:12px; height:20px;
  background: radial-gradient(ellipse 6px 10px at 50% 80%, #f0c068 0%, #c08040 60%, transparent 80%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 15px rgba(240,192,104,0.4);
  animation: nfl-lamp 4s ease-in-out infinite;
}
.scn-names-from-lessing .desk {
  position:absolute; bottom:18%; left:20%; right:20%; height:16%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px 2px 8px 8px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
.scn-names-from-lessing .chair {
  position:absolute; bottom:18%; left:12%; width:20%; height:32%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 20% 20% 4% 4% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: nfl-chair 6s ease-in-out infinite alternate;
}
.scn-names-from-lessing .figure {
  position:absolute; bottom:22%; left:42%; width:14%; height:50%;
  background: linear-gradient(180deg, #1a1420 0%, #0a0810 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nfl-figure 7s ease-in-out infinite;
}
.scn-names-from-lessing .curtain {
  position:absolute; top:0; left:0; width:20%; height:100%;
  background: linear-gradient(135deg, #4a2a1a 0%, #2a1a0a 60%, #1a1208 100%);
  border-radius: 0 20% 20% 0 / 0 30% 30% 0;
  filter: blur(1px);
  animation: nfl-curtain 12s ease-in-out infinite alternate;
}
@keyframes nfl-window {
  0% { opacity:0.7; transform: scaleX(0.98); }
  50% { opacity:1; transform: scaleX(1.02); }
  100% { opacity:0.8; transform: scaleX(0.99); }
}
@keyframes nfl-lamp {
  0%,100% { opacity:0.85; box-shadow: 0 0 30px 15px rgba(240,192,104,0.4); }
  50% { opacity:1; box-shadow: 0 0 45px 20px rgba(240,192,104,0.6); }
}
@keyframes nfl-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes nfl-figure {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(0.3deg); }
  50% { transform: translateY(-1.5px) rotate(-0.3deg); }
  75% { transform: translateY(-1px) rotate(0.2deg); }
}
@keyframes nfl-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(0); }
}

.scn-devil-thoughts-intro {
  background: 
    linear-gradient(180deg, #1a1a3a 0%, #2a1c4a 30%, #6a3a2a 60%, #c08040 85%, #f0c060 100%),
    radial-gradient(ellipse at 50% 100%, #f0c060 0%, transparent 60%);
}
.scn-devil-thoughts-intro .dawn-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1a3a 0%, #c08040 100%); }
.scn-devil-thoughts-intro .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%);
  border-radius: 60% 40% 0 0 / 30% 50% 0 0;
}
.scn-devil-thoughts-intro .brimstone-bed {
  position:absolute; bottom:28%; left:10%; width:25%; height:12%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 60% 20% 20% / 60% 80% 30% 30%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
  animation: dti-bed 10s ease-in-out infinite alternate;
}
.scn-devil-thoughts-intro .devil-body {
  position:absolute; bottom:26%; left:40%; width:12%; height:50%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dti-walk 4s ease-in-out infinite;
}
.scn-devil-thoughts-intro .devil-tail {
  position:absolute; bottom:30%; left:50%; width:20%; height:6%;
  background: linear-gradient(90deg, #2a1a1a 0%, #3a2a2a 100%);
  border-radius: 0 50% 50% 0 / 0 100% 100% 0;
  transform-origin: left center;
  animation: dti-tail 2s ease-in-out infinite alternate;
}
.scn-devil-thoughts-intro .farm-hill {
  position:absolute; bottom:36%; left:60%; width:30%; height:20%;
  background: radial-gradient(ellipse at 50% 100%, #2a4a2a 0%, #1a2a1a 100%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-devil-thoughts-intro .cloud-drift {
  position:absolute; top:12%; left:0; width:40%; height:8%;
  background: linear-gradient(90deg, rgba(200,180,160,0.6) 0%, rgba(200,180,160,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: dti-cloud 40s linear infinite;
}
@keyframes dti-bed {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes dti-walk {
  0%,100% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(5px) rotate(-3deg); }
  40% { transform: translateX(10px) rotate(0deg); }
  60% { transform: translateX(15px) rotate(3deg); }
  80% { transform: translateX(20px) rotate(0deg); }
}
@keyframes dti-tail {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes dti-cloud {
  0% { transform: translateX(-40%); }
  100% { transform: translateX(140vw); }
}

.scn-devil-sunday-best {
  background: 
    linear-gradient(180deg, #4a8cbf 0%, #80b8e0 30%, #c0d8f0 60%, #e0e8b0 100%),
    radial-gradient(ellipse at 50% 0%, #fff8d0 0%, transparent 70%);
}
.scn-devil-sunday-best .sunny-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a8cbf 0%, #80b8e0 100%); }
.scn-devil-sunday-best .dunghill {
  position:absolute; bottom:0; left:20%; right:20%; height:30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 0 0 / 80% 90% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-devil-sunday-best .devil-form {
  position:absolute; bottom:28%; left:40%; width:14%; height:55%;
  background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 60%, #4a1a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: dsb-devil 5s ease-in-out infinite;
}
.scn-devil-sunday-best .devil-tail-hole {
  position:absolute; bottom:32%; left:50%; width:8%; height:20%;
  background: linear-gradient(180deg, #3a5f8a 0%, #1a2a4a 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  animation: dsb-tail 3s ease-in-out infinite alternate;
}
.scn-devil-sunday-best .lawyer-silhouette {
  position:absolute; bottom:22%; left:62%; width:12%; height:40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: dsb-lawyer 6s ease-in-out infinite;
}
.scn-devil-sunday-best .viper {
  position:absolute; bottom:20%; left:70%; width:8%; height:4%;
  background: linear-gradient(90deg, #2a4a1a 0%, #4a6a2a 50%, #2a4a1a 100%);
  border-radius: 50%;
  transform-origin: left center;
  animation: dsb-viper 2s ease-in-out infinite alternate;
}
.scn-devil-sunday-best .sunbeams {
  position:absolute; top:0; left:30%; width:40%; height:30%;
  background: linear-gradient(135deg, rgba(255,255,200,0.4) 0%, transparent 60%);
  clip-path: polygon(0 100%, 50% 0, 100% 100%);
  animation: dsb-sun 20s linear infinite;
}
.scn-devil-sunday-best .tree-stump {
  position:absolute; bottom:28%; left:15%; width:10%; height:15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30% / 10% 10% 50% 50%;
}
@keyframes dsb-devil {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
}
@keyframes dsb-tail {
  0% { transform: rotate(-15deg); }
  100% { transform: rotate(15deg); }
}
@keyframes dsb-lawyer {
  0%,100% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(2px) rotate(-2deg); }
  60% { transform: translateX(-2px) rotate(2deg); }
}
@keyframes dsb-viper {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(1px) rotate(5deg); }
  100% { transform: translateX(0) rotate(-5deg); }
}
@keyframes dsb-sun {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.scn-devil-apothecary {
  background: 
    linear-gradient(180deg, #4a4a4a 0%, #5a5a5a 30%, #6a6a5a 60%, #5a4a3a 100%),
    radial-gradient(ellipse at 50% 0%, #b0b0b0 0%, transparent 60%);
}
.scn-devil-apothecary .overcast-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #4a4a4a 0%, #7a7a7a 100%); }
.scn-devil-apothecary .road {
  position:absolute; bottom:15%; left:0; right:0; height:20%;
  background: linear-gradient(90deg, #3a3a2a 0%, #4a4a3a 50%, #3a3a2a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-devil-apothecary .devil-figure {
  position:absolute; bottom:28%; left:20%; width:12%; height:50%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dap-devil 8s ease-in-out infinite alternate;
}
.scn-devil-apothecary .apothecary-horse {
  position:absolute; bottom:22%; left:50%; width:18%; height:30%;
  background: linear-gradient(180deg, #b0b0b0 0%, #8a8a8a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: dap-horse 6s ease-in-out infinite;
}
.scn-devil-apothecary .cottage-form {
  position:absolute; bottom:18%; right:10%; width:25%; height:30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 4% 4% / 30% 30% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: dap-cottage 12s ease-in-out infinite alternate;
}
.scn-devil-apothecary .coach-house {
  position:absolute; bottom:18%; right:38%; width:18%; height:20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 4% 4% / 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-devil-apothecary .bare-tree {
  position:absolute; bottom:30%; left:5%; width:8%; height:40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 4% 4% / 20% 20% 10% 10%;
  animation: dap-tree 15s ease-in-out infinite alternate;
}
@keyframes dap-devil {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes dap-horse {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(0.5deg); }
  50% { transform: translateY(-1px) rotate(-0.5deg); }
  75% { transform: translateY(-2px) rotate(0.3deg); }
}
@keyframes dap-cottage {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes dap-tree {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-0.5deg); }
}

/* ── Scene: farewell-to-love-variants ── */
.scn-farewell-to-love-variants {
  background: linear-gradient(180deg, #1e1e2e 0%, #2a2a3e 30%, #3a2a1a 70%, #1a1010 100%),
              radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 60%);
}
.scn-farewell-to-love-variants .bg-wall {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #2e2e42 0%, #1a1a2a 100%);
}
.scn-farewell-to-love-variants .bg-floor {
  position: absolute; inset: 55% 0 0 0;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
}
.scn-farewell-to-love-variants .desk {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-farewell-to-love-variants .manuscript {
  position: absolute; bottom: 28%; left: 32%; width: 18%; height: 12%;
  background: linear-gradient(135deg, #d4c4a8 0%, #b8a88a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: flv-manuscript 6s ease-in-out infinite alternate;
}
.scn-farewell-to-love-variants .candle {
  position: absolute; bottom: 34%; left: 44%; width: 3%; height: 14%;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8a870 60%, #8a6a3a 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(200,168,112,0.3);
}
.scn-farewell-to-love-variants .candle-glow {
  position: absolute; bottom: 36%; left: 42%; width: 10%; height: 20%;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.6) 30%, rgba(255,208,128,0.1) 70%, transparent 100%);
  border-radius: 50%;
  animation: flv-glow 3s ease-in-out infinite alternate;
}
.scn-farewell-to-love-variants .figure {
  position: absolute; bottom: 22%; left: 30%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: flv-figure 8s ease-in-out infinite;
}
.scn-farewell-to-love-variants .quill {
  position: absolute; bottom: 34%; left: 36%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a88a 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: flv-quill 4s ease-in-out infinite alternate;
}
.scn-farewell-to-love-variants .dust {
  position: absolute; top: 30%; left: 60%; width: 4%; height: 4%;
  background: radial-gradient(circle, rgba(240,220,200,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: flv-dust 20s linear infinite;
}
@keyframes flv-manuscript {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes flv-glow {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes flv-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes flv-quill {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-2px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes flv-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0.3; }
  50% { transform: translate(10px, -20px) scale(1.5); opacity: 0.1; }
  100% { transform: translate(30px, -10px) scale(0.8); opacity: 0; }
}

/* ── Scene: farewell-to-love-variants-two ── */
.scn-farewell-to-love-variants-two {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2040 40%, #3a2a1a 80%, #1a1010 100%),
              radial-gradient(ellipse at 30% 60%, #4a3a2a 0%, transparent 60%);
}
.scn-farewell-to-love-variants-two .bg-shelf {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
}
.scn-farewell-to-love-variants-two .bg-window {
  position: absolute; top: 10%; left: 60%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, #3a3a5e 0%, #1a1a2e 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-farewell-to-love-variants-two .bookshelf {
  position: absolute; bottom: 25%; left: 10%; width: 35%; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.5);
}
.scn-farewell-to-love-variants-two .book-row {
  position: absolute; bottom: 35%; left: 12%; width: 30%; height: 8%;
  background: linear-gradient(90deg, #8a6a3a 0%, #6a4a2a 20%, #5a3a1a 40%, #8a6a3a 60%, #6a4a2a 80%, #5a3a1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: flt-books 10s ease-in-out infinite alternate;
}
.scn-farewell-to-love-variants-two .lamp {
  position: absolute; bottom: 30%; left: 50%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #a08060 0%, #705540 100%);
  border-radius: 4px;
  transform: rotate(-5deg);
  transform-origin: bottom center;
}
.scn-farewell-to-love-variants-two .lamp-glow {
  position: absolute; bottom: 32%; left: 46%; width: 12%; height: 24%;
  background: radial-gradient(ellipse, #ffd080 0%, rgba(255,208,128,0.4) 40%, transparent 100%);
  border-radius: 50%;
  animation: flt-lamp 4s ease-in-out infinite alternate;
}
.scn-farewell-to-love-variants-two .figure-seated {
  position: absolute; bottom: 20%; left: 35%; width: 18%; height: 38%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: flt-seated 6s ease-in-out infinite;
}
.scn-farewell-to-love-variants-two .quill-hand {
  position: absolute; bottom: 24%; left: 42%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a88a 100%);
  border-radius: 40%;
  transform: rotate(30deg);
  transform-origin: bottom center;
  animation: flt-quill 5s ease-in-out infinite alternate;
}
.scn-farewell-to-love-variants-two .paper {
  position: absolute; bottom: 26%; left: 30%; width: 12%; height: 10%;
  background: linear-gradient(135deg, #d4c4a8 0%, #b8a88a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: flt-paper 7s ease-in-out infinite alternate;
}
@keyframes flt-books {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(0.98); }
}
@keyframes flt-lamp {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(1); }
}
@keyframes flt-seated {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  75% { transform: translateX(1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes flt-quill {
  0% { transform: rotate(30deg) translateY(0); }
  50% { transform: rotate(35deg) translateY(-3px); }
  100% { transform: rotate(30deg) translateY(0); }
}
@keyframes flt-paper {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

/* ── Scene: to-wordsworth-social-sense ── */
.scn-to-wordsworth-social-sense {
  background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 30%, #5a5a6a 60%, #3a3a4a 100%),
              radial-gradient(ellipse at 50% 30%, #6a6a7a 0%, transparent 70%);
}
.scn-to-wordsworth-social-sense .sky-grey {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #6a6a7a 40%, #5a5a6a 100%);
  animation: wso-sky 12s ease-in-out infinite alternate;
}
.scn-to-wordsworth-social-sense .cloud-heavy {
  position: absolute; top: 10%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 20% 50%, #5a5a6a 0%, #3a3a4a 50%, transparent 100%),
              radial-gradient(ellipse at 80% 30%, #4a4a5a 0%, #2a2a3a 100%);
  filter: blur(8px);
  animation: wso-cloud 20s linear infinite;
}
.scn-to-wordsworth-social-sense .sea-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: wso-sea 15s ease-in-out infinite alternate;
}
.scn-to-wordsworth-social-sense .ship-hull {
  position: absolute; bottom: 30%; left: 40%; width: 20%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: wso-ship 8s ease-in-out infinite;
}
.scn-to-wordsworth-social-sense .ship-mast {
  position: absolute; bottom: 38%; left: 47%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 2px;
}
.scn-to-wordsworth-social-sense .lightning {
  position: absolute; top: 15%; left: 50%; width: 4%; height: 30%;
  background: linear-gradient(180deg, rgba(255,255,255,0.9) 0%, rgba(255,255,255,0) 100%);
  clip-path: polygon(50% 0%, 60% 30%, 40% 30%, 50% 60%, 45% 60%, 55% 100%, 50% 100%);
  opacity: 0;
  animation: wso-lightning 6s linear infinite;
}
.scn-to-wordsworth-social-sense .figure-cliff {
  position: absolute; bottom: 35%; left: 15%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wso-figure 10s ease-in-out infinite;
}
.scn-to-wordsworth-social-sense .hope-figure {
  position: absolute; bottom: 40%; left: 70%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8b89e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(240,224,192,0.5);
  animation: wso-hope 6s ease-in-out infinite alternate;
}
.scn-to-wordsworth-social-sense .spray {
  position: absolute; bottom: 30%; left: 35%; width: 15%; height: 5%;
  background: radial-gradient(ellipse, rgba(200,200,220,0.3) 0%, transparent 100%);
  filter: blur(2px);
  animation: wso-spray 12s linear infinite;
}
@keyframes wso-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes wso-cloud {
  0% { transform: translateX(-10%) scale(1); }
  50% { transform: translateX(50%) scale(1.1); }
  100% { transform: translateX(100%) scale(0.9); }
}
@keyframes wso-sea {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(1.02); }
  100% { transform: translateY(2px) scaleX(0.98); }
}
@keyframes wso-ship {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(1px) rotate(-2deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes wso-lightning {
  0% { opacity: 0; }
  5% { opacity: 1; }
  10% { opacity: 0; }
  15% { opacity: 0.8; }
  20% { opacity: 0; }
  100% { opacity: 0; }
}
@keyframes wso-figure {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(5px) rotate(3deg); }
  66% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes wso-hope {
  0% { transform: scale(0.9) translateY(0); opacity: 0.6; }
  50% { transform: scale(1.1) translateY(-10px); opacity: 1; }
  100% { transform: scale(0.9) translateY(0); opacity: 0.6; }
}
@keyframes wso-spray {
  0% { transform: translateX(0) translateY(0) scale(1); opacity: 0.3; }
  50% { transform: translateX(20px) translateY(-10px) scale(1.2); opacity: 0.1; }
  100% { transform: translateX(40px) translateY(0) scale(0.8); opacity: 0; }
}

/* ── Scene: to-wordsworth-peace ── */
.scn-to-wordsworth-peace {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2030 40%, #3a2a1a 80%, #1a1010 100%),
              radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 60%);
}
.scn-to-wordsworth-peace .bg-warm {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
}
.scn-to-wordsworth-peace .fireplace {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.6);
}
.scn-to-wordsworth-peace .fire-glow {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse, #ff8040 0%, #ff6020 30%, rgba(255,96,32,0.3) 60%, transparent 100%);
  border-radius: 50%;
  animation: wpe-fire 4s ease-in-out infinite alternate;
}
.scn-to-wordsworth-peace .window-stars {
  position: absolute; top: 8%; right: 8%; width: 25%; height: 30%;
  background: radial-gradient(circle at 30% 40%, rgba(200,200,255,0.6) 0%, transparent 5%),
              radial-gradient(circle at 70% 20%, rgba(200,200,255,0.4) 0%, transparent 4%),
              radial-gradient(circle at 50% 70%, rgba(200,200,255,0.5) 0%, transparent 6%),
              radial-gradient(circle at 20% 80%, rgba(200,200,255,0.3) 0%, transparent 3%);
  background-size: 100% 100%;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: wpe-stars 30s linear infinite;
}
.scn-to-wordsworth-peace .chair {
  position: absolute; bottom: 12%; left: 15%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-to-wordsworth-peace .figure-repose {
  position: absolute; bottom: 15%; left: 18%; width: 18%; height: 32%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wpe-repose 12s ease-in-out infinite alternate;
}
.scn-to-wordsworth-peace .ember {
  position: absolute; bottom: 20%; left: 40%; width: 2%; height: 2%;
  background: radial-gradient(circle, #ff8040 0%, #ff6020 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(255,96,32,0.6);
  animation: wpe-ember 3s ease-in-out infinite;
}
.scn-to-wordsworth-peace .curtain {
  position: absolute; top: 0; left: 0; width: 12%; height: 100%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 20% 20% 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.4);
  animation: wpe-curtain 15s ease-in-out infinite alternate;
}
@keyframes wpe-fire {
  0% { transform: scale(0.9) translateY(0); opacity: 0.7; }
  50% { transform: scale(1.1) translateY(-5px); opacity: 1; }
  100% { transform: scale(0.95) translateY(2px); opacity: 0.8; }
}
@keyframes wpe-stars {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-5px) translateY(3px); }
  100% { transform: translateX(5px) translateY(-2px); }
}
@keyframes wpe-repose {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes wpe-ember {
  0% { transform: translate(0, 0) scale(1); opacity: 1; }
  50% { transform: translate(5px, -15px) scale(0.5); opacity: 0.3; }
  100% { transform: translate(10px, -30px) scale(0); opacity: 0; }
}
@keyframes wpe-curtain {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-3px) scaleY(1.02); }
  100% { transform: translateX(2px) scaleY(0.98); }
}

.scn-date-tree-love-denied {
  background:
    radial-gradient(ellipse at 30% 20%, #2a1a3e 0%, #0e0a1a 80%),
    linear-gradient(180deg, #1a1a3e 0%, #0a0a1e 100%);
}
.scn-date-tree-love-denied .window-sky {
  position: absolute; inset: 8% 10% 40% 10%;
  background: linear-gradient(180deg, #3a2a5e 0%, #1a1a3e 100%);
  border-radius: 2%;
  animation: dtl-sky 20s ease-in-out infinite alternate;
}
.scn-date-tree-love-denied .window-frame {
  position: absolute; inset: 6% 8% 38% 8%;
  border: 3px solid #3a2a2a;
  background: transparent;
  box-shadow: inset 0 0 0 2px #1a1a1a;
  border-radius: 3%;
}
.scn-date-tree-love-denied .date-palm {
  position: absolute; bottom: 38%; left: 35%; width: 4px; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 2px;
  transform-origin: bottom;
  animation: dtl-palm-sway 8s ease-in-out infinite alternate;
}
.scn-date-tree-love-denied .date-palm::before {
  content: ''; position: absolute; top: -18%; left: -600%; width: 1400%; height: 20%;
  background: radial-gradient(ellipse, #3a5a2a 0%, transparent 70%);
  border-radius: 50%;
  animation: dtl-palm-fronds 8s ease-in-out infinite alternate;
}
.scn-date-tree-love-denied .figure-silhouette {
  position: absolute; bottom: 32%; left: 50%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) translateY(0);
  animation: dtl-figure-breathe 6s ease-in-out infinite, dtl-figure-turn 12s ease-in-out infinite;
}
.scn-date-tree-love-denied .lantern-glow {
  position: absolute; bottom: 28%; left: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, #d4a050 0%, #b08030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(180, 128, 48, 0.6), 0 0 40px 16px rgba(180, 128, 48, 0.3);
  animation: dtl-lantern-flicker 4s ease-in-out infinite alternate;
}
.scn-date-tree-love-denied .floor-shadow {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, transparent 0%, #0a0a1a 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: dtl-shadow-breathe 6s ease-in-out infinite;
}
@keyframes dtl-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes dtl-palm-sway {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1.5deg); }
  100% { transform: rotate(-0.5deg); }
}
@keyframes dtl-palm-fronds {
  0% { transform: rotate(-2deg) scaleX(1); }
  50% { transform: rotate(2deg) scaleX(1.05); }
  100% { transform: rotate(-1deg) scaleX(0.95); }
}
@keyframes dtl-figure-breathe {
  0% { transform: translateX(-50%) translateY(0) scaleY(1); }
  50% { transform: translateX(-50%) translateY(-2px) scaleY(1.02); }
  100% { transform: translateX(-50%) translateY(0) scaleY(1); }
}
@keyframes dtl-figure-turn {
  0% { transform: translateX(-50%) rotateY(0deg); }
  50% { transform: translateX(-50%) rotateY(15deg); }
  100% { transform: translateX(-50%) rotateY(0deg); }
}
@keyframes dtl-lantern-flicker {
  0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 20px 8px rgba(180,128,48,0.6); }
  50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 30px 12px rgba(180,128,48,0.9); }
  100% { transform: scale(0.95); opacity: 0.7; box-shadow: 0 0 15px 5px rgba(180,128,48,0.4); }
}
@keyframes dtl-shadow-breathe {
  0% { opacity: 0.5; transform: scaleY(1); }
  50% { opacity: 0.7; transform: scaleY(0.95); }
  100% { opacity: 0.5; transform: scaleY(1); }
}

.scn-true-love-price {
  background:
    radial-gradient(ellipse at 50% 60%, #4a3020 0%, #1a1208 100%),
    linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
}
.scn-true-love-price .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 0 0 20% 20%;
  animation: tlp-wall-fade 14s ease-in-out infinite alternate;
}
.scn-true-love-price .table {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 14%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-true-love-price .candle {
  position: absolute; bottom: 34%; left: 50%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #e0c8a0 0%, #a08060 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  animation: tlp-candle-sway 6s ease-in-out infinite alternate;
}
.scn-true-love-price .flame-glow {
  position: absolute; bottom: 52%; left: 50%; width: 14px; height: 20px;
  background: radial-gradient(ellipse, #ffd080 0%, #e08030 50%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 30px 15px rgba(224, 128, 48, 0.5), 0 0 60px 30px rgba(224, 128, 48, 0.2);
  animation: tlp-flame-flicker 3s ease-in-out infinite alternate;
}
.scn-true-love-price .heart-mine {
  position: absolute; bottom: 30%; left: 38%; width: 20px; height: 18px;
  background: radial-gradient(ellipse at 50% 40%, #d08050 0%, #a05030 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  box-shadow: 0 0 20px 6px rgba(160, 80, 48, 0.6);
  animation: tlp-heartbeat 2s ease-in-out infinite;
}
.scn-true-love-price .figure-kneeling {
  position: absolute; bottom: 22%; left: 30%; width: 16px; height: 44px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateY(0) scaleY(1);
  animation: tlp-kneel-breathe 5s ease-in-out infinite;
}
.scn-true-love-price .books-pile {
  position: absolute; bottom: 22%; right: 10%; width: 20px; height: 16px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 10%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.5);
  animation: tlp-books-shift 10s ease-in-out infinite alternate;
}
@keyframes tlp-wall-fade {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes tlp-candle-sway {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1.5deg); }
  100% { transform: translateX(-50%) rotate(-0.5deg); }
}
@keyframes tlp-flame-flicker {
  0% { transform: translateX(-50%) scale(0.9); opacity: 0.8; }
  50% { transform: translateX(-50%) scale(1.15); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.85); opacity: 0.7; }
}
@keyframes tlp-heartbeat {
  0% { transform: rotate(-15deg) scale(1); }
  25% { transform: rotate(-15deg) scale(1.2); }
  50% { transform: rotate(-15deg) scale(1); }
  75% { transform: rotate(-15deg) scale(1.15); }
  100% { transform: rotate(-15deg) scale(1); }
}
@keyframes tlp-kneel-breathe {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes tlp-books-shift {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}

.scn-separation-courage {
  background:
    radial-gradient(ellipse at 70% 50%, #1a1a2e 0%, #0e0a1a 100%),
    linear-gradient(180deg, #1e1e2a 0%, #0a0a1a 100%);
}
.scn-separation-courage .dark-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #0e0e1a 100%);
}
.scn-separation-courage .door-frame {
  position: absolute; bottom: 25%; left: 20%; right: 60%; height: 60%;
  border: 4px solid #2a1a1a;
  background: transparent;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-separation-courage .door-light {
  position: absolute; bottom: 25%; left: 22%; right: 58%; height: 58%;
  background: linear-gradient(180deg, #4a3a5e 0%, #2a2a4e 100%);
  animation: sc-doorlight-pluse 10s ease-in-out infinite alternate;
}
.scn-separation-courage .figure-standing {
  position: absolute; bottom: 25%; left: 45%; width: 16px; height: 48px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) translateY(0);
  animation: sc-figure-breathe 7s ease-in-out infinite, sc-figure-turn 14s ease-in-out infinite;
}
.scn-separation-courage .shadow-long {
  position: absolute; bottom: 25%; left: 45%; right: 10%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, transparent 100%);
  filter: blur(6px);
  animation: sc-shadow-lengthen 10s ease-in-out infinite alternate;
}
.scn-separation-courage .floor-line {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 2px;
  background: #3a3a4e;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
@keyframes sc-doorlight-pluse {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes sc-figure-breathe {
  0% { transform: translateX(-50%) translateY(0) scaleY(1); }
  50% { transform: translateX(-50%) translateY(-2px) scaleY(1.02); }
  100% { transform: translateX(-50%) translateY(0) scaleY(1); }
}
@keyframes sc-figure-turn {
  0% { transform: translateX(-50%) rotateY(0deg); }
  50% { transform: translateX(-50%) rotateY(20deg); }
  100% { transform: translateX(-50%) rotateY(0deg); }
}
@keyframes sc-shadow-lengthen {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.3); opacity: 0.9; }
  100% { transform: scaleX(1); opacity: 0.7; }
}

.scn-rash-conjurer {
  background:
    radial-gradient(ellipse at 30% 40%, #2a1a3e 0%, #0a0a1a 80%),
    linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%);
}
.scn-rash-conjurer .stage-back {
  position: absolute; inset: 10% 5% 15% 5%;
  background: linear-gradient(180deg, #2e2a3e 0%, #1a1a2e 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-rash-conjurer .conjurer {
  position: absolute; bottom: 20%; left: 15%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom;
  animation: rc-conjurer-bounce 4s ease-in-out infinite;
}
.scn-rash-conjurer .hat-tip {
  position: absolute; bottom: 58%; left: 13%; width: 20px; height: 8px;
  background: #2a1a0e;
  border-radius: 6px 6px 0 0;
  animation: rc-hat-tip 6s ease-in-out infinite alternate;
}
.scn-rash-conjurer .peahen-imp {
  position: absolute; bottom: 35%; left: 50%; width: 12px; height: 16px;
  background: radial-gradient(ellipse at 50% 40%, #5a7a3a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: 0 0 8px rgba(90, 122, 58, 0.5);
  animation: rc-imp-hop 3s ease-in-out infinite;
}
.scn-rash-conjurer .curly-lamb {
  position: absolute; bottom: 25%; left: 70%; width: 18px; height: 14px;
  background: #1a1a2e;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 6px rgba(0,0,0,0.5);
  animation: rc-lamb-roll 5s ease-in-out infinite alternate;
}
.scn-rash-conjurer .sparkle-burst {
  position: absolute; top: 25%; right: 15%; width: 20px; height: 20px;
  background: radial-gradient(circle, #f0d060 0%, #d0a030 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(240, 208, 96, 0.6);
  animation: rc-sparkle 2s ease-in-out infinite alternate;
}
@keyframes rc-conjurer-bounce {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rc-hat-tip {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes rc-imp-hop {
  0% { transform: translateY(0) scale(1); }
  30% { transform: translateY(-8px) scale(1.1); }
  60% { transform: translateY(0) scale(1); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes rc-lamb-roll {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(20deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rc-sparkle {
  0% { transform: scale(0.8) rotate(0deg); opacity: 0.7; }
  50% { transform: scale(1.3) rotate(180deg); opacity: 1; }
  100% { transform: scale(0.8) rotate(360deg); opacity: 0.7; }
}

/* one block per scene id. Append to style.css. */
.scn-reproof-and-reply-intro {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0e05 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-reproof-and-reply-intro .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-reproof-and-reply-intro .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
}
.scn-reproof-and-reply-intro .desk {
  position: absolute; bottom: 22%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2210 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-reproof-and-reply-intro .flower {
  position: absolute; bottom: 32%; left: 38%; width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 80%, #c8553d 0%, #8a3a2a 40%, #3a1a0a 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rri-flower 4s ease-in-out infinite alternate;
}
.scn-reproof-and-reply-intro .figure-accuser {
  position: absolute; bottom: 28%; left: 15%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rri-accuse 6s ease-in-out infinite;
}
.scn-reproof-and-reply-intro .figure-poet {
  position: absolute; bottom: 28%; right: 18%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rri-poet 5s ease-in-out infinite alternate;
}
.scn-reproof-and-reply-intro .lamp {
  position: absolute; bottom: 50%; left: 45%; width: 6%; height: 8%;
  background: radial-gradient(circle, #f0c068 0%, #b08040 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(192,128,64,.6), 0 0 60px 20px rgba(192,128,64,.3);
  animation: rri-lamp 8s ease-in-out infinite alternate;
}
.scn-reproof-and-reply-intro .shadow-pattern {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.3) 0%, transparent 70%);
  animation: rri-shadow 12s linear infinite;
}
@keyframes rri-flower {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.05); }
  100% { transform: rotate(-3deg) scale(0.95); }
}
@keyframes rri-accuse {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(5px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-5px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes rri-poet {
  0% { transform: translateY(0) rotate(-1deg); }
  33% { transform: translateY(-4px) rotate(1deg); }
  66% { transform: translateY(-2px) rotate(0); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes rri-lamp {
  0% { box-shadow: 0 0 20px 8px #b08040, 0 0 40px 15px rgba(192,128,64,.4); opacity: .9; }
  50% { box-shadow: 0 0 40px 15px #f0c068, 0 0 80px 25px rgba(240,192,104,.6); opacity: 1; }
  100% { box-shadow: 0 0 25px 10px #b08040, 0 0 50px 18px rgba(192,128,64,.35); opacity: .85; }
}
@keyframes rri-shadow {
  0% { opacity: .5; }
  50% { opacity: .7; }
  100% { opacity: .5; }
}

.scn-reproof-and-reply-defence {
  background: 
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-reproof-and-reply-defence .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  opacity: .6;
}
.scn-reproof-and-reply-defence .poet-sleepwalk {
  position: absolute; bottom: 20%; left: 40%; width: 14%; height: 32%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rrd-walk 8s ease-in-out infinite;
}
.scn-reproof-and-reply-defence .flowers-floating {
  position: absolute; top: 20%; right: 20%; width: 12%; height: 16%;
  background: radial-gradient(circle at 50% 80%, #b87878 0%, #702243 40%, #3a1a1a 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: rrd-float 6s ease-in-out infinite alternate;
  box-shadow: 0 0 20px 5px rgba(184,120,120,.3);
}
.scn-reproof-and-reply-defence .moon {
  position: absolute; top: 10%; left: 60%; width: 8%; height: 8%;
  background: radial-gradient(circle, #e0d8b0 0%, #c0b080 60%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(192,176,128,.4);
  animation: rrd-moon 20s ease-in-out infinite alternate;
}
.scn-reproof-and-reply-defence .cloud-drift {
  position: absolute; top: 15%; left: 10%; width: 30%; height: 6%;
  background: linear-gradient(90deg, rgba(224,216,176,.4) 0%, rgba(224,216,176,.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: rrd-cloud 30s linear infinite;
}
.scn-reproof-and-reply-defence .book {
  position: absolute; bottom: 18%; left: 25%; width: 10%; height: 8%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: rrd-book 5s ease-in-out infinite alternate;
}
.scn-reproof-and-reply-defence .dream-haze {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(224,216,176,.1) 0%, transparent 60%);
  animation: rrd-haze 10s ease-in-out infinite alternate;
}
@keyframes rrd-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(10px) rotate(1deg); }
  50% { transform: translateX(20px) rotate(-1deg); }
  75% { transform: translateX(10px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes rrd-float {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-10px) rotate(5deg); opacity: .8; }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes rrd-moon {
  0% { transform: translateY(0) scale(1); opacity: .8; }
  50% { transform: translateY(-5px) scale(1.02); opacity: 1; }
  100% { transform: translateY(0) scale(0.98); opacity: .9; }
}
@keyframes rrd-cloud {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(100vw); }
}
@keyframes rrd-book {
  0% { transform: rotate(0) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes rrd-haze {
  0% { opacity: .3; }
  50% { opacity: .6; }
  100% { opacity: .2; }
}

.scn-first-advent-of-love {
  background: 
    linear-gradient(180deg, #1a1a3e 0%, #2a2a4e 40%, #3a3a5e 100%),
    radial-gradient(ellipse at 50% 30%, #4a4a6e 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-first-advent-of-love .night-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 50%, transparent 100%);
}
.scn-first-advent-of-love .star {
  position: absolute; top: 8%; left: 50%; width: 3%; height: 3%;
  background: radial-gradient(circle, #f0e8c0 0%, #e0d080 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240,232,192,.7), 0 0 60px 20px rgba(240,232,192,.4);
  animation: fal-star 4s ease-in-out infinite alternate;
}
.scn-first-advent-of-love .meadow-hills {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 60%, #1a3a1a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: fal-hills 12s ease-in-out infinite alternate;
}
.scn-first-advent-of-love .tree {
  position: absolute; bottom: 30%; left: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 60% 60% 20% 20% / 80% 80% 10% 10%;
  transform-origin: bottom center;
  animation: fal-tree 8s ease-in-out infinite alternate;
}
.scn-first-advent-of-love .window-frame {
  position: absolute; bottom: 20%; left: 10%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-first-advent-of-love .curtain {
  position: absolute; bottom: 20%; left: 10%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 4% 4%;
  animation: fal-curtain 9s ease-in-out infinite alternate;
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
}
.scn-first-advent-of-love .poet-figure {
  position: absolute; bottom: 22%; left: 25%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fal-figure 6s ease-in-out infinite;
}
.scn-first-advent-of-love .wind-sweep {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent 30%, rgba(240,232,192,.05) 50%, transparent 70%);
  animation: fal-wind 15s linear infinite;
}
@keyframes fal-star {
  0% { box-shadow: 0 0 20px 5px #e0d080, 0 0 40px 15px rgba(224,208,128,.5); opacity: .9; }
  50% { box-shadow: 0 0 40px 15px #f0e8c0, 0 0 80px 25px rgba(240,232,192,.7); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px #e0d080, 0 0 50px 18px rgba(224,208,128,.4); opacity: .85; }
}
@keyframes fal-hills {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(0.98); }
}
@keyframes fal-tree {
  0% { transform: rotate(-2deg) scaleX(1); }
  33% { transform: rotate(2deg) scaleX(1.02); }
  66% { transform: rotate(-1deg) scaleX(0.98); }
  100% { transform: rotate(1deg) scaleX(1); }
}
@keyframes fal-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(-2px); }
}
@keyframes fal-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-4px) rotate(1deg); }
  50% { transform: translateY(-2px) rotate(0); }
  75% { transform: translateY(-5px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes fal-wind {
  0% { transform: translateX(-50%); }
  100% { transform: translateX(50%); }
}

.scn-delinquent-travellers-intro {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #1a0e05 100%),
    radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-delinquent-travellers-intro .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  opacity: .7;
}
.scn-delinquent-travellers-intro .map-table {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 18%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  transform-origin: bottom center;
  animation: dti-table 12s ease-in-out infinite alternate;
}
.scn-delinquent-travellers-intro .globe {
  position: absolute; bottom: 22%; left: 30%; width: 12%; height: 16%;
  background: radial-gradient(circle at 30% 30%, #6a8a5a 0%, #4a5a3a 40%, #2a3a1a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: dti-globe 6s ease-in-out infinite;
}
.scn-delinquent-travellers-intro .figure-left {
  position: absolute; bottom: 24%; left: 15%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dti-walk-left 4s ease-in-out infinite;
}
.scn-delinquent-travellers-intro .figure-right {
  position: absolute; bottom: 24%; right: 15%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dti-walk-right 5s ease-in-out infinite;
}
.scn-delinquent-travellers-intro .luggage {
  position: absolute; bottom: 20%; left: 45%; width: 10%; height: 8%;
  background: linear-gradient(135deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 12%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: dti-luggage 3s ease-in-out infinite alternate;
}
.scn-delinquent-travellers-intro .lamp {
  position: absolute; bottom: 45%; left: 48%; width: 4%; height: 7%;
  background: radial-gradient(circle, #f0c068 0%, #b08040 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(192,128,64,.5), 0 0 60px 20px rgba(192,128,64,.25);
  animation: dti-lamp 7s ease-in-out infinite alternate;
}
.scn-delinquent-travellers-intro .travel-poster {
  position: absolute; top: 10%; right: 10%; width: 15%; height: 20%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6%;
  box-shadow: 0 2px 8px rgba(0,0,0,.5);
  animation: dti-poster 10s ease-in-out infinite alternate;
}
@keyframes dti-table {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.02) translateY(-2px); }
  100% { transform: scaleX(0.98) translateY(0); }
}
@keyframes dti-globe {
  0% { transform: rotate(0) scale(1); }
  33% { transform: rotate(10deg) scale(1.05); }
  66% { transform: rotate(-10deg) scale(0.95); }
  100% { transform: rotate(0) scale(1); }
}
@keyframes dti-walk-left {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(-8px) rotate(1deg); }
  50% { transform: translateX(-16px) rotate(-1deg); }
  75% { transform: translateX(-8px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes dti-walk-right {
  0% { transform: translateX(0) rotate(1deg); }
  25% { transform: translateX(8px) rotate(-1deg); }
  50% { transform: translateX(16px) rotate(1deg); }
  75% { transform: translateX(8px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes dti-luggage {
  0% { transform: rotate(0) translateY(0); }
  50% { transform: rotate(5deg) translateY(-3px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes dti-lamp {
  0% { box-shadow: 0 0 20px 8px #b08040, 0 0 40px 15px rgba(192,128,64,.4); opacity: .9; }
  50% { box-shadow: 0 0 35px 12px #f0c068, 0 0 70px 22px rgba(240,192,104,.6); opacity: 1; }
  100% { box-shadow: 0 0 25px 10px #b08040, 0 0 50px 18px rgba(192,128,64,.35); opacity: .85; }
}
@keyframes dti-poster {
  0% { transform: rotate(0) scale(1); }
  33% { transform: rotate(3deg) scale(1.02); }
  66% { transform: rotate(-2deg) scale(0.98); }
  100% { transform: rotate(1deg) scale(1); }
}

/* rash-conjurer-warning: funny, dim interior */
.scn-rash-conjurer-warning { background: linear-gradient(180deg, #2c1a0e 0%, #3d2817 40%, #1a0f08 100%), radial-gradient(ellipse at 30% 60%, #4a3020 0%, transparent 70%); }
.scn-rash-conjurer-warning .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3d2817 0%, #2c1a0e 60%, #1a0f08 100%); opacity:.85; }
.scn-rash-conjurer-warning .shelf-a { position:absolute; top:12%; left:5%; right:5%; height:6px; background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: rcw-shelf-a 12s ease-in-out infinite alternate; }
.scn-rash-conjurer-warning .shelf-b { position:absolute; top:28%; left:8%; right:8%; height:6px; background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: rcw-shelf-b 14s ease-in-out infinite alternate-reverse; }
.scn-rash-conjurer-warning .book-1 { position:absolute; top:8%; left:15%; width:22px; height:30px; background: linear-gradient(135deg, #7a4a2a 0%, #5a3018 100%); border-radius:2px; box-shadow: 1px 2px 4px rgba(0,0,0,.4); transform:rotate(-6deg); animation: rcw-book-1 8s ease-in-out infinite; }
.scn-rash-conjurer-warning .book-2 { position:absolute; top:10%; left:25%; width:18px; height:26px; background: linear-gradient(135deg, #6a3a1a 0%, #4a2010 100%); border-radius:2px; box-shadow: 1px 2px 4px rgba(0,0,0,.4); transform:rotate(4deg); animation: rcw-book-2 9s ease-in-out infinite 1s; }
.scn-rash-conjurer-warning .book-3 { position:absolute; top:24%; left:20%; width:20px; height:28px; background: linear-gradient(135deg, #8a5a3a 0%, #6a3a1a 100%); border-radius:2px; box-shadow: 1px 2px 4px rgba(0,0,0,.4); transform:rotate(-10deg); animation: rcw-book-3 10s ease-in-out infinite 2s; }
.scn-rash-conjurer-warning .burnt-figure { position:absolute; bottom:20%; left:50%; width:40px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #c8b8a0 0%, #a89880 40%, #6a5a4a 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; box-shadow: 0 0 20px 4px rgba(200,184,160,.3); animation: rcw-burnt 4s ease-in-out infinite; }
.scn-rash-conjurer-warning .burnt-figure::before { content:''; position:absolute; top:-8px; left:50%; width:24px; height:24px; background: radial-gradient(circle, #e0d0b8 0%, #c8b8a0 60%, #a89880 100%); border-radius:50%; transform:translateX(-50%); }
.scn-rash-conjurer-warning .ruby-glow { position:absolute; bottom:40%; left:35%; width:12px; height:12px; background: radial-gradient(circle, #c8553d 0%, #a0461a 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(200,85,61,.5), 0 0 60px 20px rgba(200,85,61,.2); animation: rcw-ruby 3s ease-in-out infinite alternate; }
.scn-rash-conjurer-warning .spark-a { position:absolute; bottom:45%; left:30%; width:4px; height:4px; background: #ffd080; border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,208,128,.8); animation: rcw-spark-a 2s ease-in-out infinite; }
.scn-rash-conjurer-warning .spark-b { position:absolute; bottom:42%; left:65%; width:3px; height:3px; background: #ffd080; border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,208,128,.8); animation: rcw-spark-b 2.5s ease-in-out infinite 1s; }
@keyframes rcw-shelf-a { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes rcw-shelf-b { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes rcw-book-1 { 0% { transform: rotate(-6deg) translateY(0) } 25% { transform: rotate(-4deg) translateY(-3px) } 50% { transform: rotate(-6deg) translateY(0) } 75% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-6deg) translateY(0) } }
@keyframes rcw-book-2 { 0% { transform: rotate(4deg) translateY(0) } 25% { transform: rotate(6deg) translateY(-2px) } 50% { transform: rotate(4deg) translateY(0) } 75% { transform: rotate(2deg) translateY(-3px) } 100% { transform: rotate(4deg) translateY(0) } }
@keyframes rcw-book-3 { 0% { transform: rotate(-10deg) translateY(0) scale(1) } 33% { transform: rotate(-8deg) translateY(-4px) scale(1.02) } 66% { transform: rotate(-12deg) translateY(-2px) scale(.98) } 100% { transform: rotate(-10deg) translateY(0) scale(1) } }
@keyframes rcw-burnt { 0% { transform: translateX(-50%) rotate(-2deg) } 25% { transform: translateX(-50%) rotate(0deg) scale(1.01) } 50% { transform: translateX(-50%) rotate(2deg) } 75% { transform: translateX(-50%) rotate(-1deg) scale(.99) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes rcw-ruby { 0% { opacity:.6; transform: scale(.95) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.7; transform: scale(1) } }
@keyframes rcw-spark-a { 0% { opacity:0; transform: translateY(0) } 50% { opacity:1; transform: translateY(-20px) } 100% { opacity:0; transform: translateY(-40px) } }
@keyframes rcw-spark-b { 0% { opacity:0; transform: translateY(0) } 50% { opacity:1; transform: translateY(-15px) } 100% { opacity:0; transform: translateY(-30px) } }

/* rash-conjurer-notes: calm, dim interior */
.scn-rash-conjurer-notes { background: linear-gradient(180deg, #2a1e12 0%, #3d2a1a 40%, #1a0f08 100%), radial-gradient(ellipse at 50% 70%, #4a3020 0%, transparent 60%); }
.scn-rash-conjurer-notes .study-wall { position:absolute; inset:0; background: linear-gradient(180deg, #3d2a1a 0%, #2a1e12 60%, #1a0f08 100%); opacity:.8; }
.scn-rash-conjurer-notes .desk { position:absolute; bottom:15%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%); border-radius:4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-rash-conjurer-notes .paper-a { position:absolute; bottom:35%; left:20%; width:50px; height:35px; background: linear-gradient(135deg, #e8dcc8 0%, #c8b898 100%); border-radius:2px; transform:rotate(-8deg); box-shadow: 1px 2px 6px rgba(0,0,0,.3); animation: rcn-paper-a 20s ease-in-out infinite alternate; }
.scn-rash-conjurer-notes .paper-b { position:absolute; bottom:32%; left:40%; width:45px; height:30px; background: linear-gradient(135deg, #d8ccb8 0%, #b8a888 100%); border-radius:2px; transform:rotate(12deg); box-shadow: 1px 2px 6px rgba(0,0,0,.3); animation: rcn-paper-b 22s ease-in-out infinite alternate-reverse; }
.scn-rash-conjurer-notes .inkwell { position:absolute; bottom:40%; left:55%; width:16px; height:18px; background: linear-gradient(180deg, #2a2018 0%, #0a0804 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.5); transform:rotate(3deg); animation: rcn-inkwell 14s ease-in-out infinite; }
.scn-rash-conjurer-notes .quill { position:absolute; bottom:55%; left:58%; width:4px; height:40px; background: linear-gradient(180deg, #e8d8c8 0%, #c8b8a0 50%, #8a7050 100%); border-radius:2px; transform-origin: bottom center; transform:rotate(18deg); box-shadow: 0 0 4px rgba(0,0,0,.2); animation: rcn-quill 6s ease-in-out infinite alternate; }
.scn-rash-conjurer-notes .candle { position:absolute; bottom:38%; left:68%; width:12px; height:28px; background: linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 60%, #a89070 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 0 8px rgba(0,0,0,.3); }
.scn-rash-conjurer-notes .flame { position:absolute; bottom:65%; left:68.5%; width:6px; height:12px; background: radial-gradient(circle at 50% 80%, #ffe8b0 0%, #ffc060 40%, #ff8010 80%, transparent 100%); border-radius:50% 50% 30% 30%; transform:translateX(-50%); animation: rcn-flame 2s ease-in-out infinite alternate; }
.scn-rash-conjurer-notes .wax-drop { position:absolute; bottom:56%; left:70%; width:4px; height:6px; background: linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 100%); border-radius:50% 50% 30% 30%; animation: rcn-wax 6s ease-in-out infinite; }
@keyframes rcn-paper-a { 0% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-6deg) translateY(-2px) } 100% { transform: rotate(-8deg) translateY(0) } }
@keyframes rcn-paper-b { 0% { transform: rotate(12deg) translateY(0) } 50% { transform: rotate(14deg) translateY(-1px) } 100% { transform: rotate(12deg) translateY(0) } }
@keyframes rcn-inkwell { 0% { transform: rotate(3deg) scale(1) } 50% { transform: rotate(1deg) scale(1.01) } 100% { transform: rotate(3deg) scale(1) } }
@keyframes rcn-quill { 0% { transform: rotate(18deg) } 50% { transform: rotate(16deg) scaleY(1.02) } 100% { transform: rotate(18deg) } }
@keyframes rcn-flame { 0% { opacity:.7; transform: translateX(-50%) scaleY(.9) translateY(0) } 50% { opacity:1; transform: translateX(-50%) scaleY(1.1) translateY(-2px) } 100% { opacity:.8; transform: translateX(-50%) scaleY(1) translateY(0) } }
@keyframes rcn-wax { 0% { transform: translateY(0); opacity:.8 } 50% { transform: translateY(-3px); opacity:1 } 100% { transform: translateY(0); opacity:.8 } }

/* childs-evening-prayer: calm, dim interior */
.scn-childs-evening-prayer { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #0e0e1a 100%), radial-gradient(ellipse at 80% 40%, #3a3a5e 0%, transparent 60%); }
.scn-childs-evening-prayer .room-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a44 0%, #1a1a2e 50%, #0e0e1a 100%); opacity:.85; }
.scn-childs-evening-prayer .bed-frame { position:absolute; bottom:8%; left:10%; right:20%; height:50%; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius:6% 6% 3% 3%; box-shadow: 0 -4px 12px rgba(0,0,0,.4); }
.scn-childs-evening-prayer .mattress { position:absolute; bottom:20%; left:12%; right:22%; height:35%; background: linear-gradient(180deg, #8a7060 0%, #6a5040 100%); border-radius:10% 10% 5% 5%; box-shadow: inset 0 4px 8px rgba(0,0,0,.3); }
.scn-childs-evening-prayer .child-figure { position:absolute; bottom:35%; left:32%; width:22px; height:40px; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: cep-child 6s ease-in-out infinite alternate; }
.scn-childs-evening-prayer .child-figure::before { content:''; position:absolute; top:-6px; left:50%; width:16px; height:16px; background: radial-gradient(circle, #5a4a5a 0%, #3a2a3a 100%); border-radius:50%; transform:translateX(-50%); }
.scn-childs-evening-prayer .window-sash { position:absolute; top:10%; right:8%; width:40px; height:50px; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4%; box-shadow: 0 0 12px rgba(0,0,0,.5); }
.scn-childs-evening-prayer .moonlight { position:absolute; top:8%; right:6%; width:44px; height:54px; background: radial-gradient(ellipse at 50% 40%, rgba(200,210,230,.4) 0%, rgba(180,190,210,.2) 40%, transparent 100%); border-radius:4%; filter: blur(2px); animation: cep-moon 18s ease-in-out infinite alternate; }
.scn-childs-evening-prayer .nightstand { position:absolute; bottom:20%; right:12%; width:20px; height:25px; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius:5%; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-childs-evening-prayer .lamp-glow { position:absolute; bottom:32%; right:14%; width:8px; height:8px; background: radial-gradient(circle, #ffe8b0 0%, #ffc060 40%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(255,224,176,.4), 0 0 40px 12px rgba(255,192,96,.2); animation: cep-lamp 5s ease-in-out infinite alternate; }
@keyframes cep-child { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(0deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes cep-moon { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes cep-lamp { 0% { opacity:.7; transform: scale(.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.8; transform: scale(1) } }

/* metrical-feet-lesson: calm, dim interior */
.scn-metrical-feet-lesson { background: linear-gradient(180deg, #2a2a1a 0%, #3d3d2a 40%, #1a1a0e 100%), radial-gradient(ellipse at 50% 60%, #4a4a30 0%, transparent 70%); }
.scn-metrical-feet-lesson .classroom-wall { position:absolute; inset:0; background: linear-gradient(180deg, #3d3d2a 0%, #2a2a1a 50%, #1a1a0e 100%); opacity:.85; }
.scn-metrical-feet-lesson .chalkboard { position:absolute; top:10%; left:15%; right:15%; height:40%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:2%; box-shadow: inset 0 0 20px rgba(0,0,0,.4), 0 4px 12px rgba(0,0,0,.3); }
.scn-metrical-feet-lesson .teacher { position:absolute; bottom:15%; left:25%; width:30px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: mfl-teacher 8s ease-in-out infinite alternate; }
.scn-metrical-feet-lesson .teacher::before { content:''; position:absolute; top:-8px; left:50%; width:20px; height:20px; background: radial-gradient(circle, #6a5a4a 0%, #4a3a2a 100%); border-radius:50%; transform:translateX(-50%); }
.scn-metrical-feet-lesson .pointer { position:absolute; bottom:55%; left:30%; width:4px; height:40px; background: linear-gradient(180deg, #8a7050 0%, #5a4030 100%); border-radius:2px; transform-origin: bottom center; transform:rotate(-20deg); box-shadow: 0 0 4px rgba(0,0,0,.2); animation: mfl-pointer 10s ease-in-out infinite; }
.scn-metrical-feet-lesson .student { position:absolute; bottom:15%; right:30%; width:24px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: mfl-student 12s ease-in-out infinite alternate-reverse; }
.scn-metrical-feet-lesson .student::before { content:''; position:absolute; top:-6px; left:50%; width:16px; height:16px; background: radial-gradient(circle, #5a4a3a 0%, #3a2a1a 100%); border-radius:50%; transform:translateX(-50%); }
.scn-metrical-feet-lesson .footstep { position:absolute; width:10px; height:6px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 0 4px rgba(0,0,0,.2); }
.scn-metrical-feet-lesson .foot-a { bottom:10%; left:20%; animation: mfl-foot-a 6s ease-in-out infinite; }
.scn-metrical-feet-lesson .foot-b { bottom:8%; left:35%; animation: mfl-foot-b 6s ease-in-out infinite 2s; }
.scn-metrical-feet-lesson .foot-c { bottom:10%; left:50%; animation: mfl-foot-c 6s ease-in-out infinite 4s; }
.scn-metrical-feet-lesson .chalk-dust { position:absolute; top:20%; left:30%; width:20px; height:20px; background: radial-gradient(circle, rgba(200,200,180,.3) 0%, transparent 100%); filter: blur(3px); animation: mfl-dust 15s ease-in-out infinite alternate; }
@keyframes mfl-teacher { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes mfl-pointer { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) scaleY(1.02) } 100% { transform: rotate(-20deg) } }
@keyframes mfl-student { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes mfl-foot-a { 0% { opacity:.3; transform: translateX(0) } 33% { opacity:.8; transform: translateX(10px) } 66% { opacity:.5; transform: translateX(20px) } 100% { opacity:.3; transform: translateX(30px) } }
@keyframes mfl-foot-b { 0% { opacity:.3; transform: translateX(0) } 33% { opacity:.8; transform: translateX(10px) } 66% { opacity:.5; transform: translateX(20px) } 100% { opacity:.3; transform: translateX(30px) } }
@keyframes mfl-foot-c { 0% { opacity:.3; transform: translateX(0) } 33% { opacity:.8; transform: translateX(10px) } 66% { opacity:.5; transform: translateX(20px) } 100% { opacity:.3; transform: translateX(30px) } }
@keyframes mfl-dust { 0% { opacity:.2; transform: translateY(0) scale(1) } 50% { opacity:.5; transform: translateY(-10px) scale(1.2) } 100% { opacity:.2; transform: translateY(0) scale(1) } }

.scn-tell-poem-notes {
  background:
    linear-gradient(180deg, #3a2e2a 0%, #2a201a 60%, #1e1612 100%),
    radial-gradient(ellipse at 30% 50%, #4a3a2e 0%, transparent 80%);
}

.scn-tell-poem-notes .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(135deg, #4a3e32 0%, #3a2e22 100%);
  border-bottom: 4px solid #2a1e12;
  animation: tpn-wall 20s ease-in-out infinite alternate;
}
.scn-tell-poem-notes .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(0deg, #1a120e 0%, #2a1e16 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
.scn-tell-poem-notes .lamp {
  position: absolute;
  bottom: 45%;
  left: 18%;
  width: 20px;
  height: 30px;
  background: radial-gradient(circle, #e8b870 0%, #b88840 60%, #6a4a20 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  box-shadow: 0 0 60px 20px rgba(200,150,70,0.3), 0 0 120px 40px rgba(200,150,70,0.15);
  animation: tpn-lamp 4s ease-in-out infinite alternate;
}
.scn-tell-poem-notes .figure-speaker {
  position: absolute;
  bottom: 28%;
  left: 40%;
  width: 24px;
  height: 60px;
  background: linear-gradient(180deg, #2a1e16 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tpn-speaker 6s ease-in-out infinite;
}
.scn-tell-poem-notes .immortal {
  position: absolute;
  width: 18px;
  height: 50px;
  background: linear-gradient(180deg, rgba(230,210,180,0.6) 0%, rgba(180,160,140,0.3) 80%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  filter: blur(2px);
}
.scn-tell-poem-notes .immortal.a {
  bottom: 30%;
  left: 55%;
  animation: tpn-immortal-a 7s ease-in-out infinite alternate;
}
.scn-tell-poem-notes .immortal.b {
  bottom: 32%;
  left: 65%;
  width: 20px;
  height: 55px;
  animation: tpn-immortal-b 9s ease-in-out infinite alternate;
}
.scn-tell-poem-notes .immortal.c {
  bottom: 28%;
  left: 72%;
  width: 16px;
  height: 45px;
  animation: tpn-immortal-c 5s ease-in-out infinite alternate;
}

@keyframes tpn-wall {
  0% { opacity: 0.85; }
  50% { opacity: 0.95; }
  100% { opacity: 0.8; }
}
@keyframes tpn-lamp {
  0% { box-shadow: 0 0 50px 15px rgba(200,150,70,0.2), 0 0 100px 30px rgba(200,150,70,0.1); opacity: 0.8; }
  50% { box-shadow: 0 0 80px 25px rgba(200,150,70,0.4), 0 0 150px 50px rgba(200,150,70,0.2); opacity: 1; }
  100% { box-shadow: 0 0 60px 18px rgba(200,150,70,0.25), 0 0 120px 35px rgba(200,150,70,0.12); opacity: 0.85; }
}
@keyframes tpn-speaker {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes tpn-immortal-a {
  0% { transform: translateY(0) scaleY(1); opacity: 0.3; }
  50% { transform: translateY(-8px) scaleY(1.1); opacity: 0.7; }
  100% { transform: translateY(0) scaleY(1); opacity: 0.4; }
}
@keyframes tpn-immortal-b {
  0% { transform: translateY(0) scaleX(1); opacity: 0.2; }
  50% { transform: translateY(-5px) scaleX(1.15); opacity: 0.6; }
  100% { transform: translateY(0) scaleX(1); opacity: 0.3; }
}
@keyframes tpn-immortal-c {
  0% { transform: translateY(0) rotate(-3deg); opacity: 0.2; }
  50% { transform: translateY(-6px) rotate(2deg); opacity: 0.5; }
  100% { transform: translateY(0) rotate(3deg); opacity: 0.3; }
}

/* ---------- celestial-quire ---------- */
.scn-celestial-quire {
  background:
    linear-gradient(180deg, #f5e8c8 0%, #d4c098 40%, #a88860 100%),
    radial-gradient(ellipse at 50% 20%, #ffe8b0 0%, transparent 70%);
}

.scn-celestial-quire .backdrop {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,240,210,0.2) 0%, rgba(200,160,110,0.3) 100%);
  animation: cq-backdrop 15s ease-in-out infinite alternate;
}
.scn-celestial-quire .pillar {
  position: absolute;
  bottom: 0;
  width: 30px;
  height: 80%;
  background: linear-gradient(90deg, #c8b090 0%, #a08060 50%, #c8b090 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
}
.scn-celestial-quire .pillar.left {
  left: 15%;
  animation: cq-pillar-left 12s ease-in-out infinite alternate;
}
.scn-celestial-quire .pillar.right {
  right: 15%;
  animation: cq-pillar-right 12s ease-in-out infinite alternate;
}
.scn-celestial-quire .table {
  position: absolute;
  bottom: 20%;
  left: 50%;
  transform: translateX(-50%);
  width: 140px;
  height: 20px;
  background: linear-gradient(180deg, #b89868 0%, #8a7040 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: cq-table 8s ease-in-out infinite;
}
.scn-celestial-quire .goblet {
  position: absolute;
  bottom: 28%;
  width: 14px;
  height: 28px;
  background: linear-gradient(180deg, #d4b080 0%, #a08050 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-celestial-quire .goblet.a {
  left: 38%;
  animation: cq-goblet-a 5s ease-in-out infinite alternate;
}
.scn-celestial-quire .goblet.b {
  right: 38%;
  animation: cq-goblet-b 5s ease-in-out infinite alternate-reverse;
}
.scn-celestial-quire .figure-hebe {
  position: absolute;
  bottom: 20%;
  left: 45%;
  width: 30px;
  height: 70px;
  background: linear-gradient(180deg, #d4b8a0 0%, #b89880 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cq-hebe 4s ease-in-out infinite;
}
.scn-celestial-quire .figure-poet {
  position: absolute;
  bottom: 22%;
  left: 55%;
  width: 26px;
  height: 65px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cq-poet 6s ease-in-out infinite;
}
.scn-celestial-quire .nectar-stream {
  position: absolute;
  bottom: 28%;
  left: 48%;
  width: 4px;
  height: 40px;
  background: linear-gradient(180deg, rgba(255,220,150,0.8) 0%, rgba(200,160,80,0) 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: cq-nectar 2s ease-in-out infinite;
}

@keyframes cq-backdrop {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes cq-pillar-left {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes cq-pillar-right {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes cq-table {
  0% { transform: translateX(-50%) scaleX(1); }
  25% { transform: translateX(-50%) scaleX(1.01); }
  50% { transform: translateX(-50%) scaleX(1); }
  75% { transform: translateX(-50%) scaleX(0.99); }
  100% { transform: translateX(-50%) scaleX(1); }
}
@keyframes cq-goblet-a {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-4px) rotate(0deg); }
  100% { transform: translateY(0) rotate(3deg); }
}
@keyframes cq-goblet-b {
  0% { transform: translateY(0) rotate(3deg); }
  50% { transform: translateY(-4px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes cq-hebe {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes cq-poet {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes cq-nectar {
  0% { transform: scaleY(1) translateY(0); opacity: 0.6; }
  50% { transform: scaleY(1.3) translateY(-5px); opacity: 1; }
  100% { transform: scaleY(1) translateY(0); opacity: 0.6; }
}

/* ---------- dithyrambe-notes ---------- */
.scn-dithyrambe-notes {
  background:
    linear-gradient(180deg, #2a3a2a 0%, #1e2a1e 50%, #121a12 100%),
    radial-gradient(ellipse at 80% 20%, #3a4a2e 0%, transparent 60%);
}

.scn-dithyrambe-notes .wall {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(135deg, #2a3a2a 0%, #1a2a1a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.5);
}
.scn-dithyrambe-notes .window-frame {
  position: absolute;
  bottom: 35%;
  left: 50%;
  transform: translateX(-50%);
  width: 140px;
  height: 100px;
  background: transparent;
  border: 8px solid #4a3a2a;
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3), 0 0 20px rgba(0,0,0,0.4);
  animation: dn-frame 10s ease-in-out infinite alternate;
}
.scn-dithyrambe-notes .window-sky {
  position: absolute;
  bottom: 35%;
  left: 50%;
  transform: translateX(-50%);
  width: 140px;
  height: 100px;
  background: linear-gradient(180deg, #4a5a3a 0%, #3a4a2a 40%, #2a3a1a 100%);
  border-radius: 8% 8% 4% 4%;
  z-index: -1;
  animation: dn-sky 20s ease-in-out infinite alternate;
}
.scn-dithyrambe-notes .foliage {
  position: absolute;
  bottom: 40%;
  left: 30%;
  width: 60%;
  height: 40%;
  background: radial-gradient(ellipse at 50% 80%, #2a4a1a 0%, transparent 70%),
              radial-gradient(ellipse at 30% 60%, #1a3a0a 0%, transparent 60%),
              radial-gradient(ellipse at 70% 50%, #3a5a2a 0%, transparent 50%);
  filter: blur(4px);
  animation: dn-foliage 15s ease-in-out infinite alternate;
}
.scn-dithyrambe-notes .citron {
  position: absolute;
  width: 12px;
  height: 16px;
  background: radial-gradient(circle, #f0e080 0%, #c8a840 70%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(200,168,64,0.4);
  animation: dn-citron 4s ease-in-out infinite;
}
.scn-dithyrambe-notes .citron.a {
  bottom: 38%;
  left: 35%;
  animation-delay: 0s;
}
.scn-dithyrambe-notes .citron.b {
  bottom: 42%;
  left: 60%;
  animation-delay: 2s;
}
.scn-dithyrambe-notes .figure-friend {
  position: absolute;
  bottom: 28%;
  left: 50%;
  transform: translateX(-50%);
  width: 22px;
  height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dn-friend 7s ease-in-out infinite;
}

@keyframes dn-frame {
  0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.2), 0 0 15px rgba(0,0,0,0.3); }
  50% { box-shadow: inset 0 0 35px rgba(0,0,0,0.4), 0 0 25px rgba(0,0,0,0.5); }
  100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.2), 0 0 15px rgba(0,0,0,0.3); }
}
@keyframes dn-sky {
  0% { background: linear-gradient(180deg, #4a5a3a 0%, #3a4a2a 40%, #2a3a1a 100%); }
  50% { background: linear-gradient(180deg, #5a6a4a 0%, #4a5a3a 40%, #3a4a2a 100%); }
  100% { background: linear-gradient(180deg, #4a5a3a 0%, #3a4a2a 40%, #2a3a1a 100%); }
}
@keyframes dn-foliage {
  0% { transform: scale(1) translateY(0); opacity: 0.7; }
  50% { transform: scale(1.03) translateY(-2px); opacity: 0.9; }
  100% { transform: scale(1) translateY(0); opacity: 0.7; }
}
@keyframes dn-citron {
  0% { transform: translateY(0) rotate(-5deg); opacity: 0.6; }
  50% { transform: translateY(-6px) rotate(0deg); opacity: 1; }
  100% { transform: translateY(0) rotate(5deg); opacity: 0.6; }
}
@keyframes dn-friend {
  0% { transform: translateX(-50%) rotate(-2deg); }
  25% { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  75% { transform: translateX(-50%) translateY(-3px) rotate(-1deg); }
  100% { transform: translateX(-50%) rotate(2deg); }
}

/* ---------- mignon-song ---------- */
.scn-mignon-song {
  background:
    linear-gradient(180deg, #b8d8e8 0%, #98c0d0 40%, #78a8b8 100%),
    radial-gradient(ellipse at 50% 30%, #d8e8f0 0%, transparent 70%);
}

.scn-mignon-song .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c0e0f0 0%, #a0c8d8 60%, #88b0c0 100%);
  animation: ms-sky 25s ease-in-out infinite alternate;
}
.scn-mignon-song .water {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(0deg, #5a8a9a 0%, #7aaeae 50%, #98c8c8 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.1);
  animation: ms-water 18s ease-in-out infinite alternate;
}
.scn-mignon-song .boat {
  position: absolute;
  bottom: 25%;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 30px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: ms-boat 6s ease-in-out infinite;
}
.scn-mignon-song .boatman {
  position: absolute;
  bottom: 30%;
  left: 42%;
  width: 22px;
  height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ms-boatman 4s ease-in-out infinite;
}
.scn-mignon-song .figure-mignon {
  position: absolute;
  bottom: 28%;
  left: 55%;
  width: 20px;
  height: 55px;
  background: linear-gradient(180deg, #b89880 0%, #8a7060 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ms-mignon 5s ease-in-out infinite;
}
.scn-mignon-song .stream-ripple {
  position: absolute;
  bottom: 22%;
  width: 40px;
  height: 8px;
  background: radial-gradient(ellipse, rgba(200,230,240,0.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-mignon-song .stream-ripple.a {
  left: 30%;
  animation: ms-ripple-a 4s ease-in-out infinite;
}
.scn-mignon-song .stream-ripple.b {
  right: 30%;
  animation: ms-ripple-b 5s ease-in-out infinite;
}
.scn-mignon-song .tree {
  position: absolute;
  bottom: 30%;
  width: 30px;
  height: 80px;
  background: radial-gradient(ellipse at 50% 20%, #4a7a3a 0%, #2a5a1a 60%, #1a3a0a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
}
.scn-mignon-song .tree.left {
  left: 10%;
  animation: ms-tree-left 20s ease-in-out infinite alternate;
}
.scn-mignon-song .tree.right {
  right: 10%;
  animation: ms-tree-right 20s ease-in-out infinite alternate;
}

@keyframes ms-sky {
  0% { background: linear-gradient(180deg, #c0e0f0 0%, #a0c8d8 60%, #88b0c0 100%); }
  50% { background: linear-gradient(180deg, #d0e8f0 0%, #b0d0e0 60%, #98b8c8 100%); }
  100% { background: linear-gradient(180deg, #c0e0f0 0%, #a0c8d8 60%, #88b0c0 100%); }
}
@keyframes ms-water {
  0% { transform: translateY(0); }
  50% { transform: translateY(3px); }
  100% { transform: translateY(0); }
}
@keyframes ms-boat {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  75% { transform: translateX(-50%) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes ms-boatman {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-3deg) translateY(-1px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(3deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ms-mignon {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes ms-ripple-a {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.5); opacity: 0.8; }
  100% { transform: scaleX(1); opacity: 0.5; }
}
@keyframes ms-ripple-b {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.8); opacity: 0.6; }
  100% { transform: scaleX(1); opacity: 0.3; }
}
@keyframes ms-tree-left {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-4px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes ms-tree-right {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}

/* Scene: improvisatore-elaboration */
.scn-improvisatore-elaboration {
  background: linear-gradient(180deg, #2a1f1a 0%, #4a3528 40%, #6b4f3a 70%, #3a2a1e 100%), radial-gradient(ellipse at 50% 80%, #5a3f2e 0%, transparent 70%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
}
.scn-improvisatore-elaboration .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1f1a 100%);
  animation: elab-wall 20s ease-in-out infinite alternate;
}
.scn-improvisatore-elaboration .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a120e 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-improvisatore-elaboration .window-glow {
  position: absolute; top: 15%; right: 20%; width: 60px; height: 90px;
  background: radial-gradient(circle, #e8b05a 0%, #c08040 50%, transparent 100%);
  border-radius: 4px;
  box-shadow: 0 0 40px 15px rgba(232,176,90,0.5);
  animation: elab-window 5s ease-in-out infinite alternate;
}
.scn-improvisatore-elaboration .figure-left {
  position: absolute; bottom: 35%; left: 20%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: elab-figL 6s ease-in-out infinite;
}
.scn-improvisatore-elaboration .figure-right {
  position: absolute; bottom: 35%; right: 25%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: elab-figR 7s ease-in-out infinite;
}
.scn-improvisatore-elaboration .figure-center {
  position: absolute; bottom: 35%; left: 50%; width: 26px; height: 52px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3222 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: elab-figC 8s ease-in-out infinite;
}
.scn-improvisatore-elaboration .candle {
  position: absolute; bottom: 40%; left: 48%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #d4a060 0%, #8a6030 100%);
  border-radius: 2px;
  animation: elab-candle 3s ease-in-out infinite alternate;
}
.scn-improvisatore-elaboration .light-halo {
  position: absolute; bottom: 40%; left: 48%; width: 40px; height: 40px;
  transform: translate(-50%, 50%);
  background: radial-gradient(circle, #f0c068 0%, rgba(240,192,104,0.3) 40%, transparent 70%);
  border-radius: 50%;
  animation: elab-halo 3s ease-in-out infinite alternate;
}
@keyframes elab-wall { 0% { opacity: 0.8 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes elab-window { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(0.98); } }
@keyframes elab-figL { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes elab-figR { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(-2deg); } 60% { transform: translateY(-2px) rotate(0deg); } }
@keyframes elab-figC { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 33% { transform: translateX(-50%) translateY(-1px) rotate(3deg); } 66% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes elab-candle { 0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.1) scaleX(0.9); opacity: 1; } 100% { transform: scaleY(0.95) scaleX(1.05); opacity: 0.7; } }
@keyframes elab-halo { 0% { transform: translate(-50%, 50%) scale(1); opacity: 0.6; } 50% { transform: translate(-50%, 50%) scale(1.2); opacity: 0.9; } 100% { transform: translate(-50%, 50%) scale(0.9); opacity: 0.5; } }

/* Scene: improvisatore-qualities */
.scn-improvisatore-qualities {
  background: linear-gradient(180deg, #1e1612 0%, #3a2a1e 40%, #4a3528 70%, #2a1f1a 100%), radial-gradient(ellipse at 50% 60%, #3a2a1e 0%, transparent 70%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}
.scn-improvisatore-qualities .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a1f1a 0%, #1e1612 100%);
}
.scn-improvisatore-qualities .table {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #4a3528 0%, #3a2a1e 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-improvisatore-qualities .tiny-glint {
  position: absolute; bottom: 36%; left: 40%; width: 8px; height: 8px;
  background: radial-gradient(circle, #f0e0a0 0%, #b08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(240,224,160,0.6);
  animation: qual-glint 4s ease-in-out infinite alternate;
}
.scn-improvisatore-qualities .hand-reaching {
  position: absolute; bottom: 30%; left: 35%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qual-hand 6s ease-in-out infinite;
}
.scn-improvisatore-qualities .face-profile {
  position: absolute; bottom: 32%; right: 30%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a12 100%);
  border-radius: 50% 40% 50% 40% / 60% 50% 50% 40%;
  animation: qual-face 8s ease-in-out infinite;
}
.scn-improvisatore-qualities .lamp-dull {
  position: absolute; bottom: 38%; left: 50%; width: 10px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c08040 0%, #8a6030 100%);
  border-radius: 4px;
  animation: qual-lamp 5s ease-in-out infinite alternate;
}
.scn-improvisatore-qualities .soft-glow {
  position: absolute; bottom: 38%; left: 50%; width: 60px; height: 60px;
  transform: translate(-50%, 50%);
  background: radial-gradient(circle, #e8b05a 0%, rgba(232,176,90,0.2) 50%, transparent 80%);
  border-radius: 50%;
  animation: qual-glow 5s ease-in-out infinite alternate;
}
@keyframes qual-glint { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.4); opacity: 1; } 100% { transform: scale(0.8); opacity: 0; } }
@keyframes qual-hand { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(10deg) translateY(-2px); } 50% { transform: rotate(5deg) translateY(0); } 75% { transform: rotate(8deg) translateY(-1px); } }
@keyframes qual-face { 0%,100% { transform: rotate(0deg); } 33% { transform: rotate(3deg); } 66% { transform: rotate(-2deg); } }
@keyframes qual-lamp { 0% { transform: translateX(-50%) scaleY(1); opacity: 0.7; } 50% { transform: translateX(-50%) scaleY(1.05) scaleX(0.95); opacity: 0.9; } 100% { transform: translateX(-50%) scaleY(0.95); opacity: 0.6; } }
@keyframes qual-glow { 0% { transform: translate(-50%, 50%) scale(1); opacity: 0.4; } 50% { transform: translate(-50%, 50%) scale(1.3); opacity: 0.7; } 100% { transform: translate(-50%, 50%) scale(0.9); opacity: 0.3; } }

/* Scene: improvisatore-despair */
.scn-improvisatore-despair {
  background: linear-gradient(180deg, #0a0808 0%, #1a1210 40%, #2a1a14 70%, #0e0a08 100%), radial-gradient(ellipse at 50% 70%, #1a1210 0%, transparent 70%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.8);
}
.scn-improvisatore-despair .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0e0a08 0%, #1a1210 100%);
  animation: desp-wall 30s ease-in-out infinite alternate;
}
.scn-improvisatore-despair .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 30% 30% 0 0;
}
.scn-improvisatore-despair .figure-despair {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a14 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: desp-figD 8s ease-in-out infinite;
}
.scn-improvisatore-despair .figure-consoler {
  position: absolute; bottom: 25%; right: 25%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: desp-figC 9s ease-in-out infinite;
}
.scn-improvisatore-despair .lamp-weak {
  position: absolute; bottom: 45%; left: 50%; width: 6px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6030 0%, #4a3222 100%);
  border-radius: 3px;
  animation: desp-lamp 4s ease-in-out infinite alternate;
}
.scn-improvisatore-despair .shadow-large {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 50%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: desp-shadow 6s ease-in-out infinite alternate;
}
.scn-improvisatore-despair .shadow-edge {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,0.3) 0%, transparent 20%, transparent 80%, rgba(0,0,0,0.3) 100%);
  animation: desp-edge 10s ease-in-out infinite alternate;
}
@keyframes desp-wall { 0% { opacity: 0.7 } 50% { opacity: 0.85 } 100% { opacity: 0.6 } }
@keyframes desp-figD { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-8deg) translateY(2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(5deg) translateY(1px); } }
@keyframes desp-figC { 0%,100% { transform: rotate(0deg) translateY(0); } 33% { transform: rotate(4deg) translateY(-1px); } 66% { transform: rotate(-2deg) translateY(0); } }
@keyframes desp-lamp { 0% { transform: translateX(-50%) scaleY(1); opacity: 0.3; } 50% { transform: translateX(-50%) scaleY(1.1) scaleX(0.9); opacity: 0.6; } 100% { transform: translateX(-50%) scaleY(0.9); opacity: 0.2; } }
@keyframes desp-shadow { 0% { opacity: 0.4; transform: scaleY(1); } 50% { opacity: 0.7; transform: scaleY(1.1); } 100% { opacity: 0.5; transform: scaleY(0.95); } }
@keyframes desp-edge { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* Scene: improvisatore-answer */
.scn-improvisatore-answer {
  background: linear-gradient(180deg, #060408 0%, #0c0810 40%, #1a1018 70%, #08060a 100%), radial-gradient(ellipse at 50% 50%, #0c0810 0%, transparent 70%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.9);
}
.scn-improvisatore-answer .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #08060a 0%, #0c0810 100%);
  animation: answ-wall 25s ease-in-out infinite alternate;
}
.scn-improvisatore-answer .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #0c0810 0%, #060408 100%);
  border-radius: 25% 25% 0 0;
}
.scn-improvisatore-answer .figure-holding {
  position: absolute; bottom: 30%; left: 50%; width: 24px; height: 52px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1018 0%, #0c0810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: answ-figH 6s ease-in-out infinite;
}
.scn-improvisatore-answer .meteor-fading {
  position: absolute; bottom: 55%; left: 50%; width: 30px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e8d080 0%, #b08040 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(232,208,128,0.5);
  animation: answ-meteor 7s ease-in-out infinite alternate;
}
.scn-improvisatore-answer .hand-light {
  position: absolute; bottom: 42%; left: 48%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #2a1a14 0%, #0c0810 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: answ-hand 4s ease-in-out infinite alternate;
}
.scn-improvisatore-answer .window-dark {
  position: absolute; top: 15%; right: 15%; width: 50px; height: 70px;
  background: radial-gradient(circle, #0a0810 0%, #040206 100%);
  border: 2px solid #1a1018;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: answ-window 15s ease-in-out infinite alternate;
}
.scn-improvisatore-answer .shadow-deep {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,0.4) 0%, transparent 30%, transparent 70%, rgba(0,0,0,0.6) 100%);
  animation: answ-shadow 12s ease-in-out infinite alternate;
}
@keyframes answ-wall { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes answ-figH { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(5deg) translateY(-1px); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-50%) rotate(-3deg) translateY(0); } }
@keyframes answ-meteor { 0% { transform: translateX(-50%) scale(1); opacity: 0.9; box-shadow: 0 0 50px 15px rgba(232,208,128,0.6); } 50% { transform: translateX(-50%) scale(1.2); opacity: 0.7; box-shadow: 0 0 30px 8px rgba(232,208,128,0.3); } 100% { transform: translateX(-50%) scale(0.6); opacity: 0.2; box-shadow: 0 0 10px 2px rgba(232,208,128,0.1); } }
@keyframes answ-hand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(-10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes answ-window { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }
@keyframes answ-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

.scn-to-wordsworth-notes {
  background: 
    linear-gradient(180deg, #1a120b 0%, #2a1f14 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 100%, #2a1f14 0%, transparent 70%);
}
.scn-to-wordsworth-notes .desk {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f14 100%);
  border-radius: 4px;
  box-shadow: 0 -6px 12px rgba(0,0,0,.5);
  animation: twn-desk 10s ease-in-out infinite alternate;
}
.scn-to-wordsworth-notes .paper {
  position: absolute; width: 40px; height: 28px; background: #d2b48c;
  border-radius: 2px; box-shadow: 1px 1px 4px rgba(0,0,0,.3);
}
.scn-to-wordsworth-notes .paper-1 {
  bottom: 30%; left: 22%; transform: rotate(-8deg);
  animation: twn-paper1 8s ease-in-out infinite alternate;
}
.scn-to-wordsworth-notes .paper-2 {
  bottom: 28%; left: 34%; transform: rotate(4deg);
  animation: twn-paper2 10s ease-in-out infinite alternate;
}
.scn-to-wordsworth-notes .paper-3 {
  bottom: 32%; left: 46%; transform: rotate(-2deg);
  animation: twn-paper3 7s ease-in-out infinite alternate;
}
.scn-to-wordsworth-notes .candle {
  position: absolute; bottom: 30%; left: 60%; width: 10px; height: 50px;
  background: linear-gradient(180deg, #f0e0c0 0%, #b08060 100%);
  border-radius: 3px 3px 2px 2px;
}
.scn-to-wordsworth-notes .flame {
  position: absolute; bottom: 55%; left: 60%; width: 8px; height: 16px;
  margin-left: -4px; background: radial-gradient(circle, #ffd700 0%, #ff8c00 60%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(255,215,0,.4);
  animation: twn-flame 2s ease-in-out infinite alternate;
}
.scn-to-wordsworth-notes .inkwell {
  position: absolute; bottom: 28%; left: 72%; width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #2a1f14 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40%;
}
.scn-to-wordsworth-notes .quill {
  position: absolute; bottom: 38%; left: 74%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #f5f0e0 0%, #c0b090 100%);
  border-radius: 1px;
  transform: rotate(30deg);
  animation: twn-quill 6s ease-in-out infinite alternate;
}
.scn-to-wordsworth-notes .dust {
  position: absolute; width: 4px; height: 4px; background: rgba(220,200,160,.6);
  border-radius: 50%; filter: blur(1px);
  animation: twn-dust 20s linear infinite;
  top: 40%; left: 30%;
}
@keyframes twn-desk { 0% { transform: translateY(0); } 100% { transform: translateY(-2px); } }
@keyframes twn-paper1 { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-4px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes twn-paper2 { 0% { transform: rotate(4deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(4deg) translateY(0); } }
@keyframes twn-paper3 { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-5px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes twn-flame { 0% { transform: scaleY(1) scaleX(1) rotate(0deg); opacity: .9; } 50% { transform: scaleY(1.1) scaleX(0.9) rotate(2deg); opacity: 1; } 100% { transform: scaleY(0.95) scaleX(1.05) rotate(-1deg); opacity: .85; } }
@keyframes twn-quill { 0% { transform: rotate(30deg) translateY(0); } 100% { transform: rotate(28deg) translateY(-2px); } }
@keyframes twn-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translate(40px, -60px) scale(0); opacity: 0; } }

.scn-to-wordsworth-variants {
  background: 
    linear-gradient(180deg, #1c140e 0%, #2f2218 50%, #423224 100%),
    radial-gradient(ellipse at 50% 0%, #2f2218 0%, transparent 60%);
}
.scn-to-wordsworth-variants .shelf {
  position: absolute; bottom: 12%; left: 8%; right: 8%; height: 6%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140c 100%);
  border-radius: 2px;
  box-shadow: 0 3px 8px rgba(0,0,0,.6);
}
.scn-to-wordsworth-variants .book {
  position: absolute; bottom: 18%; width: 12px; height: 40px;
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,.4);
}
.scn-to-wordsworth-variants .book-1 {
  left: 12%; background: linear-gradient(180deg, #6e4a2e 0%, #4a2a14 100%);
  animation: twv-book1 12s ease-in-out infinite alternate;
}
.scn-to-wordsworth-variants .book-2 {
  left: 24%; background: linear-gradient(180deg, #4e3a2a 0%, #2e1e12 100%);
  height: 35px; bottom: 16%;
  animation: twv-book2 15s ease-in-out infinite alternate;
}
.scn-to-wordsworth-variants .book-3 {
  left: 36%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1e 100%);
  height: 44px; bottom: 19%;
  animation: twv-book3 10s ease-in-out infinite alternate;
}
.scn-to-wordsworth-variants .candle {
  position: absolute; bottom: 20%; left: 55%; width: 10px; height: 45px;
  background: linear-gradient(180deg, #e8d8c0 0%, #a88860 100%);
  border-radius: 3px;
}
.scn-to-wordsworth-variants .flame {
  position: absolute; bottom: 44%; left: 55%; width: 8px; height: 14px;
  margin-left: -4px; background: radial-gradient(circle, #ffd700 0%, #ff8c00 50%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 18px 5px rgba(255,215,0,.3);
  animation: twv-flame 2.5s ease-in-out infinite alternate;
}
.scn-to-wordsworth-variants .scroll {
  position: absolute; bottom: 26%; left: 70%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #d2b48c 0%, #a08060 100%);
  border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%;
  transform: rotate(-15deg);
  animation: twv-scroll 9s ease-in-out infinite alternate;
}
.scn-to-wordsworth-variants .dust {
  position: absolute; width: 3px; height: 3px; background: rgba(230,210,180,.5);
  border-radius: 50%; filter: blur(1px);
  animation: twv-dust 25s linear infinite;
  top: 50%; left: 20%;
}
@keyframes twv-book1 { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes twv-book2 { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-1.5deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes twv-book3 { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(0.5deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes twv-flame { 0% { transform: scaleY(1) rotate(0deg); opacity: .8; } 50% { transform: scaleY(1.15) scaleX(0.9) rotate(3deg); opacity: 1; } 100% { transform: scaleY(0.9) scaleX(1.05) rotate(-2deg); opacity: .85; } }
@keyframes twv-scroll { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-12deg) translateX(2px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes twv-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: .6; } 90% { opacity: .6; } 100% { transform: translate(-30px, -50px) scale(0); opacity: 0; } }

.scn-to-wordsworth-variants-two {
  background: 
    linear-gradient(180deg, #1a140f 0%, #2d2218 50%, #3f3022 100%),
    radial-gradient(ellipse at 50% 80%, #2d2218 0%, transparent 60%);
}
.scn-to-wordsworth-variants-two .desk {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 18%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1c10 100%);
  border-radius: 4px;
}
.scn-to-wordsworth-variants-two .boat {
  position: absolute; bottom: 28%; left: 25%; width: 40px; height: 16px;
  background: linear-gradient(180deg, #6e4e32 0%, #4a2e1a 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  transform: rotate(-5deg);
  animation: tw2-boat 12s ease-in-out infinite alternate;
}
.scn-to-wordsworth-variants-two .sail {
  position: absolute; bottom: 38%; left: 37%; width: 2px; height: 24px;
  background: #a08060;
  transform: rotate(15deg);
  animation: tw2-sail 10s ease-in-out infinite alternate;
}
.scn-to-wordsworth-variants-two .sail::before {
  content: ''; position: absolute; top: -4px; left: -10px; width: 22px; height: 20px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a880 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(8deg);
}
.scn-to-wordsworth-variants-two .candle {
  position: absolute; bottom: 32%; left: 55%; width: 10px; height: 50px;
  background: linear-gradient(180deg, #e8d4b8 0%, #a08060 100%);
  border-radius: 3px;
}
.scn-to-wordsworth-variants-two .flame {
  position: absolute; bottom: 56%; left: 55%; width: 8px; height: 14px;
  margin-left: -4px; background: radial-gradient(circle, #ffd700 0%, #ff8c00 50%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(255,215,0,.3);
  animation: tw2-flame 2.2s ease-in-out infinite alternate;
}
.scn-to-wordsworth-variants-two .compass {
  position: absolute; bottom: 24%; left: 72%; width: 18px; height: 18px;
  border: 2px solid #8a7a6a; border-radius: 50%;
  background: radial-gradient(circle, #d2b48c 0%, #a08870 100%);
  animation: tw2-compass 20s linear infinite;
}
.scn-to-wordsworth-variants-two .dust {
  position: absolute; width: 3px; height: 3px; background: rgba(230,210,180,.4);
  border-radius: 50%; filter: blur(1px);
  animation: tw2-dust 30s linear infinite;
  top: 40%; left: 40%;
}
@keyframes tw2-boat { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes tw2-sail { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes tw2-flame { 0% { transform: scaleY(1) rotate(0deg); opacity: .85; } 50% { transform: scaleY(1.1) scaleX(0.9) rotate(2deg); opacity: 1; } 100% { transform: scaleY(0.9) scaleX(1.05) rotate(-1deg); opacity: .8; } }
@keyframes tw2-compass { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes tw2-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: .5; } 90% { opacity: .5; } 100% { transform: translate(50px, -40px) scale(0); opacity: 0; } }

.scn-to-wordsworth-variants-three {
  background: 
    linear-gradient(180deg, #1a140e 0%, #2d2016 50%, #3f2c1e 100%),
    radial-gradient(ellipse at 50% 0%, #2d2016 0%, transparent 70%);
}
.scn-to-wordsworth-variants-three .desk {
  position: absolute; bottom: 10%; left: 8%; right: 8%; height: 16%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1c10 100%);
  border-radius: 4px;
}
.scn-to-wordsworth-variants-three .tower {
  position: absolute; bottom: 26%; left: 20%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,.5);
  animation: tw3-tower 14s ease-in-out infinite alternate;
}
.scn-to-wordsworth-variants-three .window-arch {
  position: absolute; bottom: 48%; left: 26%; width: 8px; height: 14px;
  background: radial-gradient(ellipse at 50% 50%, #ffd700 0%, #8a6a30 70%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 10px 2px rgba(255,215,0,.3);
  animation: tw3-window 4s ease-in-out infinite alternate;
}
.scn-to-wordsworth-variants-three .candle {
  position: absolute; bottom: 30%; left: 50%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #e8d4b8 0%, #a08060 100%);
  border-radius: 3px;
}
.scn-to-wordsworth-variants-three .flame {
  position: absolute; bottom: 50%; left: 50%; width: 8px; height: 14px;
  margin-left: -4px; background: radial-gradient(circle, #ffd700 0%, #ff8c00 50%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 18px 5px rgba(255,215,0,.3);
  animation: tw3-flame 2.8s ease-in-out infinite alternate;
}
.scn-to-wordsworth-variants-three .lamp {
  position: absolute; bottom: 36%; left: 65%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 20%, #ffd700 0%, #b08040 60%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 24px 8px rgba(255,215,0,.2);
  animation: tw3-lamp 6s ease-in-out infinite alternate;
}
.scn-to-wordsworth-variants-three .dust {
  position: absolute; width: 3px; height: 3px; background: rgba(220,200,170,.5);
  border-radius: 50%; filter: blur(1px);
  animation: tw3-dust 22s linear infinite;
  top: 50%; left: 35%;
}
.scn-to-wordsworth-variants-three .paper-stack {
  position: absolute; bottom: 20%; left: 80%; width: 30px; height: 8px;
  background: #d2b48c;
  border-radius: 1px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: tw3-stack 8s ease-in-out infinite alternate;
}
@keyframes tw3-tower { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tw3-window { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .75; } }
@keyframes tw3-flame { 0% { transform: scaleY(1) rotate(0deg); opacity: .85; } 50% { transform: scaleY(1.12) scaleX(0.9) rotate(2deg); opacity: 1; } 100% { transform: scaleY(0.9) scaleX(1.05) rotate(-1deg); opacity: .8; } }
@keyframes tw3-lamp { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(2deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes tw3-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: .6; } 90% { opacity: .6; } 100% { transform: translate(-20px, -60px) scale(0); opacity: 0; } }
@keyframes tw3-stack { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-boatman-bridal { background: linear-gradient(180deg, #d97c5c 0%, #934a5a 40%, #2c1a3a 100%), radial-gradient(ellipse at 50% 0%, #f0a070 0%, transparent 80%); }
.scn-boatman-bridal .sky-dusk { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #e8a070 0%, #c07060 30%, transparent 100%); animation: bb-sky 12s ease-in-out infinite alternate; }
.scn-boatman-bridal .water { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%); border-top: 2px solid #4a3a5a; animation: bb-water 8s ease-in-out infinite alternate; }
.scn-boatman-bridal .boat { position:absolute; bottom:30%; left:50%; width:120px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 50% 50%; box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: bb-rock 6s ease-in-out infinite; }
.scn-boatman-bridal .figure-bride { position:absolute; bottom:33%; left:47%; width:16px; height:30px; background: radial-gradient(ellipse at 50% 30%, #f0d0b0 0%, #b08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bb-bob 6s ease-in-out infinite; }
.scn-boatman-bridal .figure-groom { position:absolute; bottom:33%; left:54%; width:18px; height:32px; background: radial-gradient(ellipse at 50% 30%, #d0b090 0%, #8a6040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bb-bob 6s ease-in-out infinite .2s; }
.scn-boatman-bridal .sail { position:absolute; bottom:33%; left:38%; width:12px; height:40px; background: linear-gradient(180deg, #f0e0d0 0%, #c0a080 100%); border-radius: 20% 20% 10% 10% / 80% 80% 20% 20%; transform: rotate(-10deg); animation: bb-sail 9s ease-in-out infinite alternate; }
.scn-boatman-bridal .reflection-line { position:absolute; bottom:30%; left:35%; right:35%; height:2px; background: linear-gradient(90deg, transparent, #c08060 50%, transparent); filter: blur(1px); animation: bb-refl 4s ease-in-out infinite alternate; }
.scn-boatman-bridal .glow-star { position:absolute; top:10%; left:25%; width:4px; height:4px; background: #ffe0c0; border-radius:50%; box-shadow:0 0 8px 2px #ffc080; animation: bb-twinkle 3s ease-in-out infinite; }
.scn-boatman-bridal .glow-star-2 { position:absolute; top:15%; right:10%; width:3px; height:3px; background: #ffe0c0; border-radius:50%; box-shadow:0 0 6px 1px #ffc080; animation: bb-twinkle 4s ease-in-out infinite .5s; }
@keyframes bb-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes bb-water { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes bb-rock { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(-1deg) translateY(-1px) } 75% { transform: translateX(-50%) rotate(1deg) translateY(-1px) } }
@keyframes bb-bob { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes bb-sail { 0% { transform: rotate(-12deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(-18deg) } }
@keyframes bb-refl { 0% { opacity:.3 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes bb-twinkle { 0% { opacity:.4; transform:scale(1) } 50% { opacity:1; transform:scale(1.3) } 100% { opacity:.6; transform:scale(1) } }

.scn-child-of-god-epitaph { background: linear-gradient(180deg, #241a2a 0%, #1a1220 50%, #0f0a15 100%), radial-gradient(ellipse at 50% 70%, #2a1e2e 0%, transparent 70%); }
.scn-child-of-god-epitaph .wall-dark { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%); animation: cg-dark 20s ease-in-out infinite alternate; }
.scn-child-of-god-epitaph .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a101a 0%, #0a060a 100%); }
.scn-child-of-god-epitaph .crib { position:absolute; bottom:30%; left:50%; width:80px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a20 0%, #1a100a 100%); border-radius:10% 10% 8% 8%; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: cg-crib 10s ease-in-out infinite; }
.scn-child-of-god-epitaph .baby-figure { position:absolute; bottom:32%; left:50%; width:18px; height:22px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #c8a884 0%, #7a5a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cg-baby 7s ease-in-out infinite; }
.scn-child-of-god-epitaph .death-shadow { position:absolute; bottom:30%; left:40%; width:30px; height:60px; background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, transparent 100%); border-radius: 40% 60% 40% 40% / 80% 80% 20% 20%; filter: blur(3px); animation: cg-shadow 14s ease-in-out infinite alternate; }
.scn-child-of-god-epitaph .candle-glow { position:absolute; top:25%; left:70%; width:12px; height:20px; background: radial-gradient(ellipse at 50% 80%, #ffd080 0%, #b07030 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 8px #ffc060, 0 0 60px 20px rgba(255,192,96,0.3); animation: cg-candle 3s ease-in-out infinite alternate; }
.scn-child-of-god-epitaph .cross-silhouette { position:absolute; top:10%; left:20%; width:4px; height:50px; background: #0a060a; border-radius:2px; box-shadow: 0 0 2px 0 #0a060a; }
.scn-child-of-god-epitaph .cross-silhouette::after { content:''; position:absolute; top:10px; left:-12px; width:28px; height:4px; background: #0a060a; border-radius:2px; }
@keyframes cg-dark { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes cg-crib { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes cg-baby { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cg-shadow { 0% { transform: translateY(0) scaleY(1) opacity:.4 } 50% { transform: translateY(-5px) scaleY(1.1) opacity:.7 } 100% { transform: translateY(0) scaleY(1) opacity:.5 } }
@keyframes cg-candle { 0% { box-shadow: 0 0 20px 4px #ffc060, 0 0 40px 8px rgba(255,192,96,0.3); opacity:.8 } 50% { box-shadow: 0 0 40px 12px #ffd080, 0 0 80px 24px rgba(255,208,128,0.5); opacity:1 } 100% { box-shadow: 0 0 25px 5px #ffc060, 0 0 50px 10px rgba(255,192,96,0.35); opacity:.9 } }

.scn-little-wings-poem { background: linear-gradient(180deg, #f0c8a0 0%, #d09070 40%, #7a6050 100%), radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 70%); }
.scn-little-wings-poem .dawn-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #ffd0a0 0%, #f0b080 40%, #c08060 100%); animation: lw-sky 15s ease-in-out infinite alternate; }
.scn-little-wings-poem .sun-glow { position:absolute; top:8%; left:50%; width:70px; height:70px; transform:translateX(-50%); background: radial-gradient(circle, #ffe8c0 0%, #d09050 50%, transparent 80%); border-radius:50%; filter: blur(6px); animation: lw-sun 8s ease-in-out infinite alternate; }
.scn-little-wings-poem .figure-body { position:absolute; bottom:10%; left:50%; width:24px; height:36px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a30 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lw-body 5s ease-in-out infinite; }
.scn-little-wings-poem .wing { position:absolute; bottom:25%; width:50px; height:20px; background: linear-gradient(180deg, #e8c8a0 0%, #b09880 100%); border-radius: 80% 20% 20% 80% / 60% 60% 40% 40%; transform-origin: center bottom; }
.scn-little-wings-poem .wing-left { right:55%; transform: rotate(30deg); animation: lw-wing-left 4s ease-in-out infinite; }
.scn-little-wings-poem .wing-right { left:55%; transform: rotate(-30deg); animation: lw-wing-right 4s ease-in-out infinite .2s; }
.scn-little-wings-poem .feather { position:absolute; background: linear-gradient(180deg, rgba(232,200,160,0.8) 0%, rgba(150,120,100,0.3) 100%); border-radius:50%; filter: blur(2px); }
.scn-little-wings-poem .feather-1 { top:15%; left:20%; width:12px; height:6px; animation: lw-feather 12s linear infinite; }
.scn-little-wings-poem .feather-2 { top:10%; left:60%; width:10px; height:5px; animation: lw-feather 16s linear infinite 4s; }
.scn-little-wings-poem .feather-3 { top:25%; right:25%; width:14px; height:7px; animation: lw-feather 20s linear infinite 8s; }
@keyframes lw-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes lw-sun { 0% { transform: translateX(-50%) scale(1); opacity:.7 } 50% { transform: translateX(-50%) scale(1.05); opacity:1 } 100% { transform: translateX(-50%) scale(1); opacity:.8 } }
@keyframes lw-body { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-3px) scale(1.02) } }
@keyframes lw-wing-left { 0% { transform: rotate(20deg) } 50% { transform: rotate(45deg) translateY(-2px) } 100% { transform: rotate(20deg) } }
@keyframes lw-wing-right { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-45deg) translateY(-2px) } 100% { transform: rotate(-20deg) } }
@keyframes lw-feather { 0% { transform: translateY(0) rotate(0deg) opacity:0 } 10% { opacity:1 } 90% { opacity:1 } 100% { transform: translateY(-80px) rotate(360deg) opacity:0 } }

.scn-dream-on-dark { background: linear-gradient(180deg, #0a0a1a 0%, #12102a 50%, #1a1a3a 100%), radial-gradient(ellipse at 50% 100%, #1a1a3a 0%, transparent 70%); }
.scn-dream-on-dark .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a18 0%, #14102a 100%); animation: dd-sky 20s ease-in-out infinite alternate; }
.scn-dream-on-dark .moon { position:absolute; top:12%; left:70%; width:30px; height:30px; background: radial-gradient(circle, #e0e0f0 0%, #9090b0 100%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(160,160,200,0.3); animation: dd-moon 15s ease-in-out infinite; }
.scn-dream-on-dark .city-skyline { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 10% 10% 0 0; clip-path: polygon(0% 100%, 10% 60%, 20% 100%, 30% 50%, 40% 100%, 50% 70%, 60% 100%, 70% 40%, 80% 100%, 90% 30%, 100% 100%); animation: dd-skyline 25s linear infinite alternate; }
.scn-dream-on-dark .window-light { position:absolute; bottom:50%; width:6px; height:8px; background: radial-gradient(ellipse, #ffe8a0 0%, #b08040 100%); border-radius:2px; box-shadow: 0 0 10px 3px #ffd080; }
.scn-dream-on-dark .win-1 { left:15%; animation: dd-window 4s ease-in-out infinite; }
.scn-dream-on-dark .win-2 { left:75%; animation: dd-window 6s ease-in-out infinite .5s; }
.scn-dream-on-dark .figure-sleeping { position:absolute; bottom:42%; left:50%; width:20px; height:14px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 60%, #2a2a3a 0%, #12121a 100%); border-radius: 50% 50% 30% 30%; animation: dd-sleep 8s ease-in-out infinite; }
.scn-dream-on-dark .blanket { position:absolute; bottom:40%; left:45%; width:30px; height:10px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20% 20% 40% 40%; animation: dd-blanket 8s ease-in-out infinite .1s; }
.scn-dream-on-dark .star { position:absolute; width:3px; height:3px; background: #c0c0e0; border-radius:50%; box-shadow: 0 0 4px 1px rgba(192,192,224,0.5); }
.scn-dream-on-dark .star-1 { top:20%; left:20%; animation: dd-star 3s ease-in-out infinite; }
.scn-dream-on-dark .star-2 { top:10%; left:40%; animation: dd-star 5s ease-in-out infinite 1s; }
@keyframes dd-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes dd-moon { 0% { transform: translate(0,0) } 50% { transform: translate(2px,-2px) } 100% { transform: translate(0,0) } }
@keyframes dd-skyline { 0% { filter: brightness(1) } 50% { filter: brightness(1.1) } 100% { filter: brightness(1) } }
@keyframes dd-window { 0%,100% { opacity:.5; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.3) } }
@keyframes dd-sleep { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-1px) scale(1.02) } }
@keyframes dd-blanket { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes dd-star { 0% { opacity:.3; transform:scale(1) } 50% { opacity:1; transform:scale(1.5) } 100% { opacity:.5; transform:scale(1) } }

/* chamouni-praise – dawn, warm, wide horizon */
.scn-chamouni-praise {
  background: linear-gradient(180deg, #ffa366 0%, #ff8844 30%, #ffdd99 60%, #ffeebb 80%, #fff5e6 100%),
              radial-gradient(ellipse at 50% 0%, #ffd080 0%, transparent 60%);
}
.scn-chamouni-praise .sky-dawn { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #ffdbb5 0%, #fff0d0 100%); animation: cp1-sky 12s ease-in-out infinite alternate; }
.scn-chamouni-praise .sun-dawn { position:absolute; top:12%; left:60%; width:80px; height:80px; border-radius:50%; background: radial-gradient(circle, #ffe680 0%, #ffaa44 40%, transparent 70%); box-shadow: 0 0 100px 40px #ffcc66; animation: cp1-sun 8s ease-in-out infinite; }
.scn-chamouni-praise .mountains { position:absolute; bottom:30%; left:0; right:0; height:35%; background: linear-gradient(180deg, #775577 0%, #3a2244 100%); border-radius: 60% 40% 0 0 / 70% 60% 0 0; clip-path: polygon(0% 100%, 15% 30%, 25% 50%, 40% 10%, 55% 35%, 70% 5%, 85% 25%, 100% 40%, 100% 100%); animation: cp1-mtn 15s ease-in-out infinite alternate; }
.scn-chamouni-praise .valley { position:absolute; bottom:10%; left:0; right:0; height:25%; background: linear-gradient(180deg, #557744 0%, #336633 50%, #224422 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; animation: cp1-valley 10s ease-in-out infinite alternate; }
.scn-chamouni-praise .ice-cliffs { position:absolute; bottom:50%; left:20%; width:30%; height:20%; background: linear-gradient(180deg, #e0f0ff 0%, #99bbdd 100%); border-radius: 40% 60% 20% 80% / 50% 40% 60% 50%; filter: drop-shadow(0 0 10px #aaccee); animation: cp1-cliffs 20s ease-in-out infinite alternate; }
.scn-chamouni-praise .figure-praise { position:absolute; bottom:18%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cp1-figure 4s ease-in-out infinite; }
.scn-chamouni-praise .star-praise-a { position:absolute; top:5%; left:20%; width:4px; height:4px; background:#fff; border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,255,200,.8); animation: cp1-star 5s ease-in-out infinite; }
.scn-chamouni-praise .star-praise-b { position:absolute; top:8%; left:40%; width:3px; height:3px; background:#fff; border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,255,200,.7); animation: cp1-star 7s ease-in-out 2s infinite; }
@keyframes cp1-sky { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.8; transform: scaleY(0.98); } }
@keyframes cp1-sun { 0%,100% { transform: translate(0,0) scale(1); opacity:0.9; box-shadow: 0 0 80px 30px #ffcc66; } 50% { transform: translate(10px,-8px) scale(1.05); opacity:1; box-shadow: 0 0 120px 50px #ffdd77; } }
@keyframes cp1-mtn { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.01); } 100% { transform: translateY(2px) scaleX(0.99); } }
@keyframes cp1-valley { 0% { opacity:0.8; filter: brightness(1); } 50% { opacity:1; filter: brightness(1.1); } 100% { opacity:0.9; filter: brightness(0.95); } }
@keyframes cp1-cliffs { 0% { transform: skewX(-2deg) scaleY(1); } 50% { transform: skewX(2deg) scaleY(1.03); } 100% { transform: skewX(-1deg) scaleY(0.97); } }
@keyframes cp1-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(10px) translateY(0) rotate(-1deg); } 75% { transform: translateX(15px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(20px) translateY(0) rotate(0); } }
@keyframes cp1-star { 0%,100% { opacity:0.2; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.2); } }

/* chamouni-god – overcast, calm, wide landscape with waterfall */
.scn-chamouni-god {
  background: linear-gradient(180deg, #8b9bb5 0%, #a6b5c9 40%, #c4d1df 80%, #dfe6ed 100%),
              radial-gradient(ellipse at 50% 100%, #dee9f0 0%, transparent 70%);
}
.scn-chamouni-god .sky-overcast { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #9caec4 0%, #bcc9d9 100%); animation: cg2-sky 20s ease-in-out infinite alternate; }
.scn-chamouni-god .clouds-cg { position:absolute; top:10%; left:0; right:0; height:30%; background: radial-gradient(ellipse at 30% 50%, #d0dbe8 0%, transparent 50%), radial-gradient(ellipse at 70% 40%, #d0dbe8 0%, transparent 40%); filter: blur(20px); animation: cg2-clouds 30s linear infinite; }
.scn-chamouni-god .peak-cg { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:40%; height:50%; background: linear-gradient(180deg, #5c6a7c 0%, #3b4a5c 100%); clip-path: polygon(0% 100%, 25% 40%, 40% 30%, 50% 15%, 60% 30%, 75% 40%, 100% 100%); border-radius:0; box-shadow: inset 0 0 40px rgba(0,0,0,.3); animation: cg2-peak 12s ease-in-out infinite alternate; }
.scn-chamouni-god .waterfall-cg { position:absolute; bottom:34%; left:48%; width:8%; height:30%; background: linear-gradient(180deg, #d0eaf0 0%, #e8f4f8 50%, #ffffff 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 0 20px 10px rgba(200,230,255,.5); animation: cg2-waterfall 6s ease-in-out infinite alternate; }
.scn-chamouni-god .pines-cg { position:absolute; bottom:20%; left:10%; width:20%; height:25%; background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); animation: cg2-pines 8s ease-in-out infinite alternate; }
.scn-chamouni-god .goat-cg { position:absolute; bottom:30%; left:35%; width:12px; height:18px; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: cg2-goat 4s ease-in-out infinite; }
.scn-chamouni-god .light-shaft-cg { position:absolute; top:0; left:45%; width:10%; height:70%; background: linear-gradient(180deg, rgba(255,255,240,0.15) 0%, rgba(255,255,240,0) 100%); clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%); animation: cg2-shaft 15s ease-in-out infinite alternate; }
@keyframes cg2-sky { 0% { opacity:0.8; filter: saturate(0.8); } 50% { opacity:1; filter: saturate(1); } 100% { opacity:0.9; filter: saturate(0.9); } }
@keyframes cg2-clouds { 0% { transform: translateX(-10%); } 50% { transform: translateX(0%); } 100% { transform: translateX(-10%); } }
@keyframes cg2-peak { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02) translateY(-3px); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes cg2-waterfall { 0% { opacity:0.7; transform: scaleY(0.95); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:0.8; transform: scaleY(0.98); } }
@keyframes cg2-pines { 0% { transform: rotate(-1deg) scaleY(1); } 50% { transform: rotate(1deg) scaleY(1.03); } 100% { transform: rotate(0) scaleY(0.97); } }
@keyframes cg2-goat { 0%,100% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(4deg); } }
@keyframes cg2-shaft { 0% { opacity:0.1; transform: skewX(2deg); } 50% { opacity:0.3; transform: skewX(-2deg); } 100% { opacity:0.15; transform: skewX(1deg); } }

/* chamouni-notes – dim interior, warm lamp, study scene */
.scn-chamouni-notes {
  background: linear-gradient(180deg, #2e241c 0%, #40352c 40%, #554a40 100%),
              radial-gradient(ellipse at 50% 20%, #7a6a5a 0%, transparent 60%);
}
.scn-chamouni-notes .wall-cn { position:absolute; inset:0; background: linear-gradient(180deg, #3a2e24 0%, #2e241c 100%); box-shadow: inset 0 0 80px rgba(0,0,0,.8); animation: cn3-wall 10s ease-in-out infinite alternate; }
.scn-chamouni-notes .desk-cn { position:absolute; bottom:0; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #6a553a 0%, #4a3a2a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,.6); animation: cn3-desk 8s ease-in-out infinite alternate; }
.scn-chamouni-notes .lamp-cn { position:absolute; bottom:40%; left:20%; width:30px; height:60px; background: linear-gradient(180deg, #b08840 0%, #8a6a30 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 40px 20px #eebb55; animation: cn3-lamp 6s ease-in-out infinite alternate; }
.scn-chamouni-notes .book-cn { position:absolute; bottom:18%; left:30%; width:60px; height:40px; background: linear-gradient(135deg, #7a4a2a 0%, #5a3a1a 100%); border-radius: 4px; box-shadow: 2px 2px 8px rgba(0,0,0,.5); transform: rotate(-5deg); animation: cn3-book 12s ease-in-out infinite; }
.scn-chamouni-notes .paper-cn { position:absolute; bottom:20%; left:38%; width:50px; height:35px; background: #ede8d0; border-radius: 2px; box-shadow: 0 0 10px rgba(200,180,140,.3); transform: rotate(3deg); animation: cn3-paper 15s ease-in-out infinite alternate; }
.scn-chamouni-notes .ink-cn { position:absolute; bottom:22%; left:50%; width:14px; height:24px; background: #1a1a2a; border-radius: 40% 40% 30% 30%; box-shadow: 0 0 6px rgba(0,0,0,.4); animation: cn3-ink 5s ease-in-out infinite alternate; }
.scn-chamouni-notes .window-cn { position:absolute; top:10%; right:10%; width:30%; height:40%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border: 4px solid #4a3a2a; border-radius: 8px; box-shadow: inset 0 0 40px rgba(0,0,0,.5); overflow:hidden; animation: cn3-window 20s ease-in-out infinite alternate; }
@keyframes cn3-wall { 0% { filter: brightness(0.9); } 50% { filter: brightness(1); } 100% { filter: brightness(0.95); } }
@keyframes cn3-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cn3-lamp { 0% { opacity:0.8; box-shadow: 0 0 30px 15px #eebb55; } 50% { opacity:1; box-shadow: 0 0 50px 25px #ffcc66; } 100% { opacity:0.9; box-shadow: 0 0 35px 18px #eebb55; } }
@keyframes cn3-book { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-1px); } }
@keyframes cn3-paper { 0% { transform: rotate(3deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(4deg) scale(0.98); } }
@keyframes cn3-ink { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cn3-window { 0% { opacity:0.6; filter: brightness(0.7); } 50% { opacity:0.8; filter: brightness(0.9); } 100% { opacity:0.7; filter: brightness(0.8); } }

/* good-great-man-epigram – dim interior, calm, still life with symbols */
.scn-good-great-man-epigram {
  background: linear-gradient(180deg, #1e1a16 0%, #2a241f 50%, #1e1a16 100%),
              radial-gradient(ellipse at 50% 30%, #3a3028 0%, transparent 60%);
}
.scn-good-great-man-epigram .bg-gg { position:absolute; inset:0; background: linear-gradient(180deg, #2a241f 0%, #1a1612 100%); animation: gg4-bg 15s ease-in-out infinite alternate; }
.scn-good-great-man-epigram .frame-gg { position:absolute; top:15%; left:25%; width:50%; height:50%; border: 6px solid #6a5a4a; border-radius: 4px; box-shadow: 0 0 30px rgba(0,0,0,.7); background: linear-gradient(180deg, #3a2e24 0%, #2a1e14 100%); animation: gg4-frame 12s ease-in-out infinite alternate; }
.scn-good-great-man-epigram .silhouette-gg { position:absolute; bottom:30%; left:38%; width:24%; height:40%; background: #1a1a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; clip-path: polygon(40% 0%, 60% 0%, 85% 30%, 80% 60%, 70% 100%, 30% 100%, 20% 60%, 15% 30%); animation: gg4-silhouette 8s ease-in-out infinite; }
.scn-good-great-man-epigram .heart-gg { position:absolute; top:25%; right:22%; width:20px; height:18px; background: #c8553d; transform: rotate(-20deg) scale(1.2); clip-path: polygon(50% 15%, 75% 0%, 100% 30%, 50% 100%, 0% 30%, 25% 0%); box-shadow: 0 0 20px 6px rgba(200,85,61,.4); animation: gg4-heart 5s ease-in-out infinite alternate; }
.scn-good-great-man-epigram .light-gg { position:absolute; top:10%; left:35%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,230,180,0.2) 0%, transparent 70%); border-radius:50%; animation: gg4-light 10s ease-in-out infinite alternate; }
.scn-good-great-man-epigram .crown-gg { position:absolute; bottom:45%; left:28%; width:30px; height:20px; background: linear-gradient(180deg, #c8a860 0%, #b08840 100%); clip-path: polygon(10% 0%, 30% 30%, 50% 0%, 70% 30%, 90% 0%, 100% 100%, 0% 100%); animation: gg4-crown 6s ease-in-out infinite alternate; }
.scn-good-great-man-epigram .book-gg { position:absolute; bottom:12%; left:35%; width:50px; height:30px; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; transform: rotate(8deg); box-shadow: 2px 2px 10px rgba(0,0,0,.5); animation: gg4-book 9s ease-in-out infinite; }
@keyframes gg4-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes gg4-frame { 0% { transform: scale(1); box-shadow: 0 0 20px rgba(0,0,0,.7); } 50% { transform: scale(1.02); box-shadow: 0 0 40px rgba(0,0,0,.9); } 100% { transform: scale(0.98); box-shadow: 0 0 25px rgba(0,0,0,.6); } }
@keyframes gg4-silhouette { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } }
@keyframes gg4-heart { 0% { transform: rotate(-20deg) scale(1.1); filter: brightness(0.9); } 50% { transform: rotate(-15deg) scale(1.3); filter: brightness(1.1); } 100% { transform: rotate(-18deg) scale(1.2); filter: brightness(1); } }
@keyframes gg4-light { 0% { opacity:0.2; transform: scale(0.8); } 50% { opacity:0.4; transform: scale(1.2); } 100% { opacity:0.3; transform: scale(1); } }
@keyframes gg4-crown { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gg4-book { 0%,100% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-1px); } }

/* one block per scene id. Append to style.css. */
.scn-berengarius-conclusion {
  background: 
    linear-gradient(180deg, #1c1420 0%, #2a2030 40%, #3a2540 100%),
    radial-gradient(ellipse at 50% 100%, #2a1a30 0%, transparent 70%);
}
.scn-berengarius-conclusion .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1c1420 0%, #2a2030 100%);
  animation: bc-wall 18s ease-in-out infinite alternate;
}
.scn-berengarius-conclusion .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1218 0%, #0e0a10 100%);
  border-radius: 40% 20% 0 0;
  animation: bc-floor 24s ease infinite;
}
.scn-berengarius-conclusion .frame {
  position: absolute; bottom: 35%; left: 50%; width: 120px; height: 150px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #4a3028 0%, #3a2218 50%, #2c1810 100%);
  border-radius: 4px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.6), inset 0 0 20px rgba(80,50,30,0.3);
}
.scn-berengarius-conclusion .portrait-glow {
  position: absolute; bottom: 38%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c89050 0%, #8a6040 60%, transparent 100%);
  border-radius: 4px;
  box-shadow: 0 0 30px 10px #b07040, 0 0 60px 20px rgba(176,112,64,0.3);
  animation: bc-portrait 4s ease-in-out infinite alternate;
}
.scn-berengarius-conclusion .portrait-figure {
  position: absolute; bottom: 38%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 40% 60% 60% 40% / 60% 40% 60% 40%;
  animation: bc-figure 4s ease-in-out infinite;
}
.scn-berengarius-conclusion .child-touch {
  position: absolute; bottom: 42%; left: 48%; width: 14px; height: 18px;
  background: radial-gradient(circle, #f0d0a0 0%, #c08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(240,208,160,0.3);
  animation: bc-child 5s ease-in-out infinite alternate;
}
.scn-berengarius-conclusion .music-wisp {
  position: absolute; top: 20%; left: 30%; width: 30px; height: 10px;
  background: linear-gradient(90deg, rgba(200,160,120,0.6), transparent);
  border-radius: 50%;
  filter: blur(4px);
  animation: bc-wisp 10s linear infinite;
}
@keyframes bc-wall {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes bc-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(-1px); }
}
@keyframes bc-portrait {
  0% { opacity: 0.8; box-shadow: 0 0 20px 6px #b07040; }
  50% { opacity: 1; box-shadow: 0 0 40px 14px #d09050, 0 0 80px 20px rgba(208,144,80,0.3); }
  100% { opacity: 0.9; box-shadow: 0 0 25px 8px #b07040; }
}
@keyframes bc-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  25% { transform: translateX(-48%) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  75% { transform: translateX(-52%) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes bc-child {
  0% { transform: translateX(0) scale(1); opacity: 0.6; }
  50% { transform: translateX(-4px) scale(1.05); opacity: 1; }
  100% { transform: translateX(0) scale(0.95); opacity: 0.7; }
}
@keyframes bc-wisp {
  0% { transform: translateX(0) rotate(0deg); opacity: 0; }
  20% { opacity: 0.6; }
  80% { opacity: 0.6; }
  100% { transform: translateX(80vw) rotate(360deg); opacity: 0; }
}

.scn-spirit-vision-philosophy {
  background: 
    linear-gradient(180deg, #0a0a18 0%, #12102a 50%, #1a1830 100%),
    radial-gradient(ellipse at 60% 40%, #182048 0%, transparent 70%);
}
.scn-spirit-vision-philosophy .bg-void {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0e20 0%, #161430 100%);
  animation: sv-void 20s ease-in-out infinite alternate;
}
.scn-spirit-vision-philosophy .matron-figure {
  position: absolute; bottom: 30%; left: 45%; width: 60px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a6080 0%, #3a3050 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px 15px rgba(160,144,200,0.2);
  animation: sv-matron 8s ease-in-out infinite;
}
.scn-spirit-vision-philosophy .child-figure {
  position: absolute; bottom: 26%; left: 55%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sv-child 6s ease-in-out infinite alternate;
}
.scn-spirit-vision-philosophy .radiance-glow {
  position: absolute; bottom: 28%; left: 50%; width: 100px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e0d0ff 0%, #8070b0 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px #b0a0e0, 0 0 100px 40px rgba(176,160,224,0.2);
  animation: sv-radiance 12s ease-in-out infinite alternate;
}
.scn-spirit-vision-philosophy .bird-spirit {
  position: absolute; top: 20%; left: 30%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #c0b0a0 0%, #908070 100%);
  border-radius: 50% 50% 40% 40%;
  filter: blur(1px);
  animation: sv-bird 30s linear infinite;
}
.scn-spirit-vision-philosophy .flower-spirit {
  position: absolute; bottom: 40%; right: 25%; width: 16px; height: 16px;
  background: radial-gradient(circle, #e090c0 0%, #a06080 60%, transparent 100%);
  border-radius: 50%;
  animation: sv-flower 4s ease-in-out infinite;
}
.scn-spirit-vision-philosophy .stone-spirit {
  position: absolute; bottom: 35%; left: 28%; width: 18px; height: 14px;
  background: radial-gradient(circle, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 60% 40%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
  animation: sv-stone 14s ease-in-out infinite alternate;
}
@keyframes sv-void { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes sv-matron {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes sv-child {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  50% { transform: translateX(6px) translateY(-1px) rotate(5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes sv-radiance {
  0% { opacity: 0.5; box-shadow: 0 0 30px 10px #b0a0e0; }
  50% { opacity: 0.8; box-shadow: 0 0 60px 20px #d0c0ff, 0 0 80px 30px rgba(208,192,255,0.2); }
  100% { opacity: 0.6; box-shadow: 0 0 35px 12px #b0a0e0; }
}
@keyframes sv-bird {
  0% { transform: translateX(-60px) translateY(-20px) rotate(-10deg); }
  25% { transform: translateX(20vw) translateY(-30px) rotate(5deg); }
  50% { transform: translateX(60vw) translateY(-10px) rotate(-5deg); }
  75% { transform: translateX(80vw) translateY(-40px) rotate(10deg); }
  100% { transform: translateX(130vw) translateY(-20px) rotate(-10deg); }
}
@keyframes sv-flower {
  0% { transform: scale(1) rotate(0deg); opacity: 0.6; }
  50% { transform: scale(1.1) rotate(20deg); opacity: 1; }
  100% { transform: scale(0.95) rotate(-10deg); opacity: 0.8; }
}
@keyframes sv-stone {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(3px) translateY(-2px); }
  100% { transform: translateX(-2px) translateY(1px); }
}

.scn-boccaccio-vision {
  background: 
    linear-gradient(180deg, #1a100c 0%, #2a1a10 40%, #3a2218 100%),
    radial-gradient(ellipse at 50% 100%, #2a1a10 0%, transparent 70%);
}
.scn-boccaccio-vision .bg-dark {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a0e08 0%, #2a1810 100%);
  animation: bv-dark 16s ease-in-out infinite alternate;
}
.scn-boccaccio-vision .arch-way {
  position: absolute; bottom: 20%; left: 50%; width: 180px; height: 200px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a20 0%, #2a1410 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 40px rgba(0,0,0,0.7), inset 0 0 20px rgba(80,40,20,0.3);
}
.scn-boccaccio-vision .window-glass {
  position: absolute; bottom: 24%; left: 50%; width: 130px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3820 0%, #2a1a0e 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 40px #6a5020;
}
.scn-boccaccio-vision .city-skyline {
  position: absolute; bottom: 24%; left: 50%; width: 130px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(0deg, #1a120e 0%, #2a1a0e 20%, #3a2218 40%, #4a2a1a 60%, #2a140e 80%, #1a0c08 100%);
  border-radius: 4px;
  clip-path: polygon(0% 100%, 10% 70%, 20% 100%, 30% 60%, 40% 100%, 50% 50%, 60% 100%, 70% 65%, 80% 100%, 90% 55%, 100% 100%, 100% 100%, 0% 100%);
  animation: bv-city 6s ease-in-out infinite;
}
.scn-boccaccio-vision .corn-sheaf {
  position: absolute; bottom: 25%; left: 12%; width: 30px; height: 50px;
  background: linear-gradient(0deg, #8a7030 0%, #c0a050 60%, #e0c060 100%);
  border-radius: 20% 80% 40% 60% / 60% 40% 60% 40%;
  transform: rotate(-15deg);
  animation: bv-corn 3s ease-in-out infinite alternate;
}
.scn-boccaccio-vision .olive-branch {
  position: absolute; bottom: 28%; right: 14%; width: 40px; height: 12px;
  background: linear-gradient(90deg, #3a4a20 0%, #5a6a30 100%);
  border-radius: 40% 60% 60% 40%;
  transform: rotate(20deg);
  animation: bv-olive 5s ease-in-out infinite;
}
.scn-boccaccio-vision .vine-tendril {
  position: absolute; bottom: 45%; left: 46%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: bv-vine 4s ease-in-out infinite alternate;
}
.scn-boccaccio-vision .light-warmth {
  position: absolute; bottom: 35%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0c060 0%, #d09040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #c08030, 0 0 80px 30px rgba(192,128,48,0.2);
  animation: bv-light 6s ease-in-out infinite alternate;
}
@keyframes bv-dark { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes bv-city {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) translateY(-2px) scale(1.01); }
  100% { transform: translateX(-50%) scale(0.98); }
}
@keyframes bv-corn {
  0% { transform: rotate(-15deg) scale(1); }
  50% { transform: rotate(-10deg) scale(1.05); }
  100% { transform: rotate(-18deg) scale(0.95); }
}
@keyframes bv-olive {
  0% { transform: rotate(20deg) scale(1); }
  50% { transform: rotate(25deg) scale(1.03); }
  100% { transform: rotate(18deg) scale(0.97); }
}
@keyframes bv-vine {
  0% { transform: rotate(10deg) scale(1); opacity: 0.7; }
  50% { transform: rotate(15deg) scale(1.06); opacity: 1; }
  100% { transform: rotate(5deg) scale(0.95); opacity: 0.8; }
}
@keyframes bv-light {
  0% { opacity: 0.7; box-shadow: 0 0 30px 15px #c08030; }
  50% { opacity: 0.9; box-shadow: 0 0 50px 20px #f0c060, 0 0 100px 30px rgba(240,192,96,0.2); }
  100% { opacity: 0.8; box-shadow: 0 0 35px 15px #c08030; }
}

.scn-boccaccio-fancy {
  background: 
    linear-gradient(180deg, #0e1210 0%, #1a1e1c 40%, #202a22 100%),
    radial-gradient(ellipse at 40% 60%, #1a2a1a 0%, transparent 70%);
}
.scn-boccaccio-fancy .bg-faded {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e1210 0%, #1a1e1c 100%);
  animation: bf-bg 24s ease-in-out infinite alternate;
}
.scn-boccaccio-fancy .moon-disc {
  position: absolute; top: 15%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #e0d8c0 0%, #c0b8a0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #d0c8b0, 0 0 60px 20px rgba(208,200,176,0.2);
  animation: bf-moon 18s ease-in-out infinite alternate;
}
.scn-boccaccio-fancy .vine-arch {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 80% 80% 0 0;
  clip-path: polygon(0% 100%, 10% 40%, 20% 60%, 30% 30%, 40% 50%, 50% 20%, 60% 50%, 70% 30%, 80% 60%, 90% 40%, 100% 100%);
  animation: bf-arch 7s ease-in-out infinite;
}
.scn-boccaccio-fancy .faun-figure {
  position: absolute; bottom: 28%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 40% 60% 50% 50% / 60% 40% 60% 40%;
  transform: rotate(-5deg);
  animation: bf-faun 5s ease-in-out infinite;
}
.scn-boccaccio-fancy .nymph-figure {
  position: absolute; bottom: 26%; left: 55%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #7a6a5a 0%, #3a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bf-nymph 6s ease-in-out infinite alternate;
}
.scn-boccaccio-fancy .maid-figure {
  position: absolute; bottom: 25%; left: 42%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform: translateX(-10px);
  animation: bf-maid 4s ease-in-out infinite;
}
.scn-boccaccio-fancy .dian-vest {
  position: absolute; bottom: 40%; left: 42%; width: 14px; height: 20px;
  background: radial-gradient(circle, #d0b0a0 0%, #a08070 100%);
  border-radius: 40% 60% 60% 40%;
  box-shadow: 0 0 10px 4px rgba(160,128,112,0.4);
  animation: bf-vest 3s ease-in-out infinite alternate;
}
@keyframes bf-bg { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes bf-moon {
  0% { transform: translateY(0) scale(1); box-shadow: 0 0 20px 8px #d0c8b0; }
  50% { transform: translateY(-4px) scale(1.02); box-shadow: 0 0 30px 12px #e0d8c0; }
  100% { transform: translateY(0) scale(0.98); box-shadow: 0 0 20px 8px #d0c8b0; }
}
@keyframes bf-arch {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes bf-faun {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(4px); }
  100% { transform: rotate(-2deg) translateX(-2px); }
}
@keyframes bf-nymph {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes bf-maid {
  0% { transform: translateX(-10px) rotate(-1deg); }
  25% { transform: translateX(-6px) rotate(2deg); }
  50% { transform: translateX(-12px) rotate(-2deg); }
  75% { transform: translateX(-4px) rotate(3deg); }
  100% { transform: translateX(-10px) rotate(0deg); }
}
@keyframes bf-vest {
  0% { transform: scale(1) rotate(0deg); opacity: 0.7; }
  50% { transform: scale(1.08) rotate(5deg); opacity: 1; }
  100% { transform: scale(0.95) rotate(-3deg); opacity: 0.8; }
}

/* scene dirge-for-king-four */
.scn-dirge-for-king-four {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 50%, #1a1a2e 100%), radial-gradient(ellipse at 30% 60%, #2a3a4e 0%, transparent 70%);
}
.scn-dirge-for-king-four .throne-back {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 45%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1a0e 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
}
.scn-dirge-for-king-four .throne-seat {
  position: absolute; bottom: 25%; left: 35%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #5a4a3e 0%, #3a2a1e 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
}
.scn-dirge-for-king-four .crown {
  position: absolute; bottom: 68%; left: 45%; width: 10%; height: 8%;
  background: radial-gradient(circle, #c8a050 0%, #8a6a30 70%);
  border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(200,160,80,.5);
  animation: d4-crown 4s ease-in-out infinite;
}
.scn-dirge-for-king-four .window {
  position: absolute; top: 10%; right: 10%; width: 15%; height: 25%;
  background: radial-gradient(ellipse at 50% 50%, #2a3a4e 0%, #0a0a1e 70%);
  border-radius: 50% / 60% 60% 40% 40%;
  box-shadow: inset 0 0 30px rgba(100,140,180,.3);
  animation: d4-window 12s ease-in-out infinite alternate;
}
.scn-dirge-for-king-four .light-beam {
  position: absolute; top: 10%; right: 12%; width: 10%; height: 50%;
  background: linear-gradient(180deg, rgba(180,200,220,.15) 0%, transparent 100%);
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  animation: d4-beam 8s ease-in-out infinite alternate;
}
.scn-dirge-for-king-four .figure {
  position: absolute; bottom: 20%; left: 20%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: d4-figure 6s ease-in-out infinite;
}
.scn-dirge-for-king-four .shadow {
  position: absolute; bottom: 0%; left: 0%; width: 100%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  animation: d4-shadow 4s ease-in-out infinite alternate;
}
@keyframes d4-crown {
  0%,100% { transform: translateY(0) rotate(0deg) scale(1); opacity: .8; }
  50% { transform: translateY(-3px) rotate(4deg) scale(1.05); opacity: 1; }
}
@keyframes d4-window {
  0% { opacity: .6; filter: brightness(.8); }
  50% { opacity: .9; filter: brightness(1.1); }
  100% { opacity: .7; filter: brightness(.9); }
}
@keyframes d4-beam {
  0% { opacity: .2; transform: scaleX(1); }
  50% { opacity: .6; transform: scaleX(1.2); }
  100% { opacity: .3; transform: scaleX(0.9); }
}
@keyframes d4-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(4%) translateY(-2%) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-4%) translateY(-1%) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes d4-shadow {
  0% { opacity: .5; }
  100% { opacity: .7; }
}

/* scene dirge-for-king-five */
.scn-dirge-for-king-five {
  background: linear-gradient(180deg, #1e1a14 0%, #0e0a06 50%, #1e1a14 100%), radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 70%);
}
.scn-dirge-for-king-five .sarcophagus {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%;
  box-shadow: 0 6px 20px rgba(0,0,0,.7), inset 0 4px 12px rgba(0,0,0,.5);
}
.scn-dirge-for-king-five .sarcophagus-lid {
  position: absolute; bottom: 48%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: d5-lid 8s ease-in-out infinite;
}
.scn-dirge-for-king-five .pillar-left {
  position: absolute; bottom: 20%; left: 15%; width: 8%; height: 60%;
  background: linear-gradient(90deg, #3a3a3a 0%, #4a4a4a 50%, #3a3a3a 100%);
  border-radius: 10% / 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: d5-pillar-left 10s ease-in-out infinite alternate;
}
.scn-dirge-for-king-five .pillar-right {
  position: absolute; bottom: 20%; right: 15%; width: 8%; height: 60%;
  background: linear-gradient(90deg, #3a3a3a 0%, #4a4a4a 50%, #3a3a3a 100%);
  border-radius: 10% / 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: d5-pillar-right 10s ease-in-out infinite alternate;
}
.scn-dirge-for-king-five .candle {
  position: absolute; bottom: 50%; left: 48%; width: 4%; height: 15%;
  background: linear-gradient(180deg, #c8b080 0%, #a09070 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 0 10px rgba(200,176,128,.3);
}
.scn-dirge-for-king-five .flame {
  position: absolute; bottom: 63%; left: 48.5%; width: 3%; height: 6%;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 50%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  box-shadow: 0 0 30px 8px rgba(255,160,64,.6);
  animation: d5-flame 2s ease-in-out infinite alternate;
}
.scn-dirge-for-king-five .figure {
  position: absolute; bottom: 20%; left: 42%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: d5-figure 7s ease-in-out infinite;
}
@keyframes d5-lid {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes d5-pillar-left {
  0% { transform: translateY(0); opacity: .9; }
  100% { transform: translateY(2px); opacity: .7; }
}
@keyframes d5-pillar-right {
  0% { transform: translateY(2px); opacity: .7; }
  100% { transform: translateY(0); opacity: .9; }
}
@keyframes d5-flame {
  0% { transform: scaleY(1) scaleX(1) translateY(0); opacity: .8; }
  50% { transform: scaleY(1.3) scaleX(0.9) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.9) scaleX(1.1) translateY(1px); opacity: .7; }
}
@keyframes d5-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(5%) translateY(-1%) rotate(2deg); }
  50% { transform: translateX(0) translateY(0) rotate(-2deg); }
  75% { transform: translateX(-5%) translateY(-1%) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}

/* scene dirge-for-king-six */
.scn-dirge-for-king-six {
  background: linear-gradient(180deg, #18181e 0%, #0c0c10 50%, #18181e 100%), radial-gradient(ellipse at 50% 80%, #2a2a34 0%, transparent 70%);
}
.scn-dirge-for-king-six .tombstone {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 20% 20% 5% 5% / 40% 40% 10% 10%;
  box-shadow: 0 8px 30px rgba(0,0,0,.7), inset 0 4px 12px rgba(0,0,0,.5);
  animation: d6-tombstone 14s ease-in-out infinite alternate;
}
.scn-dirge-for-king-six .figure-left {
  position: absolute; bottom: 18%; left: 20%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #2e2e40 0%, #0a0a18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: d6-figure-left 6s ease-in-out infinite;
}
.scn-dirge-for-king-six .figure-right {
  position: absolute; bottom: 18%; right: 20%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #2e2e40 0%, #0a0a18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: d6-figure-right 6s ease-in-out infinite;
}
.scn-dirge-for-king-six .ground {
  position: absolute; bottom: 0%; left: 0%; width: 100%; height: 25%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
}
.scn-dirge-for-king-six .window-arch {
  position: absolute; top: 5%; left: 25%; width: 50%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #1a1a2e 0%, #0a0a14 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  border: 2px solid #3a3a4e;
  box-shadow: inset 0 0 40px rgba(50,50,80,.3);
  animation: d6-window 10s ease-in-out infinite alternate;
}
.scn-dirge-for-king-six .candle {
  position: absolute; bottom: 45%; left: 48%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #c8b080 0%, #a09070 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 0 10px rgba(200,176,128,.3);
}
.scn-dirge-for-king-six .shadow {
  position: absolute; bottom: 0%; left: 0%; width: 100%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.7) 100%);
  animation: d6-shadow 5s ease-in-out infinite alternate;
}
@keyframes d6-tombstone {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes d6-figure-left {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(3%) translateY(-2%) rotate(2deg); }
  50% { transform: translateX(0) translateY(0) rotate(-2deg); }
  75% { transform: translateX(-3%) translateY(-1%) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes d6-figure-right {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  25% { transform: translateX(-3%) translateY(-2%) rotate(-2deg); }
  50% { transform: translateX(0) translateY(0) rotate(2deg); }
  75% { transform: translateX(3%) translateY(-1%) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes d6-window {
  0% { opacity: .5; filter: brightness(.7); }
  50% { opacity: .8; filter: brightness(1); }
  100% { opacity: .6; filter: brightness(.8); }
}
@keyframes d6-shadow {
  0% { opacity: .4; }
  100% { opacity: .6; }
}

/* scene dirge-for-king-seven */
.scn-dirge-for-king-seven {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 30%, #2a2a4e 0%, transparent 70%);
}
.scn-dirge-for-king-seven .king-profile {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  clip-path: polygon(20% 0%, 80% 0%, 100% 30%, 100% 100%, 0% 100%, 0% 30%);
  animation: d7-king 8s ease-in-out infinite alternate;
}
.scn-dirge-for-king-seven .crown {
  position: absolute; top: 18%; left: 38%; width: 24%; height: 10%;
  background: radial-gradient(circle, #c8a050 0%, #8a6a30 70%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(200,160,80,.5);
  animation: d7-crown 6s ease-in-out infinite;
}
.scn-dirge-for-king-seven .scepter {
  position: absolute; bottom: 20%; left: 58%; width: 4%; height: 40%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: d7-scepter 5s ease-in-out infinite;
}
.scn-dirge-for-king-seven .throne {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 45%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1a0e 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 8px 30px rgba(0,0,0,.6);
}
.scn-dirge-for-king-seven .glow {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(circle, rgba(200,180,150,.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: d7-glow 10s ease-in-out infinite alternate;
}
.scn-dirge-for-king-seven .curtain-left {
  position: absolute; top: 0%; left: 0%; width: 20%; height: 100%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 0 40% 40% 0 / 0 30% 30% 0;
  box-shadow: inset -10px 0 30px rgba(0,0,0,.6);
  animation: d7-curtain-left 12s ease-in-out infinite alternate;
}
.scn-dirge-for-king-seven .curtain-right {
  position: absolute; top: 0%; right: 0%; width: 20%; height: 100%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 40% 0 0 40% / 30% 0 0 30%;
  box-shadow: inset 10px 0 30px rgba(0,0,0,.6);
  animation: d7-curtain-right 12s ease-in-out infinite alternate;
}
@keyframes d7-king {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes d7-crown {
  0%,100% { transform: rotate(0deg) scale(1); opacity: .8; }
  50% { transform: rotate(3deg) scale(1.05); opacity: 1; }
}
@keyframes d7-scepter {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes d7-glow {
  0% { opacity: .3; transform: scale(1); }
  50% { opacity: .7; transform: scale(1.2); }
  100% { opacity: .4; transform: scale(0.9); }
}
@keyframes d7-curtain-left {
  0% { transform: translateX(0); }
  100% { transform: translateX(3%); }
}
@keyframes d7-curtain-right {
  0% { transform: translateX(0); }
  100% { transform: translateX(-3%); }
}

/* Scene: ode-to-tranquillity */
.scn-ode-to-tranquillity {
  background: 
    linear-gradient(180deg, #1e1a2a 0%, #2c2540 60%, #3d2e4a 100%),
    radial-gradient(ellipse at 50% 100%, #4a3e5a 0%, transparent 70%);
}
.scn-ode-to-tranquillity .bg-room {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1625 0%, #251e35 70%, transparent 100%);
}
.scn-ode-to-tranquillity .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #1f1a2a 0%, #2e2740 40%, #3b3250 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-ode-to-tranquillity .window {
  position: absolute; left: 20%; top: 18%; width: 28%; height: 38%;
  background: linear-gradient(180deg, #0f1520 0%, #1a2235 100%);
  border: 3px solid #3a3250;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.8), 0 0 10px rgba(100,80,140,0.3);
}
.scn-ode-to-tranquillity .moon {
  position: absolute; left: 25%; top: 22%; width: 12%; height: auto; aspect-ratio: 1;
  background: radial-gradient(circle, rgba(210,200,230,0.8) 0%, rgba(180,170,210,0.3) 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(180,170,210,0.3);
  animation: ot-moon 12s ease-in-out infinite alternate;
}
.scn-ode-to-tranquillity .desk {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #3a2e1a 0%, #2a1e0e 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-ode-to-tranquillity .candle {
  position: absolute; bottom: 35%; left: 55%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #d4c8a0 0%, #b8a880 40%, #9a8850 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
}
.scn-ode-to-tranquillity .flame {
  position: absolute; bottom: 44%; left: 56%; width: 3%; height: 8%;
  background: radial-gradient(ellipse at 50% 20%, #ffd080 0%, #e0a040 50%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(224,160,64,0.6), 0 0 40px 12px rgba(224,160,64,0.3);
  animation: ot-flame 2s ease-in-out infinite alternate;
}
.scn-ode-to-tranquillity .scroll {
  position: absolute; bottom: 32%; left: 35%; width: 30%; height: 6%;
  background: linear-gradient(90deg, #d4c090 0%, #e8d8b0 50%, #d4c090 100%);
  border-radius: 10% 10% 10% 10% / 50% 50% 50% 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ot-scroll 15s ease-in-out infinite alternate;
}
.scn-ode-to-tranquillity .figure-reader {
  position: absolute; bottom: 30%; left: 52%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ot-reader 4s ease-in-out infinite alternate;
}
@keyframes ot-moon {
  0% { opacity: 0.6; transform: scale(0.95) translateX(0); }
  50% { opacity: 0.9; transform: scale(1.05) translateX(5px); }
  100% { opacity: 0.7; transform: scale(0.98) translateX(-3px); }
}
@keyframes ot-flame {
  0% { transform: scaleY(1) rotate(-2deg); opacity: 0.8; box-shadow: 0 0 20px 4px rgba(224,160,64,0.5); }
  50% { transform: scaleY(1.2) rotate(1deg); opacity: 1; box-shadow: 0 0 30px 8px rgba(224,160,64,0.8); }
  100% { transform: scaleY(0.9) rotate(0deg); opacity: 0.7; box-shadow: 0 0 15px 3px rgba(224,160,64,0.4); }
}
@keyframes ot-scroll {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(0.98); }
}
@keyframes ot-reader {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(1px) rotate(-1deg); }
}

/* Scene: tranquillity-dedication */
.scn-tranquillity-dedication {
  background:
    linear-gradient(180deg, #1e1a2a 0%, #2e2840 50%, #1a1525 100%),
    radial-gradient(ellipse at 30% 20%, #4a3a5a 0%, transparent 60%);
}
.scn-tranquillity-dedication .bg-icon {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1625 0%, #2a2238 100%);
}
.scn-tranquillity-dedication .floor-plane {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #15101e 0%, #201c2e 50%, #2e2840 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
}
.scn-tranquillity-dedication .column {
  position: absolute; bottom: 30%; left: 20%; width: 5%; height: 50%;
  background: linear-gradient(180deg, #2a2238 0%, #3a3050 50%, #2a2238 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.4);
}
.scn-tranquillity-dedication .bookshelf {
  position: absolute; bottom: 35%; right: 15%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a100e 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
}
.scn-tranquillity-dedication .podium {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 18%;
  background: linear-gradient(180deg, #3a2e1a 0%, #2a1e0e 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-tranquillity-dedication .figure-scribe {
  position: absolute; bottom: 28%; left: 42%; width: 12%; 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: td-scribe 6s ease-in-out infinite alternate;
}
.scn-tranquillity-dedication .ray-light {
  position: absolute; top: 0; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(200,180,230,0.15) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: td-ray 8s ease-in-out infinite alternate;
}
.scn-tranquillity-dedication .scroll-offered {
  position: absolute; bottom: 30%; left: 48%; width: 16%; height: 8%;
  background: linear-gradient(90deg, #d4c090 0%, #e8d8b0 50%, #d4c090 100%);
  border-radius: 10% 10% 10% 10% / 50% 50% 50% 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform-origin: left center;
  animation: td-scroll 10s ease-in-out infinite alternate;
}
.scn-tranquillity-dedication .aura-glow {
  position: absolute; bottom: 30%; left: 45%; width: 10%; height: 40%;
  background: radial-gradient(ellipse at center, rgba(200,180,230,0.2) 0%, transparent 60%);
  animation: td-aura 7s ease-in-out infinite alternate;
}
@keyframes td-scribe {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(3deg); }
  100% { transform: translateY(2px) rotate(-2deg); }
}
@keyframes td-ray {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.7; transform: scaleX(1.1) translateX(5px); }
  100% { opacity: 0.4; transform: scaleX(0.9) translateX(-3px); }
}
@keyframes td-scroll {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(-3deg) translateY(1px); }
}
@keyframes td-aura {
  0% { opacity: 0.5; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(0.95); }
}

/* Scene: second-birth */
.scn-second-birth {
  background:
    linear-gradient(180deg, #1a1225 0%, #2a1a35 50%, #1a1225 100%),
    radial-gradient(ellipse at 50% 70%, #5a2a4a 0%, transparent 60%);
}
.scn-second-birth .bg-warm-dark {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, #2a1a35 0%, #0e0815 100%);
}
.scn-second-birth .glow-union {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at center, rgba(230,180,200,0.15) 0%, transparent 70%);
  animation: sb-glow 5s ease-in-out infinite alternate;
}
.scn-second-birth .figure-lover-le {
  position: absolute; bottom: 25%; left: 32%; width: 15%; 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: sb-lover-le 4s ease-in-out infinite alternate;
}
.scn-second-birth .figure-lover-ri {
  position: absolute; bottom: 25%; right: 32%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sb-lover-ri 4s ease-in-out infinite alternate;
}
.scn-second-birth .heart-core {
  position: absolute; bottom: 45%; left: 48%; width: 4%; height: 6%;
  background: radial-gradient(ellipse at center, #b87878 0%, #702243 100%);
  border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%;
  box-shadow: 0 0 20px 6px rgba(184,120,120,0.4);
  animation: sb-heart 3s ease-in-out infinite;
}
.scn-second-birth .ring-union {
  position: absolute; bottom: 48%; left: 40%; width: 20%; height: 8%;
  border: 2px solid rgba(180,150,170,0.3);
  border-radius: 50%;
  box-shadow: 0 0 15px rgba(180,150,170,0.2);
  animation: sb-ring 8s linear infinite;
}
.scn-second-birth .petal-1 {
  position: absolute; top: 10%; left: 20%; width: 4%; height: 4%;
  background: radial-gradient(ellipse, rgba(230,200,210,0.6) 0%, transparent 100%);
  border-radius: 50% 0 50% 0;
  animation: sb-petal 9s linear infinite;
}
.scn-second-birth .petal-2 {
  position: absolute; top: 15%; right: 25%; width: 3%; height: 3%;
  background: radial-gradient(ellipse, rgba(230,200,210,0.5) 0%, transparent 100%);
  border-radius: 0 50% 0 50%;
  animation: sb-petal 11s linear infinite reverse;
}
@keyframes sb-glow {
  0% { opacity: 0.3; transform: scale(0.9); }
  50% { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(0.95); }
}
@keyframes sb-lover-le {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(4deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes sb-lover-ri {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-8px) rotate(-4deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes sb-heart {
  0% { transform: scale(1); box-shadow: 0 0 15px 4px rgba(184,120,120,0.3); }
  50% { transform: scale(1.2); box-shadow: 0 0 30px 8px rgba(184,120,120,0.6); }
  100% { transform: scale(1); box-shadow: 0 0 15px 4px rgba(184,120,120,0.3); }
}
@keyframes sb-ring {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes sb-petal {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.6; }
  50% { transform: translateY(50px) rotate(180deg); opacity: 0.3; }
  100% { transform: translateY(100px) rotate(360deg); opacity: 0; }
}

/* Scene: dejection-ode-intro */
.scn-dejection-ode-intro {
  background:
    linear-gradient(180deg, #0a0a12 0%, #14141e 40%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 0%, #2a2a3e 0%, transparent 70%);
}
.scn-dejection-ode-intro .sky-storm {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0a0a12 0%, #181826 60%, #2a2a3e 100%);
  animation: dj-sky 20s ease-in-out infinite alternate;
}
.scn-dejection-ode-intro .cloud-dark {
  position: absolute; top: 5%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, rgba(20,20,30,0.8) 0%, transparent 100%);
  filter: blur(8px);
  animation: dj-cloud-dark 30s linear infinite;
}
.scn-dejection-ode-intro .cloud-grey {
  position: absolute; top: 15%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(40,40,60,0.5) 0%, transparent 100%);
  filter: blur(12px);
  animation: dj-cloud-grey 25s linear infinite reverse;
}
.scn-dejection-ode-intro .moon-veiled {
  position: absolute; top: 18%; left: 42%; width: 12%; aspect-ratio: 1;
  background: radial-gradient(circle, rgba(200,200,230,0.3) 0%, rgba(150,150,180,0.1) 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(150,150,180,0.2);
  animation: dj-moon 15s ease-in-out infinite alternate;
}
.scn-dejection-ode-intro .sea-raging {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0a0a14 0%, #14142a 50%, #1e1e34 100%);
  border-radius: 60% 60% 0 0 / 20% 20% 0 0;
  animation: dj-sea 12s ease-in-out infinite alternate;
}
.scn-dejection-ode-intro .ship-tossed {
  position: absolute; bottom: 20%; left: 30%; width: 15%; height: 15%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  clip-path: polygon(0 60%, 100% 60%, 80% 100%, 20% 100%);
  animation: dj-ship 4s ease-in-out infinite;
}
.scn-dejection-ode-intro .figure-watch {
  position: absolute; bottom: 25%; right: 20%; width: 10%; 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: dj-watch 6s ease-in-out infinite alternate;
}
.scn-dejection-ode-intro .lightning {
  position: absolute; top: 10%; left: 20%; width: 2px; height: 20%;
  background: white;
  filter: blur(1px);
  opacity: 0;
  animation: dj-lightning 5s infinite;
}
.scn-dejection-ode-intro .l2 {
  left: 60%; top: 5%; height: 15%;
  animation-delay: 2.5s;
}
@keyframes dj-sky {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.7; }
}
@keyframes dj-cloud-dark {
  0% { transform: translateX(-20px); }
  50% { transform: translateX(20px); }
  100% { transform: translateX(-20px); }
}
@keyframes dj-cloud-grey {
  0% { transform: translateX(10px); }
  50% { transform: translateX(-30px); }
  100% { transform: translateX(10px); }
}
@keyframes dj-moon {
  0% { opacity: 0.2; transform: scale(0.9); box-shadow: 0 0 20px 5px rgba(150,150,180,0.1); }
  50% { opacity: 0.5; transform: scale(1.1); box-shadow: 0 0 40px 10px rgba(150,150,180,0.3); }
  100% { opacity: 0.3; transform: scale(0.95); box-shadow: 0 0 25px 6px rgba(150,150,180,0.15); }
}
@keyframes dj-sea {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-8px) scaleY(1.02); }
  100% { transform: translateY(5px) scaleY(0.98); }
}
@keyframes dj-ship {
  0% { transform: translate(0, 0) rotate(-3deg); }
  25% { transform: translate(5px, -5px) rotate(2deg); }
  50% { transform: translate(-3px, -8px) rotate(-5deg); }
  75% { transform: translate(2px, -2px) rotate(1deg); }
  100% { transform: translate(0, 0) rotate(-3deg); }
}
@keyframes dj-watch {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-6px) rotate(4deg); }
  100% { transform: translateY(2px) rotate(-2deg); }
}
@keyframes dj-lightning {
  0% { opacity: 0; }
  5% { opacity: 0.8; }
  10% { opacity: 0; }
  100% { opacity: 0; }
}

/* scene: christmas-carol-additional (dark, overcast) */
.scn-christmas-carol-additional {
  background: 
    linear-gradient(180deg, #2b2b3a 0%, #1a1a2e 30%, #0f0f1f 60%, #070712 100%);
  height: 100%;
  overflow: hidden;
}
.scn-christmas-carol-additional .sky-depths {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a3a50 0%, #1e1e2e 60%, transparent 100%);
  animation: cca-sky 14s ease-in-out infinite alternate;
}
.scn-christmas-carol-additional .sun-ghost {
  position: absolute; top: 8%; left: 38%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(180,180,200,.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(14px);
  animation: cca-sun 35s linear infinite;
}
.scn-christmas-carol-additional .horizon-mist {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, transparent 0%, rgba(200,200,220,.12) 50%, transparent 100%);
  animation: cca-mist 10s ease-in-out infinite alternate;
}
.scn-christmas-carol-additional .hills-back {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 60% 40% 0 0 / 30% 50% 0 0;
  opacity: 0.8;
  animation: cca-hills 20s ease-in-out infinite;
}
.scn-christmas-carol-additional .hills-front {
  position: absolute; bottom: 12%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #1c1c2c 0%, #0f0f1f 100%);
  border-radius: 50% 50% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.6);
  animation: cca-hills2 17s ease-in-out infinite;
}
.scn-christmas-carol-additional .withered-tree {
  position: absolute; bottom: 18%; left: 22%; width: 4px; height: 40px;
  background: #1a1a2e;
  transform-origin: bottom center;
  border-radius: 2px;
  box-shadow: 0 -8px 0 0 #1a1a2e, 6px -16px 0 0 #1a1a2e, -4px -20px 0 0 #1a1a2e;
  animation: cca-tree 9s ease-in-out infinite alternate;
}
.scn-christmas-carol-additional .lone-figure {
  position: absolute; bottom: 16%; left: 50%; width: 16px; height: 42px;
  background: linear-gradient(180deg, #0d0d1a 0%, #050510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: cca-figure 12s ease-in-out infinite;
}
.scn-christmas-carol-additional .phantom-veil {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 60px;
  background: radial-gradient(ellipse at 30% 50%, rgba(180,160,200,.08) 0%, transparent 60%);
  filter: blur(8px);
  animation: cca-phantom 6s ease-in-out infinite alternate;
}
@keyframes cca-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes cca-sun { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(30px) scale(1.2) } 100% { transform: translateX(80px) scale(0.9) } }
@keyframes cca-mist { 0% { opacity: 0.3; transform: translateY(0) } 50% { opacity: 0.6; transform: translateY(-2px) } 100% { opacity: 0.2; transform: translateY(1px) } }
@keyframes cca-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes cca-hills2 { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes cca-tree { 0% { transform: rotate(-2deg) scaleY(1) } 50% { transform: rotate(3deg) scaleY(1.1) } 100% { transform: rotate(-1deg) scaleY(1) } }
@keyframes cca-figure { 0% { transform: translateX(-50%) rotate(0deg); bottom: 16% } 50% { transform: translateX(-40%) rotate(2deg); bottom: 15% } 100% { transform: translateX(-50%) rotate(-1deg); bottom: 16% } }
@keyframes cca-phantom { 0% { opacity: 0.1; transform: scale(0.9) } 50% { opacity: 0.5; transform: scale(1.2) translateX(10px) } 100% { opacity: 0.2; transform: scale(0.8) } }

/* scene: talleyrand-epistle-intro (funny, dim-interior) */
.scn-talleyrand-epistle-intro {
  background: 
    radial-gradient(ellipse at 50% 80%, #2e2a22 0%, #1c1814 60%, #0e0c0a 100%),
    linear-gradient(180deg, #3a3228 0%, #1e1a14 100%);
  height: 100%;
  overflow: hidden;
}
.scn-talleyrand-epistle-intro .wall-dim { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 100%, #2a241e 0%, #16120e 100%); animation: tei-wall 12s ease-in-out infinite alternate; }
.scn-talleyrand-epistle-intro .desk-dark { position: absolute; bottom: 10%; left: 10%; right: 10%; height: 35%; background: linear-gradient(180deg, #3a2e20 0%, #1e1810 100%); border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-talleyrand-epistle-intro .candle-glow { position: absolute; bottom: 44%; left: 50%; width: 20px; height: 30px; background: radial-gradient(circle at 50% 100%, #ffcf80 0%, #d4a050 40%, transparent 70%); border-radius: 40% 40% 20% 20%; transform: translateX(-50%); animation: tei-candle 3s ease-in-out infinite; }
.scn-talleyrand-epistle-intro .flame-dance { position: absolute; bottom: 50%; left: 50%; width: 12px; height: 18px; background: radial-gradient(circle at 50% 50%, #ffe080 0%, #ffa030 50%, transparent 70%); border-radius: 50% 50% 40% 40%; transform: translateX(-50%); animation: tei-flame 0.8s ease-in-out infinite alternate; }
.scn-talleyrand-epistle-intro .inkpot-shape { position: absolute; bottom: 22%; left: 28%; width: 22px; height: 26px; background: linear-gradient(180deg, #2a1e18 0%, #0e0a08 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: tei-ink 6s ease-in-out infinite; }
.scn-talleyrand-epistle-intro .quill-slant { position: absolute; bottom: 28%; left: 35%; width: 4px; height: 40px; background: linear-gradient(180deg, #c0a890 0%, #9a7a60 100%); transform-origin: bottom center; border-radius: 2px; transform: rotate(20deg); animation: tei-quill 4s ease-in-out infinite; }
.scn-talleyrand-epistle-intro .letter-fold { position: absolute; bottom: 16%; left: 55%; width: 50px; height: 32px; background: linear-gradient(180deg, #e8d8c0 0%, #c8b498 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: tei-letter 5s ease-in-out infinite; }
.scn-talleyrand-epistle-intro .wig-perch { position: absolute; bottom: 55%; left: 42%; width: 30px; height: 40px; background: linear-gradient(180deg, #a08a78 0%, #705e4e 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; animation: tei-wig 3s ease-in-out infinite; }
.scn-talleyrand-epistle-intro .hand-nib { position: absolute; bottom: 25%; left: 38%; width: 12px; height: 20px; background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; transform: rotate(10deg); animation: tei-hand 5s ease-in-out infinite alternate; }
@keyframes tei-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes tei-candle { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.05) } 100% { transform: translateX(-50%) scaleY(0.98) } }
@keyframes tei-flame { 0% { transform: translateX(-50%) scale(1) rotate(0deg) } 50% { transform: translateX(-48%) scale(1.2) rotate(5deg) } 100% { transform: translateX(-52%) scale(0.9) rotate(-5deg) } }
@keyframes tei-ink { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) } }
@keyframes tei-quill { 0% { transform: rotate(20deg) } 50% { transform: rotate(25deg) translateY(-2px) } 100% { transform: rotate(18deg) } }
@keyframes tei-letter { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-3px) } 100% { transform: rotate(-6deg) translateY(1px) } }
@keyframes tei-wig { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(8deg) scaleY(1.1) } 100% { transform: rotate(-4deg) scaleY(0.95) } }
@keyframes tei-hand { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(15deg) translateX(4px) } 100% { transform: rotate(8deg) translateX(-2px) } }

/* scene: talleyrand-prose-intro (funny, dim-interior, top-down) */
.scn-talleyrand-prose-intro {
  background: 
    radial-gradient(circle at 50% 50%, #3a3226 0%, #1c1812 70%, #0e0c08 100%);
  height: 100%;
  overflow: hidden;
}
.scn-talleyrand-prose-intro .table-top { position: absolute; inset: 15% 5% 10% 5%; background: linear-gradient(180deg, #4a3e2e 0%, #2a2218 100%); border-radius: 8px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-talleyrand-prose-intro .scroll-open { position: absolute; top: 30%; left: 20%; width: 60%; height: 30%; background: linear-gradient(135deg, #f0e0c8 0%, #d8c4a8 100%); border-radius: 4px; transform: rotate(-2deg); box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: tpi-scroll 7s ease-in-out infinite; }
.scn-talleyrand-prose-intro .quill-write { position: absolute; top: 35%; left: 55%; width: 4px; height: 50px; background: linear-gradient(180deg, #c8b098 0%, #9a7a60 100%); transform-origin: 50% 100%; transform: rotate(-30deg); border-radius: 2px; animation: tpi-quill 3s ease-in-out infinite; }
.scn-talleyrand-prose-intro .inkwell-drop { position: absolute; top: 40%; left: 15%; width: 24px; height: 28px; background: radial-gradient(circle at 50% 30%, #2a1a12 0%, #0e0804 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-talleyrand-prose-intro .candle-wick { position: absolute; top: 25%; left: 75%; width: 6px; height: 20px; background: linear-gradient(180deg, #e8c080 0%, #b08040 50%, #604020 100%); border-radius: 2px; transform: rotate(5deg); animation: tpi-wick 4s ease-in-out infinite; }
.scn-talleyrand-prose-intro .flame-orb { position: absolute; top: 18%; left: 74.5%; width: 14px; height: 18px; background: radial-gradient(circle at 50% 50%, #ffe080 0%, #ffa030 50%, transparent 70%); border-radius: 50%; animation: tpi-flame 0.6s ease-in-out infinite alternate; }
.scn-talleyrand-prose-intro .hand-silhouette { position: absolute; top: 28%; left: 48%; width: 20px; height: 30px; background: linear-gradient(180deg, #1e1610 0%, #0a0604 100%); border-radius: 50% 30% 40% 40% / 60% 40% 60% 40%; transform: rotate(-10deg); animation: tpi-hand 5s ease-in-out infinite; }
.scn-talleyrand-prose-intro .splotch-ink { position: absolute; top: 45%; left: 30%; width: 10px; height: 8px; background: #1a0e08; border-radius: 50% 60% 50% 40%; animation: tpi-splotch 8s ease-in-out infinite alternate; }
@keyframes tpi-scroll { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-4px); } 100% { transform: rotate(-3deg) translateY(2px); } }
@keyframes tpi-quill { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-20deg) translateX(3px); } 100% { transform: rotate(-35deg); } }
@keyframes tpi-wick { 0% { transform: rotate(5deg); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(2deg); } }
@keyframes tpi-flame { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.3) rotate(8deg); } 100% { transform: scale(0.85) rotate(-8deg); } }
@keyframes tpi-hand { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(5px); } 100% { transform: rotate(-12deg) translateX(-2px); } }
@keyframes tpi-splotch { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0.7; transform: scale(0.9); } }

/* scene: talleyrand-letter-comment (funny, dim-interior, close-up figure profile) */
.scn-talleyrand-letter-comment {
  background: 
    radial-gradient(ellipse at 60% 50%, #3a2e24 0%, #1c1612 70%, #0c0a08 100%);
  height: 100%;
  overflow: hidden;
}
.scn-talleyrand-letter-comment .wall-panel { position: absolute; inset: 0; background: linear-gradient(180deg, #2a221c 0%, #16120e 100%); animation: tlc-wall 15s ease-in-out infinite alternate; }
.scn-talleyrand-letter-comment .desk-slope { position: absolute; bottom: 5%; left: 5%; right: 5%; height: 30%; background: linear-gradient(180deg, #3a2e20 0%, #1a1410 100%); border-radius: 4px; box-shadow: 0 -4px 10px rgba(0,0,0,.5); }
.scn-talleyrand-letter-comment .letter-held { position: absolute; bottom: 18%; left: 50%; width: 50px; height: 35px; background: linear-gradient(135deg, #f0e0c8 0%, #c8b498 100%); transform: translateX(-50%) rotate(5deg); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: tlc-letter 6s ease-in-out infinite; }
.scn-talleyrand-letter-comment .hand-profile { position: absolute; bottom: 20%; left: 42%; width: 20px; height: 28px; background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); border-radius: 40% 30% 50% 50% / 50% 40% 60% 50%; transform: rotate(15deg); animation: tlc-hand 5s ease-in-out infinite; }
.scn-talleyrand-letter-comment .nose-curve { position: absolute; bottom: 55%; left: 38%; width: 10px; height: 14px; background: linear-gradient(180deg, #a09080 0%, #605040 100%); border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%; animation: tlc-nose 3s ease-in-out infinite; }
.scn-talleyrand-letter-comment .wig-bounce { position: absolute; bottom: 62%; left: 35%; width: 40px; height: 50px; background: linear-gradient(180deg, #b09880 0%, #705e4e 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: center bottom; animation: tlc-wig 2.5s ease-in-out infinite; }
.scn-talleyrand-letter-comment .candle-base { position: absolute; bottom: 18%; left: 68%; width: 8px; height: 18px; background: linear-gradient(180deg, #e0c090 0%, #a08050 100%); border-radius: 2px; animation: tlc-candle 7s ease-in-out infinite; }
.scn-talleyrand-letter-comment .flame-tremble { position: absolute; bottom: 25%; left: 67.5%; width: 12px; height: 16px; background: radial-gradient(circle at 50% 50%, #ffe080 0%, #ffa030 50%, transparent 70%); border-radius: 50%; animation: tlc-flame 0.5s ease-in-out infinite alternate; }
@keyframes tlc-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes tlc-letter { 0% { transform: translateX(-50%) rotate(5deg) scale(1) } 50% { transform: translateX(-50%) rotate(8deg) scale(1.05) } 100% { transform: translateX(-50%) rotate(3deg) scale(0.98) } }
@keyframes tlc-hand { 0% { transform: rotate(15deg) translateX(0) } 50% { transform: rotate(20deg) translateX(5px) } 100% { transform: rotate(12deg) translateX(-2px) } }
@keyframes tlc-nose { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) scaleY(1.2) } 100% { transform: rotate(-3deg) scaleY(0.9) } }
@keyframes tlc-wig { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(12deg) scale(1.1) } 100% { transform: rotate(-6deg) scale(0.95) } }
@keyframes tlc-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) translateY(-2px) } 100% { transform: scaleY(0.95) } }
@keyframes tlc-flame { 0% { transform: scale(1) rotate(0deg) translateY(0) } 50% { transform: scale(1.4) rotate(10deg) translateY(-3px) } 100% { transform: scale(0.8) rotate(-10deg) translateY(1px) } }

.scn-ode-to-rain-four { 
  background: linear-gradient(180deg, #5b6b7b 0%, #3a4a5a 50%, #4a5a6a 100%), 
              radial-gradient(ellipse at 50% 0%, #6b7b8b 0%, transparent 70%);
}
.scn-ode-to-rain-four .sky { 
  position: absolute; inset: 0 0 40% 0; 
  background: linear-gradient(180deg, #5b6b7b 0%, transparent 100%);
  animation: odrf-sky 15s ease-in-out infinite alternate;
}
.scn-ode-to-rain-four .ground { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-ode-to-rain-four .puddle { 
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 6%;
  background: radial-gradient(ellipse, #5a6a7a 0%, transparent 70%);
  border-radius: 50%; opacity: 0.6;
  animation: odrf-puddle 6s ease-in-out infinite;
}
.scn-ode-to-rain-four .rain-streak { 
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: repeating-linear-gradient(90deg, 
    rgba(255,255,255,0.15) 0px, rgba(255,255,255,0) 2px,
    rgba(255,255,255,0.15) 2px, rgba(255,255,255,0) 4px);
  background-size: 100% 100%;
  animation: odrf-rain 0.8s linear infinite;
}
.scn-ode-to-rain-four .figure { 
  position: absolute; bottom: 5%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: odrf-bob 2.5s ease-in-out infinite alternate;
}
.scn-ode-to-rain-four .figure-left { left: 22%; animation-delay: 0s; }
.scn-ode-to-rain-four .figure-center { left: 46%; animation-delay: 0.3s; transform: scale(1.1); }
.scn-ode-to-rain-four .figure-right { left: 68%; animation-delay: 0.6s; }
@keyframes odrf-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes odrf-puddle { 
  0%,100% { transform: scaleX(1) scaleY(1); opacity: 0.6; }
  50% { transform: scaleX(1.03) scaleY(1.02); opacity: 0.5; }
}
@keyframes odrf-rain { 0% { background-position: 0 0; } 100% { background-position: 0 20px; } }
@keyframes odrf-bob { 
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}

.scn-ode-to-rain-notes { 
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 50%, #0e0a06 100%), 
              radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 80%);
}
.scn-ode-to-rain-notes .wall { 
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1e14 80%);
}
.scn-ode-to-rain-notes .window { 
  position: absolute; top: 10%; left: 10%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #4a5a6a 0%, #2a3a4a 80%);
  border: 2px solid #1a120a; box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: odrn-window 8s ease-in-out infinite alternate;
}
.scn-ode-to-rain-notes .desk { 
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 4px;
}
.scn-ode-to-rain-notes .book { 
  position: absolute; bottom: 18%; left: 30%; width: 25%; height: 10%;
  background: linear-gradient(135deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 2px; transform: rotate(-3deg);
}
.scn-ode-to-rain-notes .candle-body { 
  position: absolute; bottom: 20%; left: 65%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e0d0c0 0%, #c0b0a0 100%);
  border-radius: 2px;
}
.scn-ode-to-rain-notes .candle-flame { 
  position: absolute; bottom: 48%; left: 65.5%; width: 6px; height: 12px;
  background: radial-gradient(circle, #ffd060 0%, #ffa030 60%, transparent 100%);
  border-radius: 50%; 
  animation: odrn-flame 0.8s ease-in-out infinite alternate;
}
.scn-ode-to-rain-notes .inkwell { 
  position: absolute; bottom: 19%; left: 45%; width: 12px; height: 12px;
  background: radial-gradient(circle, #2a1e14 0%, #0e0a06 100%);
  border-radius: 50%;
}
.scn-ode-to-rain-notes .quill { 
  position: absolute; bottom: 23%; left: 52%; width: 20px; height: 4px;
  background: linear-gradient(90deg, #d0c0b0 0%, #a09080 100%);
  border-radius: 2px; transform: rotate(20deg); transform-origin: right center;
  animation: odrn-quill 4s ease-in-out infinite alternate;
}
.scn-ode-to-rain-notes .dust-mote { 
  position: absolute; top: 30%; left: 40%; width: 3px; height: 3px;
  background: rgba(255,255,255,0.3); border-radius: 50%;
  animation: odrn-dust 12s linear infinite;
}
@keyframes odrn-window { 0% { opacity: 0.4; } 100% { opacity: 0.7; } }
@keyframes odrn-flame { 
  0% { transform: scale(1) translateY(0); opacity: 0.9; }
  50% { transform: scale(0.9) translateY(-1px); opacity: 1; }
  100% { transform: scale(1.1) translateY(1px); opacity: 0.8; }
}
@keyframes odrn-quill { 
  0% { transform: rotate(15deg) scaleX(1); }
  50% { transform: rotate(25deg) scaleX(0.9); }
  100% { transform: rotate(15deg) scaleX(1); }
}
@keyframes odrn-dust { 
  0% { transform: translate(0, 0) scale(1); opacity: 0.3; }
  25% { transform: translate(10px, -15px) scale(1.2); opacity: 0.4; }
  50% { transform: translate(20px, -5px) scale(0.8); opacity: 0.2; }
  75% { transform: translate(30px, -25px) scale(1.1); opacity: 0.3; }
  100% { transform: translate(40px, -10px) scale(1); opacity: 0.2; }
}

.scn-day-dream { 
  background: linear-gradient(180deg, #b0d0f0 0%, #80b0e0 50%, #c0e0ff 100%), 
              radial-gradient(ellipse at 50% 0%, #ffffa0 0%, transparent 60%);
}
.scn-day-dream .sky-sunny { 
  position: absolute; inset: 0 0 30% 0; 
  background: linear-gradient(180deg, #a0c8f0 0%, transparent 100%);
  animation: ddr-sky 12s ease-in-out infinite alternate;
}
.scn-day-dream .grass { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a9a4a 0%, #4a7a2a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
.scn-day-dream .fountain { 
  position: absolute; bottom: 15%; left: 25%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-day-dream .fountain::after { 
  content: ''; position: absolute; top: -20px; left: 50%; 
  width: 4px; height: 20px; background: rgba(200,230,255,0.6); 
  border-radius: 50%; transform: translateX(-50%);
  animation: ddr-fountain 2s ease-in-out infinite;
}
.scn-day-dream .willow { 
  position: absolute; bottom: 20%; left: 60%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: ddr-willow 6s ease-in-out infinite alternate;
}
.scn-day-dream .willow::after { 
  content: ''; position: absolute; top: 10%; left: 50%; 
  width: 60px; height: 10px; background: linear-gradient(90deg, #6a8a4a 0%, #4a6a2a 100%);
  border-radius: 50%; transform: translateX(-50%);
  animation: ddr-branches 6s ease-in-out infinite alternate;
}
.scn-day-dream .ruined-hut { 
  position: absolute; bottom: 18%; left: 10%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-day-dream .figure { 
  position: absolute; bottom: 5%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-day-dream .figure-lover { left: 35%; animation: ddr-figure1 4s ease-in-out infinite; }
.scn-day-dream .figure-beloved { left: 50%; animation: ddr-figure2 5s ease-in-out infinite; }
.scn-day-dream .figure-mary { left: 65%; animation: ddr-figure3 4.5s ease-in-out infinite; }
.scn-day-dream .butterfly { 
  position: absolute; top: 35%; left: 45%; width: 8px; height: 6px;
  background: radial-gradient(circle, #e0a040 0%, #d08020 100%);
  border-radius: 50%; 
  animation: ddr-butterfly 8s ease-in-out infinite;
}
@keyframes ddr-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ddr-fountain { 
  0%,100% { transform: translateX(-50%) scaleY(1); opacity: 0.6; }
  50% { transform: translateX(-50%) scaleY(1.3); opacity: 0.9; }
}
@keyframes ddr-willow { 
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes ddr-branches { 
  0% { transform: translateX(-50%) rotate(-5deg); }
  50% { transform: translateX(-50%) rotate(5deg); }
  100% { transform: translateX(-50%) rotate(-5deg); }
}
@keyframes ddr-figure1 { 
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(-1px) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes ddr-figure2 { 
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ddr-figure3 { 
  0% { transform: scale(1) rotate(0); }
  50% { transform: scale(0.95) rotate(2deg); }
  100% { transform: scale(1) rotate(0); }
}
@keyframes ddr-butterfly { 
  0% { transform: translate(0,0) rotate(0deg) scale(1); }
  25% { transform: translate(20px,-30px) rotate(15deg) scale(1.1); }
  50% { transform: translate(40px,-10px) rotate(-10deg) scale(0.9); }
  75% { transform: translate(60px,-40px) rotate(10deg) scale(1); }
  100% { transform: translate(80px,-20px) rotate(0deg) scale(1); }
}

.scn-answer-to-child { 
  background: linear-gradient(180deg, #c0e0ff 0%, #a0c8f0 50%, #80b0e0 100%), 
              radial-gradient(ellipse at 70% 10%, #ffffd0 0%, transparent 60%);
}
.scn-answer-to-child .sky-spring { 
  position: absolute; inset: 0 0 25% 0; 
  background: linear-gradient(180deg, #b0d8ff 0%, transparent 100%);
  animation: atc-sky 10s ease-in-out infinite alternate;
}
.scn-answer-to-child .sun { 
  position: absolute; top: 8%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffffb0 0%, #ffe070 60%, transparent 100%);
  border-radius: 50%; 
  animation: atc-sun 6s ease-in-out infinite alternate;
}
.scn-answer-to-child .ground-spring { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a9a5a 0%, #5a7a3a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
}
.scn-answer-to-child .tree-trunk { 
  position: absolute; bottom: 20%; left: 45%; width: 12px; height: 70px;
  background: linear-gradient(90deg, #5a3a1a 0%, #7a4a2a 50%, #5a3a1a 100%);
  border-radius: 4px;
}
.scn-answer-to-child .branches { 
  position: absolute; bottom: 55%; left: 40%; width: 80px; height: 10px;
  background: linear-gradient(90deg, #5a3a1a 0%, #7a4a2a 100%);
  border-radius: 5px; transform-origin: left center;
  animation: atc-branches 7s ease-in-out infinite alternate;
}
.scn-answer-to-child .blossom-cluster { 
  position: absolute; width: 16px; height: 16px;
  background: radial-gradient(circle at 40% 40%, #f0a0b0 0%, #d08090 60%, transparent 100%);
  border-radius: 50%; 
  animation: atc-blossom 5s ease-in-out infinite alternate;
}
.scn-answer-to-child .blossom-cluster.left { top: 35%; left: 30%; }
.scn-answer-to-child .blossom-cluster.right { top: 30%; left: 55%; animation-delay: 1s; }
.scn-answer-to-child .bird { 
  position: absolute; width: 14px; height: 10px;
  background: linear-gradient(135deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 40% 60% 40%;
  transform-origin: center;
  animation: atc-bird 3s ease-in-out infinite alternate;
}
.scn-answer-to-child .bird.sparrow { 
  top: 20%; left: 25%; 
  animation-duration: 3s; 
}
.scn-answer-to-child .bird.thrush { 
  top: 25%; left: 60%; 
  animation-duration: 3.5s; 
  animation-delay: 0.2s;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
}
@keyframes atc-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes atc-sun { 
  0% { transform: scale(1); box-shadow: 0 0 20px rgba(255,255,0,0.5); }
  50% { transform: scale(1.02); box-shadow: 0 0 30px rgba(255,255,0,0.6); }
  100% { transform: scale(0.98); box-shadow: 0 0 25px rgba(255,255,0,0.4); }
}
@keyframes atc-branches { 
  0% { transform: rotate(-4deg); }
  50% { transform: rotate(4deg); }
  100% { transform: rotate(-4deg); }
}
@keyframes atc-blossom { 
  0% { transform: scale(1) translateY(0); opacity: 0.8; }
  50% { transform: scale(1.1) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.95) translateY(1px); opacity: 0.7; }
}
@keyframes atc-bird { 
  0% { transform: scale(1) rotate(0deg) translateY(0); }
  25% { transform: scale(1.1) rotate(-10deg) translateY(-2px); }
  50% { transform: scale(0.9) rotate(10deg) translateY(1px); }
  75% { transform: scale(1.05) rotate(-5deg) translateY(-1px); }
  100% { transform: scale(1) rotate(0deg) translateY(0); }
}

/* picture-waterfall (tense, overcast) */
.scn-picture-waterfall { background: linear-gradient(180deg, #4a525a 0%, #2c3038 100%), radial-gradient(ellipse at 50% 0%, #6a727a 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-picture-waterfall .waterfall { position: absolute; left: 20%; width: 60%; bottom: 0; top: 10%; background: linear-gradient(180deg, rgba(200,220,230,.6) 0%, rgba(200,220,230,.1) 70%, transparent 100%); background-size: 100% 200%; animation: pw-fall 1.5s linear infinite; }
.scn-picture-waterfall .ivy { position: absolute; top: 15%; left: 70%; width: 20%; height: 40%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 40% 60% 40% 60% / 60% 40% 60% 40%; filter: blur(2px); animation: pw-swing 4s ease-in-out infinite alternate; }
.scn-picture-waterfall .cottage { position: absolute; bottom: 20%; left: 10%; width: 25%; height: 30%; background: #2a2a2a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-picture-waterfall .roof { position: absolute; bottom: 45%; left: 8%; width: 29%; height: 15%; background: linear-gradient(135deg, #3a3030 0%, #1a1515 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); }
.scn-picture-waterfall .window-glow { position: absolute; bottom: 30%; left: 18%; width: 10%; height: 12%; background: radial-gradient(circle, #f0d080 0%, #b08040 100%); border-radius: 10%; box-shadow: 0 0 24px 6px #c09050, 0 0 48px 12px rgba(192,144,80,.4); animation: pw-glow 3s ease-in-out infinite alternate; }
.scn-picture-waterfall .smoke { position: absolute; bottom: 55%; left: 15%; width: 12%; height: 20%; background: linear-gradient(180deg, rgba(200,200,210,.4) 0%, transparent 100%); filter: blur(6px); border-radius: 50%; animation: pw-smoke 6s ease-in-out infinite alternate; }
.scn-picture-waterfall .spray { position: absolute; bottom: 0; left: 15%; width: 70%; height: 30%; background: radial-gradient(ellipse at 50% 0%, rgba(220,230,240,.3) 0%, transparent 70%); filter: blur(8px); animation: pw-spray 3s ease-in-out infinite alternate; }
@keyframes pw-fall { 0% { background-position: 0 0; } 50% { background-position: 0 50%; } 100% { background-position: 0 100%; } }
@keyframes pw-swing { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg) translateX(4px); } 100% { transform: rotate(-3deg); } }
@keyframes pw-glow { 0% { box-shadow: 0 0 18px 4px #c09050, 0 0 36px 8px rgba(192,144,80,.3); opacity: .8; } 50% { box-shadow: 0 0 32px 10px #f0d080, 0 0 64px 18px rgba(240,208,128,.5); opacity: 1; } 100% { box-shadow: 0 0 22px 5px #c09050, 0 0 40px 10px rgba(192,144,80,.35); opacity: .85; } }
@keyframes pw-smoke { 0% { transform: translateX(0) translateY(0) scale(1); opacity: .6; } 50% { transform: translateX(-8px) translateY(-12px) scale(1.1); opacity: .8; } 100% { transform: translateX(4px) translateY(-6px) scale(.95); opacity: .5; } }
@keyframes pw-spray { 0% { transform: translateY(0) scaleY(1); opacity: .4; } 50% { transform: translateY(-10px) scaleY(1.2); opacity: .7; } 100% { transform: translateY(5px) scaleY(.9); opacity: .3; } }

/* picture-sketch (warm, dim-interior) */
.scn-picture-sketch { background: linear-gradient(135deg, #3a2a1a 0%, #1a120a 100%), radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-picture-sketch .frame { position: absolute; bottom: 10%; left: 10%; width: 80%; height: 70%; border: 12px solid #5a3a2a; background: #4a3a2a; border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.6); }
.scn-picture-sketch .desk { position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #2a1a10 0%, #0d0705 100%); }
.scn-picture-sketch .sketch { position: absolute; bottom: 15%; left: 15%; width: 70%; height: 60%; background: linear-gradient(135deg, #d4c8a8 0%, #b8a880 100%); border-radius: 2px; transform: rotate(2deg); box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-picture-sketch .berry-stain { position: absolute; bottom: 40%; left: 40%; width: 30%; height: 30%; background: radial-gradient(circle, #702243 0%, #4a1530 40%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: ps-spread 6s ease-in-out infinite alternate; }
.scn-picture-sketch .heath { position: absolute; bottom: 25%; left: 25%; width: 15%; height: 10%; background: radial-gradient(ellipse, #5a7a5a 0%, #3a5a3a 40%, transparent 70%); border-radius: 50%; filter: blur(3px); animation: ps-float 8s ease-in-out infinite alternate; }
.scn-picture-sketch .candle-glow { position: absolute; bottom: 5%; left: 50%; width: 40%; height: 80%; background: radial-gradient(ellipse at 50% 100%, #f0d080 0%, #c08040 30%, transparent 70%); filter: blur(10px); animation: ps-flicker 2s ease-in-out infinite alternate; }
@keyframes ps-spread { 0% { transform: scale(1); opacity: .7; } 50% { transform: scale(1.1); opacity: .9; } 100% { transform: scale(.95); opacity: .6; } }
@keyframes ps-float { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-8px) rotate(5deg); } 100% { transform: translateY(4px) rotate(-2deg); } }
@keyframes ps-flicker { 0% { opacity: .75; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05) scaleX(1.02); } 100% { opacity: .8; transform: scaleY(.98); } }

/* picture-relique (tense, overcast) */
.scn-picture-relique { background: linear-gradient(180deg, #1a2220 0%, #0d1210 100%), radial-gradient(ellipse at 50% 100%, #2a3a30 0%, transparent 50%); position: relative; overflow: hidden; }
.scn-picture-relique .bg-wood { position: absolute; inset: 0; background: repeating-linear-gradient(90deg, #0a0f0d 0px, #121a16 4px, #0a0f0d 8px); opacity: .3; }
.scn-picture-relique .trunk-1 { position: absolute; left: 10%; top: 0; bottom: 0; width: 8%; background: linear-gradient(180deg, #1a2220 0%, #0a0f0d 100%); border-radius: 10% 20% 20% 10%; }
.scn-picture-relique .trunk-2 { position: absolute; right: 15%; top: 0; bottom: 0; width: 6%; background: linear-gradient(180deg, #1a2220 0%, #0a0f0d 100%); border-radius: 20% 10% 10% 20%; }
.scn-picture-relique .figure { position: absolute; bottom: 15%; left: 20%; width: 12%; height: 25%; background: #050a08; border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; animation: pr-run .8s steps(2) infinite; }
.scn-picture-relique .relique-glow { position: absolute; bottom: 30%; left: 25%; width: 4%; height: 6%; background: radial-gradient(circle, #f0c068 0%, #c08040 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 24px 8px rgba(240,192,104,.6), 0 0 48px 16px rgba(192,128,64,.3); animation: pr-pulse 1.2s ease-in-out infinite alternate; }
.scn-picture-relique .mist { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, transparent 0%, rgba(180,200,190,.15) 50%, rgba(180,200,190,.08) 100%); filter: blur(12px); animation: pr-drift 15s linear infinite; }
@keyframes pr-run { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(10px) translateY(-4px) rotate(2deg); } 100% { transform: translateX(20px) translateY(0) rotate(-1deg); } }
@keyframes pr-pulse { 0% { box-shadow: 0 0 18px 4px rgba(240,192,104,.5), 0 0 36px 8px rgba(192,128,64,.2); opacity: .8; transform: scale(.95); } 50% { box-shadow: 0 0 32px 12px rgba(240,192,104,.8), 0 0 64px 20px rgba(192,128,64,.5); opacity: 1; transform: scale(1.05); } 100% { box-shadow: 0 0 22px 6px rgba(240,192,104,.5), 0 0 40px 12px rgba(192,128,64,.3); opacity: .85; transform: scale(1); } }
@keyframes pr-drift { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-30px) scaleY(1.1); } 100% { transform: translateX(30px) scaleY(.95); } }

/* to-matilda-betham (warm, dim-interior) */
.scn-to-matilda-betham { background: radial-gradient(ellipse at 50% 0%, #4a3a2a 0%, #1a120a 100%), linear-gradient(180deg, #2a1a10 0%, #0d0705 100%); position: relative; overflow: hidden; }
.scn-to-matilda-betham .desk { position: absolute; bottom: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, #2a1a10 0%, #0d0705 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-to-matilda-betham .letter { position: absolute; bottom: 30%; left: 50%; width: 40%; height: 30%; transform: translateX(-50%); background: linear-gradient(135deg, #f0e6d0 0%, #d4c8a8 100%); border-radius: 2px; box-shadow: 0 4px 12px rgba(0,0,0,.4); }
.scn-to-matilda-betham .rosebud-1 { position: absolute; bottom: 25%; left: 30%; width: 6%; height: 10%; background: radial-gradient(ellipse at 50% 30%, #c8553d 0%, #702243 100%); border-radius: 50%; transform-origin: bottom center; animation: tb-sway 4s ease-in-out infinite alternate; }
.scn-to-matilda-betham .rosebud-2 { position: absolute; bottom: 28%; left: 38%; width: 5%; height: 8%; background: radial-gradient(ellipse at 50% 30%, #c8553d 0%, #5e1a1d 100%); border-radius: 50%; transform-origin: bottom center; animation: tb-sway 4s ease-in-out infinite alternate-reverse; animation-delay: -1s; }
.scn-to-matilda-betham .blossom { position: absolute; bottom: 35%; left: 45%; width: 8%; height: 8%; background: radial-gradient(circle, #f0e6d0 0%, #d4c8a8 50%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: tb-drift 8s ease-in-out infinite alternate; }
.scn-to-matilda-betham .inkwell { position: absolute; bottom: 22%; left: 58%; width: 8%; height: 8%; background: radial-gradient(ellipse, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50%; box-shadow: inset 0 -4px 6px rgba(0,0,0,.8); }
.scn-to-matilda-betham .lamp-glow { position: absolute; top: 0; left: 50%; width: 60%; height: 60%; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #f0d080 0%, #c08040 30%, transparent 70%); filter: blur(20px); animation: tb-glow 3s ease-in-out infinite alternate; }
@keyframes tb-sway { 0% { transform: rotate(-8deg) scaleY(1); } 50% { transform: rotate(8deg) scaleY(1.05) translateY(-2px); } 100% { transform: rotate(-4deg) scaleY(.98); } }
@keyframes tb-drift { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(-6px) translateY(-8px) rotate(15deg); } 100% { transform: translateX(8px) translateY(4px) rotate(-5deg); } }
@keyframes tb-glow { 0% { opacity: .8; transform: translateX(-50%) scaleY(1); } 50% { opacity: 1; transform: translateX(-50%) scaleY(1.05) scaleX(1.02); } 100% { opacity: .85; transform: translateX(-50%) scaleY(.97); } }

.scn-talleyrand-printing { background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 80%); }
.scn-talleyrand-printing .press-frame { position:absolute; bottom:30%; left:30%; width:40%; height:40%; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: inset 0 -4px 8px rgba(0,0,0,.6); animation: tp-frame 4s ease-in-out infinite; }
.scn-talleyrand-printing .press-screw { position:absolute; bottom:55%; left:48%; width:4%; height:20%; background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:2px; transform-origin: top center; animation: tp-screw 6s ease-in-out infinite; }
.scn-talleyrand-printing .paper-stack { position:absolute; bottom:28%; left:35%; width:20%; height:6%; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: tp-paper 3s ease-in-out infinite alternate; }
.scn-talleyrand-printing .ink-bottle { position:absolute; bottom:32%; left:60%; width:6%; height:8%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.7); animation: tp-ink 8s ease-in-out infinite; }
.scn-talleyrand-printing .figure-printer { position:absolute; bottom:25%; left:40%; width:12%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tp-figure 5s ease-in-out infinite; }
.scn-talleyrand-printing .lantern { position:absolute; bottom:50%; right:20%; width:5%; height:7%; background: radial-gradient(circle, #ffd080 0%, #c08040 70%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.4); animation: tp-lantern 3s ease-in-out infinite alternate; }
@keyframes tp-frame { 0% { transform: translateY(0); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0); } }
@keyframes tp-screw { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes tp-paper { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes tp-ink { 0% { transform: translateX(0); opacity:0.8; } 50% { transform: translateX(2px); opacity:1; } 100% { transform: translateX(0); opacity:0.8; } }
@keyframes tp-figure { 0% { transform: translateX(0) rotate(-1deg); } 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 tp-lantern { 0% { box-shadow: 0 0 15px 4px #c08040, 0 0 30px 8px rgba(192,128,64,.3); opacity:0.9; } 100% { box-shadow: 0 0 30px 10px #ffd080, 0 0 50px 16px rgba(255,208,128,.5); opacity:1; } }

.scn-talleyrand-journalists { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 30%, #3a3a5a 0%, transparent 70%); }
.scn-talleyrand-journalists .broken-press { position:absolute; bottom:20%; left:20%; width:50%; height:40%; background: linear-gradient(135deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:4px; box-shadow: inset 0 -4px 8px rgba(0,0,0,.7); clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); animation: tj-press 0.3s ease-in-out infinite alternate; }
.scn-talleyrand-journalists .scattered-papers { position:absolute; bottom:10%; left:30%; width:15%; height:5%; background: linear-gradient(180deg, #b0a090 0%, #908070 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: tj-papers 2s ease-in-out infinite; }
.scn-talleyrand-journalists .figure-rage { position:absolute; bottom:25%; left:50%; width:14%; height:35%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tj-rage 0.8s ease-in-out infinite; }
.scn-talleyrand-journalists .shadow-bars { position:absolute; top:0; left:0; width:100%; height:100%; background: repeating-linear-gradient(90deg, rgba(0,0,0,.3) 0px, rgba(0,0,0,.3) 4px, transparent 4px, transparent 12px); animation: tj-shadows 2s ease-in-out infinite alternate; }
.scn-talleyrand-journalists .flying-type { position:absolute; bottom:40%; left:10%; width:3%; height:2%; background: #4a4a5a; border-radius:2px; animation: tj-type 1.5s linear infinite; }
.scn-talleyrand-journalists .flying-type:nth-child(5) { left:70%; bottom:60%; width:2%; height:1%; background: #5a5a6a; animation-delay: 0.5s; }
.scn-talleyrand-journalists .candle-flame { position:absolute; bottom:50%; left:15%; width:4%; height:6%; background: radial-gradient(circle, #ff8060 0%, #ff6040 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 8px #ff6040; animation: tj-flame 0.5s ease-in-out infinite alternate; }
@keyframes tj-press { 0% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(1px) rotate(1deg); } }
@keyframes tj-papers { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(5px, -2px) rotate(3deg); } 50% { transform: translate(10px, 1px) rotate(-2deg); } 75% { transform: translate(15px, -1px) rotate(1deg); } 100% { transform: translate(20px, 0) rotate(0deg); } }
@keyframes tj-rage { 0% { transform: translateX(0) rotate(-3deg) scaleY(1); } 25% { transform: translateX(-2px) rotate(3deg) scaleY(1.05); } 50% { transform: translateX(0) rotate(-3deg) scaleY(1); } 75% { transform: translateX(2px) rotate(3deg) scaleY(1.05); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes tj-shadows { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes tj-type { 0% { transform: translateY(0) rotate(0deg); opacity:1; } 50% { transform: translateY(-20px) rotate(180deg); opacity:0.6; } 100% { transform: translateY(-40px) rotate(360deg); opacity:0; } }
@keyframes tj-flame { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.3) scaleX(0.8); } 100% { transform: scaleY(1) scaleX(1); } }

.scn-talleyrand-conclusion { background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 80%, #5a4a3a 0%, transparent 80%); }
.scn-talleyrand-conclusion .chair { position:absolute; bottom:25%; left:40%; width:30%; height:30%; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 30% 30% / 20% 20% 10% 10%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); animation: tc-chair 6s ease-in-out infinite; }
.scn-talleyrand-conclusion .hourglass { position:absolute; bottom:45%; right:25%; width:8%; height:20%; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 50%, #806050 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: tc-hourglass 10s ease-in-out infinite; }
.scn-talleyrand-conclusion .figure-bowing { position:absolute; bottom:20%; left:35%; width:16%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tc-bow 12s ease-in-out infinite; }
.scn-talleyrand-conclusion .quill-ink { position:absolute; bottom:30%; left:55%; width:3%; height:10%; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); transform: rotate(20deg); animation: tc-quill 8s ease-in-out infinite alternate; }
.scn-talleyrand-conclusion .curtain { position:absolute; top:0; left:0; width:100%; height:30%; background: linear-gradient(180deg, rgba(74,58,42,0.8) 0%, transparent 100%); animation: tc-curtain 15s ease-in-out infinite; }
.scn-talleyrand-conclusion .candle { position:absolute; bottom:30%; left:20%; width:3%; height:12%; background: linear-gradient(180deg, #d0b080 0%, #a08060 100%); border-radius:2px 2px 0 0; box-shadow: 0 -4px 10px rgba(255,200,100,0.5); animation: tc-candle 4s ease-in-out infinite; }
@keyframes tc-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tc-hourglass { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.9); } 100% { transform: scaleY(1); } }
@keyframes tc-bow { 0% { transform: translateX(0) rotate(-5deg) scaleY(1); } 25% { transform: translateX(10px) rotate(-15deg) scaleY(0.9); } 50% { transform: translateX(20px) rotate(-25deg) scaleY(0.8); } 75% { transform: translateX(10px) rotate(-15deg) scaleY(0.9); } 100% { transform: translateX(0) rotate(-5deg) scaleY(1); } }
@keyframes tc-quill { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes tc-curtain { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes tc-candle { 0% { opacity:0.9; } 50% { opacity:1; box-shadow: 0 -4px 15px rgba(255,200,100,0.7); } 100% { opacity:0.9; } }

.scn-saddleback-reflection { background: linear-gradient(180deg, #7a8a7a 0%, #5a6a5a 50%, #3a4a3a 100%), radial-gradient(ellipse at 50% 0%, #8a9a8a 0%, transparent 70%); }
.scn-saddleback-reflection .mountain { position:absolute; bottom:40%; left:20%; width:60%; height:50%; background: linear-gradient(135deg, #5a6a5a 0%, #3a4a3a 100%); clip-path: polygon(0 100%, 30% 20%, 50% 40%, 70% 10%, 100% 100%); animation: sr-mtn 20s ease-in-out infinite; }
.scn-saddleback-reflection .lake { position:absolute; bottom:0; left:10%; width:80%; height:35%; background: linear-gradient(180deg, #5a7a6a 0%, #3a5a4a 100%); border-radius:0 0 20% 20%; animation: sr-lake 15s ease-in-out infinite alternate; }
.scn-saddleback-reflection .reflection { position:absolute; bottom:5%; left:25%; width:50%; height:20%; background: linear-gradient(180deg, rgba(90,106,90,0.4) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: sr-reflect 25s ease-in-out infinite alternate; }
.scn-saddleback-reflection .tree-silhouette { position:absolute; bottom:35%; left:10%; width:8%; height:30%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:40% 40% 0 0; transform-origin: bottom center; animation: sr-tree 18s ease-in-out infinite; }
.scn-saddleback-reflection .cloud-slow { position:absolute; top:10%; left:5%; width:30%; height:8%; background: linear-gradient(180deg, rgba(200,210,200,0.5) 0%, rgba(180,190,180,0.2) 100%); border-radius:50%; filter: blur(6px); animation: sr-cloud 40s linear infinite; }
.scn-saddleback-reflection .mist { position:absolute; bottom:30%; left:0; width:100%; height:20%; background: linear-gradient(180deg, rgba(180,200,180,0.2) 0%, transparent 100%); animation: sr-mist 30s ease-in-out infinite alternate; }
@keyframes sr-mtn { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); } }
@keyframes sr-lake { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes sr-reflect { 0% { transform: translateY(0) scaleY(1); opacity:0.5; } 50% { transform: translateY(2px) scaleY(1.02); opacity:0.7; } 100% { transform: translateY(0) scaleY(1); opacity:0.5; } }
@keyframes sr-tree { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes sr-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(100vw); } }
@keyframes sr-mist { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

/* night-scene-arbour — tense starlit arbour with reflected star */
.scn-night-scene-arbour {
  background: linear-gradient(180deg, #0a0a22 0%, #15153a 40%, #1f1f4a 100%),
              radial-gradient(ellipse at 50% 0%, rgba(100,140,200,0.15) 0%, transparent 60%);
}
.scn-night-scene-arbour .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #0f0f30 0%, transparent 100%);
  animation: ar-sky 8s ease-in-out infinite alternate;
}
.scn-night-scene-arbour .trees-back {
  position: absolute; bottom: 35%; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  filter: blur(4px);
  animation: ar-trees-b 20s ease-in-out infinite alternate;
}
.scn-night-scene-arbour .trees-fore {
  position: absolute; bottom: 25%; left: 2%; right: 2%; height: 30%;
  background: linear-gradient(180deg, #0d1f0d 0%, #051105 100%);
  border-radius: 20% 80% 10% 90% / 60% 40% 20% 80%;
  clip-path: polygon(0% 100%, 15% 30%, 30% 70%, 50% 20%, 70% 60%, 85% 35%, 100% 100%);
  animation: ar-trees-f 1.5s ease-in-out infinite alternate;
}
.scn-night-scene-arbour .stream {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0e1a2a 100%);
  border-radius: 20% 60% 40% 60%;
  filter: blur(2px);
  animation: ar-stream 6s ease-in-out infinite alternate;
}
.scn-night-scene-arbour .star-reflection {
  position: absolute; bottom: 28%; left: 45%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c0d8ff 0%, rgba(192,216,255,0) 100%);
  box-shadow: 0 0 20px 4px rgba(180,200,255,0.6);
  border-radius: 50%;
  animation: ar-star-refl 3s ease-in-out infinite alternate;
}
.scn-night-scene-arbour .arbour {
  position: absolute; bottom: 30%; left: 38%; width: 100px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 6px 20px rgba(0,0,0,0.6);
  animation: ar-arbour 12s ease-in-out infinite alternate;
}
.scn-night-scene-arbour .vines {
  position: absolute; bottom: 35%; left: 40%; width: 4px; height: 30px;
  background: #2a3a1a;
  border-radius: 50%;
  box-shadow: 12px 8px 0 #2a3a1a, 24px -4px 0 #1a2a0e, 36px 12px 0 #2a3a1a;
  animation: ar-vines 4s ease-in-out infinite;
}
@keyframes ar-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ar-trees-b { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes ar-trees-f { 0% { transform: rotate(-1deg) translateX(0); } 50% { transform: rotate(1.5deg) translateX(4px); } 100% { transform: rotate(-0.5deg) translateX(0); } }
@keyframes ar-stream { 0% { opacity: 0.6; transform: translateY(0); } 50% { opacity: 1; transform: translateY(2px); } 100% { opacity: 0.7; transform: translateY(0); } }
@keyframes ar-star-refl { 0% { opacity: 0.4; transform: scale(0.8) translateX(0); } 50% { opacity: 1; transform: scale(1.2) translateX(2px); } 100% { opacity: 0.5; transform: scale(0.9) translateX(-1px); } }
@keyframes ar-arbour { 0% { transform: matrix(1,0,0,1,0,0); } 50% { transform: matrix(1.02,0.01,0,1.01,-2,0); } 100% { transform: matrix(1,0,0,1,0,0); } }
@keyframes ar-vines { 0% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(4deg) translateY(-6px); } 50% { transform: rotate(-3deg) translateY(0); } 75% { transform: rotate(6deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }

/* night-scene-passion — warm starlit lovers' silhouette */
.scn-night-scene-passion {
  background: linear-gradient(180deg, #0c0c30 0%, #1a1a4a 40%, #2a2a5e 100%),
              radial-gradient(ellipse at 50% 80%, #3a3a7e 0%, transparent 70%);
}
.scn-night-scene-passion .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #0f0f38 0%, transparent 100%);
  animation: pa-sky 10s ease-in-out infinite alternate;
}
.scn-night-scene-passion .stars {
  position: absolute; top: 5%; left: 0; width: 100%; height: 40%;
  background: transparent;
  box-shadow: 20px 15px 0 2px #ffe080, 60px 30px 0 1px #ffcc60, 110px 10px 0 3px #ffd070, 170px 25px 0 1px #ffb040, 240px 18px 0 2px #ffe090;
  border-radius: 0;
  filter: blur(1px);
  animation: pa-stars 4s ease-in-out infinite alternate;
}
.scn-night-scene-passion .ground-back {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0e1a1a 100%);
  border-radius: 40% 60% 0 0;
  animation: pa-ground-b 18s ease-in-out infinite alternate;
}
.scn-night-scene-passion .ground-fore {
  position: absolute; bottom: 10%; left: -5%; right: -5%; height: 20%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0a0a 100%);
  border-radius: 30% 70% 0 0;
  transform: scale(0.95);
  animation: pa-ground-f 9s ease-in-out infinite alternate;
}
.scn-night-scene-passion .figure-left {
  position: absolute; bottom: 15%; left: 40%; width: 28px; 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: pa-fig-l 4s ease-in-out infinite;
}
.scn-night-scene-passion .figure-right {
  position: absolute; bottom: 15%; left: 50%; width: 28px; 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: pa-fig-r 4s ease-in-out infinite reverse;
}
.scn-night-scene-passion .glow {
  position: absolute; bottom: 20%; left: 43%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, rgba(255,150,50,0.1) 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: pa-glow 5s ease-in-out infinite alternate;
}
@keyframes pa-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pa-stars { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(0.95); } }
@keyframes pa-ground-b { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(0.99); } 100% { transform: translateY(0) scale(1); } }
@keyframes pa-ground-f { 0% { transform: translateY(0) scale(0.95); } 50% { transform: translateY(-1px) scale(0.96); } 100% { transform: translateY(0) scale(0.95); } }
@keyframes pa-fig-l { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-1px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes pa-fig-r { 0% { transform: rotate(2deg) translateY(0); } 25% { transform: rotate(-1deg) translateY(-1px); } 50% { transform: rotate(1deg) translateY(0); } 75% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes pa-glow { 0% { opacity: 0.3; transform: scale(0.9) rotate(0deg); } 50% { opacity: 0.6; transform: scale(1.2) rotate(10deg); } 100% { opacity: 0.4; transform: scale(1) rotate(0deg); } }

/* night-scene-eastern-sage — calm dim interior with sage on lotus */
.scn-night-scene-eastern-sage {
  background: linear-gradient(180deg, #1c1410 0%, #2a1e14 40%, #3a2a20 100%),
              radial-gradient(ellipse at 50% 70%, #4a3a2e 0%, transparent 70%);
}
.scn-night-scene-eastern-sage .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1006 100%);
  filter: blur(8px);
  animation: ea-wall 25s ease-in-out infinite alternate;
}
.scn-night-scene-eastern-sage .altar {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 12%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: ea-altar 15s ease-in-out infinite alternate;
}
.scn-night-scene-eastern-sage .lotus-leaf {
  position: absolute; bottom: 20%; left: 40%; width: 80px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #3a5a2a 0%, #1a3a0e 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 6px 16px rgba(0,0,0,0.5);
  animation: ea-lotus 8s ease-in-out infinite alternate;
}
.scn-night-scene-eastern-sage .sage-body {
  position: absolute; bottom: 24%; left: 46%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ea-body 6s ease-in-out infinite;
}
.scn-night-scene-eastern-sage .sage-head {
  position: absolute; bottom: 36%; left: 47.5%; width: 16px; height: 16px;
  background: radial-gradient(circle, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50%;
  animation: ea-head 6s ease-in-out infinite;
}
.scn-night-scene-eastern-sage .lamp {
  position: absolute; bottom: 30%; left: 55%; width: 12px; height: 18px;
  background: radial-gradient(circle, #d0a050 0%, #a07030 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 24px 6px rgba(200,150,50,0.5), 0 0 48px 12px rgba(200,150,50,0.2);
  animation: ea-lamp 3s ease-in-out infinite alternate;
}
.scn-night-scene-eastern-sage .smoke {
  position: absolute; bottom: 32%; left: 56%; width: 8px; height: 20px;
  background: rgba(180,160,130,0.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: ea-smoke 7s ease-in-out infinite;
}
@keyframes ea-wall { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes ea-altar { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes ea-lotus { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes ea-body { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes ea-head { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes ea-lamp { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.98); } }
@keyframes ea-smoke { 0% { opacity: 0; transform: translateY(0) scale(1); } 50% { opacity: 0.4; transform: translateY(-10px) scale(1.5); } 100% { opacity: 0; transform: translateY(-20px) scale(2); } }

/* night-scene-resolve — tense dark bower path with resolute figure */
.scn-night-scene-resolve {
  background: linear-gradient(180deg, #050510 0%, #0e0e1e 40%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 20%, #1a1a3a 0%, transparent 70%);
}
.scn-night-scene-resolve .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, transparent 100%);
  animation: re-sky 10s ease-in-out infinite alternate;
}
.scn-night-scene-resolve .trees-side {
  position: absolute; bottom: 25%; left: 0; width: 30%; height: 50%;
  background: linear-gradient(180deg, #0d0d0d 0%, #050505 100%);
  border-radius: 0 40% 40% 0;
  clip-path: polygon(0% 0%, 100% 0%, 80% 30%, 95% 60%, 70% 100%, 0% 100%);
  animation: re-trees-l 2s ease-in-out infinite alternate;
}
.scn-night-scene-resolve .trees-side:last-child {
  left: auto; right: 0;
  border-radius: 40% 0 0 40%;
  clip-path: polygon(100% 0%, 0% 0%, 20% 30%, 5% 60%, 30% 100%, 100% 100%);
  animation: re-trees-r 2.2s ease-in-out infinite alternate;
}
.scn-night-scene-resolve .path {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20%;
  filter: blur(2px);
  animation: re-path 4s ease-in-out infinite alternate;
}
.scn-night-scene-resolve .bower {
  position: absolute; bottom: 18%; left: 44%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 2px rgba(0,0,0,0.8);
  animation: re-bower 7s ease-in-out infinite alternate;
}
.scn-night-scene-resolve .figure {
  position: absolute; bottom: 10%; left: 30%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: re-figure 3s ease-in-out infinite;
}
.scn-night-scene-resolve .shadow {
  position: absolute; bottom: 8%; left: 28%; width: 30px; height: 8px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(3px);
  animation: re-shadow 3s ease-in-out infinite;
}
.scn-night-scene-resolve .lantern {
  position: absolute; bottom: 12%; left: 28%; width: 6px; height: 10px;
  background: radial-gradient(circle, #b08030 0%, #8a6020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 16px 4px rgba(180,120,40,0.3);
  animation: re-lantern 4s ease-in-out infinite alternate;
}
@keyframes re-sky { 0% { opacity: 0.5; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes re-trees-l { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(2deg) translateX(-3px); } 100% { transform: rotate(-1deg) translateX(0); } }
@keyframes re-trees-r { 0% { transform: rotate(2deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(3px); } 100% { transform: rotate(1deg) translateX(0); } }
@keyframes re-path { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.6; transform: scaleY(1.05); } 100% { opacity: 0.4; transform: scaleY(0.95); } }
@keyframes re-bower { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes re-figure { 0% { transform: rotate(-2deg) translateX(0); } 25% { transform: rotate(1deg) translateX(5px); } 50% { transform: rotate(-1deg) translateX(10px); } 75% { transform: rotate(2deg) translateX(5px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes re-shadow { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.2); } 100% { transform: translateX(0) scale(1); } }
@keyframes re-lantern { 0% { opacity: 0.4; transform: rotate(-5deg); } 50% { opacity: 0.8; transform: rotate(5deg); } 100% { opacity: 0.5; transform: rotate(-3deg); } }

/* coleridge-illness: dim-interior, dark mood */
.scn-coleridge-illness {
  background: linear-gradient(180deg, #0a0612 0%, #18132a 40%, #2a1e3c 70%, #140e22 100%), radial-gradient(ellipse at 50% 100%, #2a1e3c 0%, transparent 70%);
}
.scn-coleridge-illness .wall { position: absolute; inset: 0; background: linear-gradient(90deg, #0a0612 0%, transparent 30%, transparent 70%, #0a0612 100%), radial-gradient(circle at 50% 100%, #3a2a4a 0%, transparent 60%); }
.scn-coleridge-illness .bed { position: absolute; bottom: 10%; left: 25%; right: 25%; height: 20%; background: linear-gradient(180deg, #2a1a2a 0%, #140a14 100%); border-radius: 0 0 30% 30% / 0 0 60% 60%; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-coleridge-illness .figure-silhouette { position: absolute; bottom: 15%; left: 38%; width: 24%; height: 18%; background: radial-gradient(ellipse at 50% 100%, #0a0612 0%, #1a1224 100%); border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%; transform: rotate(-5deg); animation: ci-rest 8s ease-in-out infinite alternate; }
.scn-coleridge-illness .fever-glow { position: absolute; bottom: 25%; left: 45%; width: 10%; height: 10%; background: radial-gradient(circle, #c8a040 0%, #8a6a20 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(200,160,64,.3), 0 0 80px 40px rgba(200,160,64,.1); animation: ci-fever 4s ease-in-out infinite alternate; }
.scn-coleridge-illness .spider { position: absolute; top: 18%; right: 22%; width: 4%; height: 4%; background: radial-gradient(circle, #3a2a2a 0%, #0a0612 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(80,60,60,.5); animation: ci-dangle 12s ease-in-out infinite; }
.scn-coleridge-illness .spider-thread { position: absolute; top: 5%; right: 24%; width: 0.3%; height: 25%; background: linear-gradient(180deg, transparent 0%, rgba(80,70,90,.4) 100%); transform-origin: top center; animation: ci-sway 12s ease-in-out infinite; }
.scn-coleridge-illness .shadow-veil { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 30%, transparent 0%, #0a0612 90%); animation: ci-veil 8s ease-in-out infinite alternate; pointer-events: none; }
@keyframes ci-rest { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2px); } 100% { transform: rotate(-6deg) translateY(1px); } }
@keyframes ci-fever { 0% { opacity: .6; transform: scale(.95); } 50% { opacity: 1; transform: scale(1.05); box-shadow: 0 0 60px 30px rgba(200,160,64,.4); } 100% { opacity: .7; transform: scale(.98); } }
@keyframes ci-dangle { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(8px) rotate(10deg); } 50% { transform: translateY(15px) rotate(-5deg); } 75% { transform: translateY(5px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ci-sway { 0% { transform: rotate(-3deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-3deg); } }
@keyframes ci-veil { 0% { opacity: .8; } 50% { opacity: .5; } 100% { opacity: .9; } }

/* hexameters-variants: dim-interior, calm mood */
.scn-hexameters-variants {
  background: linear-gradient(180deg, #1a1612 0%, #2a2420 40%, #3a3228 70%, #1a1612 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 60%);
}
.scn-hexameters-variants .desk { position: absolute; bottom: 0; left: 5%; right: 5%; height: 45%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-hexameters-variants .manuscript { position: absolute; bottom: 20%; left: 20%; right: 20%; height: 25%; background: linear-gradient(135deg, #c8b89a 0%, #a8987a 50%, #c8b89a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.5); transform: rotate(-1deg); }
.scn-hexameters-variants .writing-hand { position: absolute; bottom: 30%; right: 25%; width: 18%; height: 20%; background: radial-gradient(ellipse at 50% 20%, #c8b89a 0%, #8a7a5a 60%, #1a120a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: 80% 80%; animation: hv-write 3s ease-in-out infinite alternate; }
.scn-hexameters-variants .inkwell { position: absolute; bottom: 20%; left: 25%; width: 8%; height: 12%; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 2px 8px rgba(0,0,0,.8); }
.scn-hexameters-variants .nimbus-glow { position: absolute; top: 15%; left: 60%; width: 20%; height: 20%; background: radial-gradient(circle, rgba(200,180,140,.4) 0%, rgba(200,180,140,.1) 40%, transparent 70%); border-radius: 50%; animation: hv-nimbus 6s ease-in-out infinite alternate; }
.scn-hexameters-variants .variant-char { position: absolute; width: 3%; height: 4%; background: radial-gradient(ellipse, #8a7a5a 0%, transparent 80%); border-radius: 50%; opacity: .6; }
.scn-hexameters-variants .var-a { bottom: 50%; left: 15%; animation: hv-float-a 8s linear infinite; }
.scn-hexameters-variants .var-b { bottom: 45%; left: 25%; animation: hv-float-b 10s linear infinite; animation-delay: -4s; }
@keyframes hv-write { 0% { transform: translateX(0) translateY(0) rotate(-5deg); } 50% { transform: translateX(-5px) translateY(-3px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(5deg); } }
@keyframes hv-nimbus { 0% { opacity: .3; transform: scale(.95); } 50% { opacity: .7; transform: scale(1.05); } 100% { opacity: .4; transform: scale(.98); } }
@keyframes hv-float-a { 0% { transform: translateY(0) translateX(0) rotate(0deg); opacity: .6; } 25% { transform: translateY(-10px) translateX(5px) rotate(90deg); opacity: .8; } 50% { transform: translateY(-20px) translateX(-5px) rotate(180deg); opacity: .4; } 75% { transform: translateY(-30px) translateX(10px) rotate(270deg); opacity: .7; } 100% { transform: translateY(-40px) translateX(0) rotate(360deg); opacity: .6; } }
@keyframes hv-float-b { 0% { transform: translateY(0) translateX(0) scale(1); opacity: .5; } 33% { transform: translateY(-15px) translateX(-8px) scale(1.2); opacity: .8; } 66% { transform: translateY(-25px) translateX(8px) scale(.8); opacity: .3; } 100% { transform: translateY(-45px) translateX(0) scale(1); opacity: .5; } }

/* milesian-tale: moonlit, calm mood */
.scn-milesian-tale {
  background: linear-gradient(180deg, #0a0a18 0%, #141a3a 40%, #1a2248 70%, #0e1224 100%), radial-gradient(ellipse at 50% 0%, #4a5a8a 0%, transparent 60%);
}
.scn-milesian-tale .moon { position: absolute; top: 8%; right: 20%; width: 16%; height: 16%; background: radial-gradient(circle, #e8e8f0 0%, #c8c8d8 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(200,200,230,.3), 0 0 80px 40px rgba(200,200,230,.1); animation: mt-moon-glow 8s ease-in-out infinite alternate; }
.scn-milesian-tale .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #1a2a4a 0%, #0a1224 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-milesian-tale .cliff { position: absolute; bottom: 30%; left: 5%; right: 55%; height: 35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 20% 40% 0 0 / 40% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.8); }
.scn-milesian-tale .temple { position: absolute; bottom: 38%; left: 12%; width: 18%; height: 20%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); clip-path: polygon(20% 100%, 80% 100%, 100% 30%, 70% 0%, 30% 0%, 0% 30%); box-shadow: 0 0 20px 4px rgba(200,200,230,.2); }
.scn-milesian-tale .little-boat { position: absolute; bottom: 20%; left: 45%; width: 12%; height: 6%; background: linear-gradient(90deg, #3a2a1a 0%, #1a120a 100%); border-radius: 0 0 50% 50% / 0 0 100% 100%; transform-origin: center bottom; animation: mt-boat 5s ease-in-out infinite; }
.scn-milesian-tale .priestess { position: absolute; bottom: 22%; left: 48%; width: 4%; height: 10%; background: radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, #0a0a14 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mt-priestess 5s ease-in-out infinite; }
.scn-milesian-tale .sea-foam { position: absolute; bottom: 40%; left: 30%; right: 30%; height: 5%; background: linear-gradient(90deg, transparent 0%, rgba(200,200,230,.2) 20%, transparent 40%, rgba(200,200,230,.1) 60%, transparent 80%); filter: blur(4px); animation: mt-foam 10s linear infinite; }
@keyframes mt-moon-glow { 0% { opacity: .8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); box-shadow: 0 0 60px 30px rgba(200,200,230,.4); } 100% { opacity: .85; transform: scale(.98); } }
@keyframes mt-boat { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-3px) rotate(0deg); } 50% { transform: translateX(-2px) translateY(2px) rotate(3deg); } 75% { transform: translateX(6px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes mt-priestess { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes mt-foam { 0% { transform: translateX(-30%); } 50% { transform: translateX(30%); } 100% { transform: translateX(-30%); } }

/* matthisson-emendations: dim-interior, calm mood */
.scn-matthisson-emendations {
  background: linear-gradient(180deg, #141a20 0%, #1a2430 40%, #242e3a 70%, #141a20 100%), radial-gradient(ellipse at 50% 100%, #2a3440 0%, transparent 60%);
}
.scn-matthisson-emendations .window-frame { position: absolute; inset: 5%; background: transparent; border: 8px solid #1a1a24; box-shadow: inset 0 0 20px rgba(0,0,0,.6), 0 0 20px rgba(0,0,0,.4); border-radius: 4px; }
.scn-matthisson-emendations .sky-out { position: absolute; top: 5%; left: 5%; right: 5%; height: 45%; background: linear-gradient(180deg, #2a3a4a 0%, #3a4a5a 100%); }
.scn-matthisson-emendations .sea-out { position: absolute; bottom: 10%; left: 5%; right: 5%; height: 40%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); }
.scn-matthisson-emendations .desk-inner { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #2a221a 0%, #1a120a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-matthisson-emendations .ink-line { position: absolute; bottom: 22%; left: 15%; right: 15%; height: 2%; background: linear-gradient(90deg, transparent 0%, #4a5a6a 20%, #6a7a8a 50%, #4a5a6a 80%, transparent 100%); animation: me-line 4s ease-in-out infinite alternate; }
.scn-matthisson-emendations .emendation { position: absolute; width: 3%; height: 4%; background: radial-gradient(ellipse, #6a7a8a 0%, transparent 80%); border-radius: 50%; opacity: .5; }
.scn-matthisson-emendations .em-a { bottom: 30%; left: 20%; animation: me-drift-a 9s linear infinite; }
.scn-matthisson-emendations .em-b { bottom: 35%; right: 25%; animation: me-drift-b 11s linear infinite; animation-delay: -5s; }
@keyframes me-line { 0% { transform: scaleX(.8) translateX(-5%); opacity: .6; } 50% { transform: scaleX(1.1) translateX(2%); opacity: 1; } 100% { transform: scaleX(.85) translateX(5%); opacity: .7; } }
@keyframes me-drift-a { 0% { transform: translateY(0) translateX(0) scale(1); opacity: .4; } 25% { transform: translateY(-15px) translateX(10px) scale(1.2); opacity: .7; } 50% { transform: translateY(-30px) translateX(-5px) scale(.9); opacity: .3; } 75% { transform: translateY(-45px) translateX(15px) scale(1.1); opacity: .6; } 100% { transform: translateY(-60px) translateX(0) scale(1); opacity: .4; } }
@keyframes me-drift-b { 0% { transform: translateY(0) translateX(0) rotate(0deg); opacity: .5; } 33% { transform: translateY(-20px) translateX(-10px) rotate(120deg); opacity: .8; } 66% { transform: translateY(-40px) translateX(5px) rotate(240deg); opacity: .2; } 100% { transform: translateY(-60px) translateX(0) rotate(360deg); opacity: .5; } }

.scn-mad-ox-devil { background: linear-gradient(180deg, #0a0a20 0%, #1a1a3e 50%, #2a2a4e 100%), radial-gradient(ellipse at 50% 0%, #3a3a6e 0%, transparent 70%); }
.scn-mad-ox-devil .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #1a1a3e 0%, transparent 80%); animation: mod-sky 12s ease-in-out infinite alternate; }
.scn-mad-ox-devil .moon { position: absolute; top: 8%; right: 18%; width: 40px; height: 40px; background: radial-gradient(circle, #e0d8c8 0%, #b0a898 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(224, 216, 200, 0.3); animation: mod-moon 15s ease-in-out infinite; }
.scn-mad-ox-devil .hill-back { position: absolute; bottom: 25%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 60% 40% 0 0 / 100% 80% 0 0; }
.scn-mad-ox-devil .hill-front { position: absolute; bottom: 20%; left: -10%; right: -10%; height: 35%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 0 0 / 70% 80% 0 0; animation: mod-hill 20s ease-in-out infinite alternate; }
.scn-mad-ox-devil .devil-ox { position: absolute; bottom: 32%; left: 50%; width: 100px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 20% 50% 50% / 60% 30% 60% 60%; box-shadow: 0 10px 20px rgba(0,0,0,0.6); animation: mod-buck 0.8s ease-in-out infinite; }
.scn-mad-ox-devil .devil-ox::before { content: ''; position: absolute; top: -30px; left: 20px; width: 30px; height: 40px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 80%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-10deg); box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-mad-ox-devil .bush { position: absolute; bottom: 27%; left: 22%; width: 60px; height: 40px; background: radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mod-bush 5s ease-in-out infinite; }
.scn-mad-ox-devil .hat { position: absolute; bottom: 46%; left: 24%; width: 24px; height: 12px; background: #2a2a2a; border-radius: 50% 50% 0 0; animation: mod-hat 0.3s ease-in-out infinite alternate; }
.scn-mad-ox-devil .hat::after { content: ''; position: absolute; top: -8px; left: -6px; width: 36px; height: 6px; background: #1a1a1a; border-radius: 2px; }
@keyframes mod-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mod-moon { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 30px 10px rgba(224, 216, 200, 0.3); } 50% { transform: translateY(-4px) scale(1.05); box-shadow: 0 0 40px 15px rgba(224, 216, 200, 0.4); } 100% { transform: translateY(0) scale(1); box-shadow: 0 0 30px 10px rgba(224, 216, 200, 0.3); } }
@keyframes mod-hill { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes mod-buck { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 25% { transform: translateX(-45%) rotate(4deg) scale(1.02); } 50% { transform: translateX(-55%) rotate(-4deg) scale(1.05); } 75% { transform: translateX(-45%) rotate(2deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(0deg) scale(1); } }
@keyframes mod-bush { 0% { transform: scale(1); } 50% { transform: scale(1.03) translateY(-2px); } 100% { transform: scale(1); } }
@keyframes mod-hat { 0% { transform: translateY(0) rotate(-2deg); } 100% { transform: translateY(-2px) rotate(2deg); } }

.scn-mad-ox-destruction { background: linear-gradient(180deg, #4a4a5a 0%, #6a6a7a 50%, #5a5a4a 100%), radial-gradient(ellipse at 50% 0%, #8a8a9a 0%, transparent 80%); }
.scn-mad-ox-destruction .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #5a5a6a 0%, #7a7a8a 50%, #6a6a5a 100%); animation: mdt-sky 14s ease-in-out infinite alternate; }
.scn-mad-ox-destruction .field-back { position: absolute; bottom: 35%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #5a5a4a 0%, #4a4a3a 100%); border-radius: 20% 30% 0 0; animation: mdt-field 6s ease-in-out infinite; }
.scn-mad-ox-destruction .hedge { position: absolute; bottom: 32%; left: 10%; right: 10%; height: 20%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.3); animation: mdt-hedge 4s ease-in-out infinite alternate; }
.scn-mad-ox-destruction .ox-bulk { position: absolute; bottom: 30%; left: 50%; width: 120px; height: 70px; transform: translateX(-50%); background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; box-shadow: 0 12px 24px rgba(0,0,0,0.5); animation: mdt-charge 0.6s ease-in-out infinite; }
.scn-mad-ox-destruction .dust { position: absolute; bottom: 22%; left: 30%; right: 30%; height: 20%; background: radial-gradient(ellipse at 50% 100%, rgba(120,120,100,0.6) 0%, transparent 70%); filter: blur(8px); animation: mdt-dust 2s ease-in-out infinite; }
.scn-mad-ox-destruction .crowd { position: absolute; bottom: 28%; right: 15%; width: 40px; height: 60px; background: radial-gradient(ellipse at 50% 100%, #2a2a2a 0%, transparent 70%); animation: mdt-flee 1s ease-in-out infinite; }
.scn-mad-ox-destruction .crowd::before { content: ''; position: absolute; bottom: 0; left: -15px; width: 20px; height: 30px; background: #3a3a3a; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: mdt-flee 1.2s ease-in-out infinite -0.3s; }
.scn-mad-ox-destruction .crowd::after { content: ''; position: absolute; bottom: 5px; right: -20px; width: 15px; height: 25px; background: #4a4a4a; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: mdt-flee 0.8s ease-in-out infinite -0.6s; }
.scn-mad-ox-destruction .field-front { position: absolute; bottom: 0; left: -10%; right: -10%; height: 30%; background: linear-gradient(180deg, #4a5a3a 0%, #3a4a2a 100%); border-radius: 40% 60% 0 0 / 50% 70% 0 0; animation: mdt-field-front 3s ease-in-out infinite alternate; }
@keyframes mdt-sky { 0% { opacity: 0.8; background-position: 0 0; } 50% { opacity: 1; background-position: 20px 0; } 100% { opacity: 0.9; background-position: 0 0; } }
@keyframes mdt-field { 0% { transform: skewX(0deg); } 50% { transform: skewX(-2deg); } 100% { transform: skewX(0deg); } }
@keyframes mdt-hedge { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(0.95) translateY(5px); } 100% { transform: scaleX(1.02) translateY(-2px); } }
@keyframes mdt-charge { 0% { transform: translateX(-50%) scale(1) rotate(0deg); } 25% { transform: translateX(-45%) scale(1.02) rotate(2deg); } 50% { transform: translateX(-55%) scale(0.98) rotate(-2deg); } 75% { transform: translateX(-45%) scale(1.01) rotate(1deg); } 100% { transform: translateX(-50%) scale(1) rotate(0deg); } }
@keyframes mdt-dust { 0% { opacity: 0.5; transform: scale(1) translateY(0); } 50% { opacity: 1; transform: scale(1.1) translateY(-5px); } 100% { opacity: 0.6; transform: scale(1) translateY(0); } }
@keyframes mdt-flee { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-10px) scale(0.95); } 100% { transform: translateX(0) scale(1); } }
@keyframes mdt-field-front { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-mad-ox-final-sage { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 100%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 60%); }
.scn-mad-ox-final-sage .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #a8d8ea 0%, #87ceeb 50%, #b0e0e6 100%); animation: mfs-sky 10s ease-in-out infinite alternate; }
.scn-mad-ox-final-sage .sun { position: absolute; top: 10%; right: 20%; width: 50px; height: 50px; background: radial-gradient(circle, #fff5cc 0%, #ffd700 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255, 215, 0, 0.4); animation: mfs-sun 4s ease-in-out infinite; }
.scn-mad-ox-final-sage .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #7ccd7c 0%, #5a9e5a 50%, #3a7a3a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-mad-ox-final-sage .sage-body { position: absolute; bottom: 25%; left: 50%; width: 50px; height: 70px; transform: translateX(-50%); background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 8px 16px rgba(0,0,0,0.2); animation: mfs-body 1.5s ease-in-out infinite; }
.scn-mad-ox-final-sage .sage-beard { position: absolute; bottom: 22%; left: 50%; width: 30px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #d3d3d3 0%, #a0a0a0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mfs-beard 1.5s ease-in-out infinite -0.3s; }
.scn-mad-ox-final-sage .sage-arms { position: absolute; bottom: 40%; left: 50%; width: 60px; height: 20px; transform: translateX(-50%); background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 20% 20% 50% 50% / 30% 30% 60% 60%; animation: mfs-arms 0.8s ease-in-out infinite alternate; }
.scn-mad-ox-final-sage .top { position: absolute; bottom: 38%; left: 50%; width: 20px; height: 20px; background: radial-gradient(circle, #ff6347 0%, #b22222 100%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(255, 99, 71, 0.3); animation: mfs-top 0.6s linear infinite; }
@keyframes mfs-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes mfs-sun { 0% { transform: scale(1); box-shadow: 0 0 60px 20px rgba(255, 215, 0, 0.4); } 50% { transform: scale(1.05); box-shadow: 0 0 80px 30px rgba(255, 215, 0, 0.6); } 100% { transform: scale(1); box-shadow: 0 0 60px 20px rgba(255, 215, 0, 0.4); } }
@keyframes mfs-body { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes mfs-beard { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(2px) rotate(3deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes mfs-arms { 0% { transform: translateX(-50%) rotate(-10deg) translateY(0); } 50% { transform: translateX(-50%) rotate(15deg) translateY(-5px); } 100% { transform: translateX(-50%) rotate(-5deg) translateY(0); } }
@keyframes mfs-top { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 25% { transform: translateX(-50%) rotate(90deg) scale(1.1); } 50% { transform: translateX(-50%) rotate(180deg) scale(1); } 75% { transform: translateX(-50%) rotate(270deg) scale(0.9); } 100% { transform: translateX(-50%) rotate(360deg) scale(1); } }

.scn-mad-ox-conclusion { background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 50%, #3a2a1a 100%), radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 80%); }
.scn-mad-ox-conclusion .wall { position: absolute; inset: 0; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.5); }
.scn-mad-ox-conclusion .window { position: absolute; top: 15%; right: 15%; width: 60px; height: 80px; background: radial-gradient(ellipse at 50% 50%, #4a5a6a 0%, #2a3a4a 100%); border: 4px solid #1a1a1a; border-radius: 2px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: mdc-window 10s ease-in-out infinite alternate; }
.scn-mad-ox-conclusion .chair { position: absolute; bottom: 15%; left: 50%; width: 60px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%; box-shadow: 0 8px 16px rgba(0,0,0,0.4); animation: mdc-chair 6s ease-in-out infinite; }
.scn-mad-ox-conclusion .narrator { position: absolute; bottom: 18%; left: 50%; width: 40px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; }
.scn-mad-ox-conclusion .newspaper { position: absolute; bottom: 30%; left: 50%; width: 50px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #d3d3d3 0%, #a0a0a0 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: mdc-paper 12s ease-in-out infinite; }
.scn-mad-ox-conclusion .rain-streak { position: absolute; top: 15%; right: 20%; width: 2px; height: 60px; background: linear-gradient(180deg, transparent 0%, rgba(150, 180, 200, 0.6) 50%, transparent 100%); animation: mdc-rain 1.5s linear infinite; }
.scn-mad-ox-conclusion .rain-streak::before { content: ''; position: absolute; top: -30px; right: 8px; width: 1px; height: 40px; background: linear-gradient(180deg, transparent 0%, rgba(150, 180, 200, 0.4) 50%, transparent 100%); animation: mdc-rain 1.8s linear infinite -0.6s; }
.scn-mad-ox-conclusion .rain-streak::after { content: ''; position: absolute; top: -10px; right: -5px; width: 2px; height: 50px; background: linear-gradient(180deg, transparent 0%, rgba(150, 180, 200, 0.5) 50%, transparent 100%); animation: mdc-rain 2s linear infinite -1.2s; }
@keyframes mdc-window { 0% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); } 50% { opacity: 1; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); } 100% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); } }
@keyframes mdc-chair { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(2deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(0deg) translateY(0); } 75% { transform: translateX(-50%) rotate(-2deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes mdc-paper { 0% { transform: translateX(-50%) rotate(0deg) translateY(0); } 50% { transform: translateX(-50%) rotate(3deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(0deg) translateY(0); } }
@keyframes mdc-rain { 0% { transform: translateY(-100%); opacity: 0; } 50% { opacity: 1; } 100% { transform: translateY(200%); opacity: 0; } }

/* Scene: appendix-four-content */
.scn-appendix-four-content {
  background: linear-gradient(180deg, #1c1822 0%, #2a1e1a 40%, #3a2a1e 100%), radial-gradient(ellipse at 50% 75%, #3a2a1e 0%, transparent 70%);
}
.scn-appendix-four-content .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2e1e0e 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.6);
}
.scn-appendix-four-content .book {
  position: absolute; bottom: 22%; left: 40%; width: 40px; height: 55px;
  background: linear-gradient(135deg, #6b4e3a 0%, #4a3222 100%);
  border-radius: 2px 2px 4px 4px; transform: rotate(-3deg);
  box-shadow: 2px 4px 8px rgba(0,0,0,.5); animation: ac-book 6s ease-in-out infinite;
}
.scn-appendix-four-content .candle {
  position: absolute; bottom: 24%; left: 52%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #e8d8c0 0%, #b8a080 100%);
  border-radius: 20% 20% 10% 10%; transform: rotate(2deg);
}
.scn-appendix-four-content .flame {
  position: absolute; bottom: 66%; left: 52.5%; width: 6px; height: 12px;
  background: radial-gradient(circle, #ffc070 0%, #e08020 100%);
  border-radius: 50% 50% 30% 30%; filter: blur(1px);
  animation: ac-flame 1.8s ease-in-out infinite alternate;
  box-shadow: 0 0 14px 6px rgba(224,128,32,.6);
}
.scn-appendix-four-content .inkwell {
  position: absolute; bottom: 28%; left: 62%; width: 12px; height: 14px;
  background: radial-gradient(circle, #3a2a1e 0%, #1a0e06 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.5);
}
.scn-appendix-four-content .quill {
  position: absolute; bottom: 36%; left: 56%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #c0a880 100%);
  border-radius: 50% 50% 10% 10%; transform: rotate(20deg);
  transform-origin: 50% 90%; animation: ac-quill 4s ease-in-out infinite;
}
.scn-appendix-four-content .shadow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 80%, transparent 40%, rgba(0,0,0,.4) 100%);
  animation: ac-shadow 8s ease-in-out infinite alternate;
}
@keyframes ac-book {
  0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes ac-flame {
  0% { transform: scaleY(1) scaleX(1); opacity: .9; box-shadow: 0 0 14px 6px rgba(224,128,32,.6); }
  50% { transform: scaleY(1.15) scaleX(.85); opacity: 1; box-shadow: 0 0 20px 10px rgba(224,128,32,.8); }
  100% { transform: scaleY(1) scaleX(1.1); opacity: .95; box-shadow: 0 0 16px 8px rgba(224,128,32,.7); }
}
@keyframes ac-quill {
  0% { transform: rotate(20deg) translateY(0); } 25% { transform: rotate(22deg) translateY(-2px); } 50% { transform: rotate(18deg) translateY(0); } 75% { transform: rotate(21deg) translateY(-1px); } 100% { transform: rotate(20deg) translateY(0); }
}
@keyframes ac-shadow {
  0% { opacity: .5; } 50% { opacity: .7; } 100% { opacity: .5; }
}

/* Scene: bibliography-and-index */
.scn-bibliography-and-index {
  background: linear-gradient(180deg, #1e1b18 0%, #2b231e 40%, #1f1a16 100%), radial-gradient(ellipse at 50% 55%, #2b231e 0%, transparent 70%);
}
.scn-bibliography-and-index .shelf {
  position: absolute; top: 45%; left: 10%; right: 10%; height: 6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2e1e0e 100%);
  border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,.5);
}
.scn-bibliography-and-index .book-a {
  position: absolute; top: 32%; left: 18%; width: 14px; height: 44px;
  background: linear-gradient(180deg, #5e3a1e 0%, #3a1a0a 100%);
  border-radius: 2px; transform: rotate(-1deg);
  animation: bi-tilt 6s ease-in-out infinite;
}
.scn-bibliography-and-index .book-b {
  position: absolute; top: 30%; left: 28%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 2px; transform: rotate(2deg);
  animation: bi-tilt 8s ease-in-out infinite reverse;
}
.scn-bibliography-and-index .book-c {
  position: absolute; top: 36%; left: 40%; width: 12px; height: 38px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px; transform: rotate(0deg);
}
.scn-bibliography-and-index .card {
  position: absolute; top: 46%; left: 55%; width: 20px; height: 12px;
  background: linear-gradient(135deg, #c8b898 0%, #a88a6a 100%);
  border-radius: 2px; box-shadow: 1px 2px 4px rgba(0,0,0,.3);
  animation: bi-card 10s ease-in-out infinite;
}
.scn-bibliography-and-index .lamp-glow {
  position: absolute; top: 20%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,150,.3) 0%, rgba(255,200,150,0) 70%);
  border-radius: 50%; animation: bi-lamp 4s ease-in-out infinite alternate;
}
.scn-bibliography-and-index .vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(0,0,0,.6) 100%);
  animation: bi-vignette 12s ease-in-out infinite alternate;
}
@keyframes bi-tilt {
  0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes bi-card {
  0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bi-lamp {
  0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: .8; transform: scale(1); }
}
@keyframes bi-vignette {
  0% { opacity: .6; } 50% { opacity: .8; } 100% { opacity: .6; }
}

/* Scene: fall-of-robespierre-intro */
.scn-fall-of-robespierre-intro {
  background: linear-gradient(180deg, #2a1414 0%, #1a0a0a 40%, #0a0505 100%), radial-gradient(circle at 50% 35%, #3a1a1a 0%, transparent 70%);
}
.scn-fall-of-robespierre-intro .backdrop {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a0f0f 0%, #0f0505 100%);
  animation: fr-backdrop 10s ease-in-out infinite alternate;
}
.scn-fall-of-robespierre-intro .table-fr {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 6% 6% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.7);
}
.scn-fall-of-robespierre-intro .document {
  position: absolute; bottom: 18%; left: 35%; width: 50px; height: 30px;
  background: linear-gradient(135deg, #c8b898 0%, #a88a6a 100%);
  border-radius: 2px; transform: rotate(-4deg);
  animation: fr-doc 3s ease-in-out infinite;
}
.scn-fall-of-robespierre-intro .inkwell-fr {
  position: absolute; bottom: 22%; left: 48%; width: 10px; height: 12px;
  background: radial-gradient(circle, #2a1a1a 0%, #0f0505 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.5);
}
.scn-fall-of-robespierre-intro .hand {
  position: absolute; bottom: 30%; left: 40%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0f0505 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: 50% 90%; animation: fr-hand 0.6s ease-in-out infinite;
}
.scn-fall-of-robespierre-intro .pen {
  position: absolute; bottom: 38%; left: 42%; width: 3px; height: 28px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0e06 100%);
  border-radius: 30% 30% 10% 10%; transform: rotate(35deg);
  transform-origin: 50% 100%; animation: fr-pen 0.6s ease-in-out infinite;
}
.scn-fall-of-robespierre-intro .lamp-fr {
  position: absolute; top: 20%; left: 48%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,100,50,.4) 0%, rgba(200,100,50,0) 70%);
  border-radius: 50%; animation: fr-lamp 1.5s ease-in-out infinite alternate;
}
.scn-fall-of-robespierre-intro .shadow-figure {
  position: absolute; top: 10%; left: 60%; width: 80px; height: 120px;
  background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, rgba(0,0,0,.2) 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  filter: blur(4px); transform: skewX(-5deg);
  animation: fr-shadow 4s ease-in-out infinite;
}
@keyframes fr-backdrop {
  0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; }
}
@keyframes fr-doc {
  0% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-4deg) translateY(0); }
}
@keyframes fr-hand {
  0% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(2deg) scaleY(1.02); } 50% { transform: rotate(0deg) scaleY(1); } 75% { transform: rotate(-2deg) scaleY(.98); } 100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes fr-pen {
  0% { transform: rotate(35deg) translateY(0); } 25% { transform: rotate(38deg) translateY(-1px); } 50% { transform: rotate(33deg) translateY(1px); } 75% { transform: rotate(36deg) translateY(-1px); } 100% { transform: rotate(35deg) translateY(0); }
}
@keyframes fr-lamp {
  0% { opacity: .6; transform: scaleX(1) scaleY(1); } 50% { opacity: .9; transform: scaleX(1.05) scaleY(1.1); } 100% { opacity: .7; transform: scaleX(1) scaleY(1); }
}
@keyframes fr-shadow {
  0% { transform: skewX(-5deg) translateX(0); } 50% { transform: skewX(-3deg) translateX(2px); } 100% { transform: skewX(-5deg) translateX(0); }
}

/* Scene: robes-pierre-barrere */
.scn-robes-pierre-barrere {
  background: linear-gradient(180deg, #0e0a14 0%, #1a0a0a 40%, #0a0505 100%), radial-gradient(circle at 40% 45%, #2a1010 0%, transparent 70%);
}
.scn-robes-pierre-barrere .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0f0505 0%, #1a0a0a 100%);
  animation: rb-bg 8s ease-in-out infinite alternate;
}
.scn-robes-pierre-barrere .figure-left {
  position: absolute; bottom: 10%; left: 15%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rb-figure-left 6s ease-in-out infinite;
}
.scn-robes-pierre-barrere .figure-right {
  position: absolute; bottom: 10%; right: 20%; width: 45px; height: 100px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rb-figure-right 8s ease-in-out infinite;
}
.scn-robes-pierre-barrere .table-low {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0f0505 100%);
  border-radius: 6% 6% 0 0; box-shadow: inset 0 6px 10px rgba(0,0,0,.7);
}
.scn-robes-pierre-barrere .candle-flame {
  position: absolute; bottom: 14%; left: 48%; width: 6px; height: 10px;
  background: radial-gradient(circle, #ffc070 0%, #e08020 100%);
  border-radius: 50% 50% 30% 30%; filter: blur(1px);
  animation: rb-flame 0.8s ease-in-out infinite alternate;
  box-shadow: 0 0 12px 4px rgba(224,128,32,.5);
}
.scn-robes-pierre-barrere .light-cone {
  position: absolute; bottom: 12%; left: 38%; width: 80px; height: 60px;
  background: radial-gradient(ellipse 60% 80% at 50% 0%, rgba(255,200,100,.15) 0%, transparent 70%);
  opacity: .6; animation: rb-light 4s ease-in-out infinite alternate;
}
.scn-robes-pierre-barrere .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  animation: rb-shadow 6s ease-in-out infinite alternate;
}
@keyframes rb-bg {
  0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .75; }
}
@keyframes rb-figure-left {
  0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.01); } 100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes rb-figure-right {
  0% { transform: rotate(0deg) scaleY(1) translateX(0); } 50% { transform: rotate(-1deg) scaleY(1.02) translateX(-2px); } 100% { transform: rotate(0deg) scaleY(1) translateX(0); }
}
@keyframes rb-flame {
  0% { transform: scaleY(1) scaleX(1); opacity: .9; } 50% { transform: scaleY(1.2) scaleX(.8); opacity: 1; } 100% { transform: scaleY(1) scaleX(1.1); opacity: .95; }
}
@keyframes rb-light {
  0% { opacity: .5; } 50% { opacity: .7; } 100% { opacity: .6; }
}
@keyframes rb-shadow {
  0% { opacity: .5; } 50% { opacity: .7; } 100% { opacity: .55; }
}

.scn-delinquent-travellers-two {
  background:
    radial-gradient(ellipse at 50% 0%, #5a3a2a 0%, transparent 60%),
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
}
.scn-delinquent-travellers-two .room-wall { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); opacity:.6; }
.scn-delinquent-travellers-two .window-frame { position:absolute; top:15%; left:50%; width:50%; height:40%; transform:translateX(-50%); border:6px solid #6a4a3a; border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,.5); background: #1a2a3a; }
.scn-delinquent-travellers-two .sky-outside { position:absolute; top:16%; left:calc(50% + 6px); width:calc(50% - 18px); height:calc(40% - 18px); transform:translateX(-50%); background: linear-gradient(180deg, #4a5a6a 0%, #6a7a8a 100%); border-radius:2px; animation: dt2-sky 12s ease-in-out infinite alternate; }
.scn-delinquent-travellers-two .copernicus-sphere { position:absolute; top:25%; left:60%; width:60px; height:60px; border-radius:50%; background: radial-gradient(circle, #b08040 0%, #8a6020 40%, transparent 70%); box-shadow: 0 0 20px 5px rgba(176,128,64,.3); animation: dt2-sphere 20s linear infinite; }
.scn-delinquent-travellers-two .poet-writing { position:absolute; bottom:20%; left:35%; width:40px; height:70px; background: linear-gradient(135deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 40% 50% 50% / 60% 50% 60% 50%; transform-origin: bottom center; animation: dt2-write 4s ease-in-out infinite; }
.scn-delinquent-travellers-two .desk { position:absolute; bottom:18%; left:25%; width:50%; height:10px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-delinquent-travellers-two .inkwell { position:absolute; bottom:22%; left:45%; width:10px; height:12px; background: #1a1a2a; border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.6); animation: dt2-ink 6s ease-in-out infinite; }
.scn-delinquent-travellers-two .map-wobble { position:absolute; top:12%; right:8%; width:60px; height:40px; background: linear-gradient(135deg, #b87878 0%, #a06060 100%); border:2px solid #c8553d; border-radius:2px; transform-origin: top center; box-shadow: 2px 4px 8px rgba(0,0,0,.4); animation: dt2-map 8s ease-in-out infinite; }
@keyframes dt2-sky { 0% { opacity:.4; transform: translateX(-50%) scaleX(1); } 50% { opacity:.8; transform: translateX(-50%) scaleX(1.05); } 100% { opacity:.5; transform: translateX(-50%) scaleX(.95); } }
@keyframes dt2-sphere { 0% { transform: rotate(0deg) translateX(20px) rotate(0deg); } 100% { transform: rotate(360deg) translateX(20px) rotate(-360deg); } }
@keyframes dt2-write { 0% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(0deg) translateY(-2px); } 50% { transform: rotate(8deg) translateY(-1px); } 75% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes dt2-ink { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes dt2-map { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(4deg); } 75% { transform: rotate(-3deg); } }

.scn-delinquent-travellers-three {
  background:
    radial-gradient(ellipse at 50% 80%, #0a1a2a 0%, #0a0a1a 60%),
    linear-gradient(180deg, #0a0a1a 0%, #1a2a3a 50%, #2a3a4a 100%);
}
.scn-delinquent-travellers-three .bay-night { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, transparent 40%, #0a1a2a 100%); }
.scn-delinquent-travellers-three .sly-moon { position:absolute; top:8%; right:25%; width:40px; height:40px; border-radius:50%; background: radial-gradient(circle at 60% 40%, #e0d0a0 0%, #c0b080 80%); box-shadow: 0 0 30px 10px rgba(192,176,128,.4); animation: dt3-moon 12s ease-in-out infinite; }
.scn-delinquent-travellers-three .boat-hull { position:absolute; bottom:25%; left:40%; width:80px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 0 50% 50% / 0 0 100% 100%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: dt3-boat 5s ease-in-out infinite; }
.scn-delinquent-travellers-three .smuggler-gag { position:absolute; bottom:30%; left:45%; width:30px; height:50px; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dt3-gag 3s ease-in-out infinite; }
.scn-delinquent-travellers-three .smuggler-hold { position:absolute; bottom:30%; left:52%; width:30px; height:50px; background: linear-gradient(225deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dt3-hold 3.5s ease-in-out infinite; }
.scn-delinquent-travellers-three .poet-captive { position:absolute; bottom:28%; left:48%; width:28px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 50% 30% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dt3-captive 2s ease-in-out infinite; }
.scn-delinquent-travellers-three .shore-wave { position:absolute; bottom:20%; left:0; right:0; height:10%; background: radial-gradient(ellipse at 50% 0%, #2a4a5a 0%, #0a1a2a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; animation: dt3-wave 6s ease-in-out infinite alternate; }
@keyframes dt3-moon { 0%,100% { transform: translate(0, 0); box-shadow: 0 0 30px 10px rgba(192,176,128,.4); } 50% { transform: translate(4px, -4px); box-shadow: 0 0 50px 15px rgba(192,176,128,.6); } }
@keyframes dt3-boat { 0%,100% { transform: translate(0, 0) rotate(-2deg); } 25% { transform: translate(-4px, 2px) rotate(1deg); } 50% { transform: translate(0, 4px) rotate(2deg); } 75% { transform: translate(4px, 2px) rotate(-1deg); } }
@keyframes dt3-gag { 0%,100% { transform: rotate(0deg) translate(0, 0); } 30% { transform: rotate(-15deg) translate(-10px, 0); } 60% { transform: rotate(10deg) translate(-5px, -5px); } }
@keyframes dt3-hold { 0%,100% { transform: rotate(0deg) translate(0, 0); } 30% { transform: rotate(15deg) translate(10px, 0); } 60% { transform: rotate(-10deg) translate(5px, -5px); } }
@keyframes dt3-captive { 0%,100% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(-8deg) scale(1.05); } 50% { transform: rotate(12deg) scale(.95); } 75% { transform: rotate(-5deg) scale(1.02); } }
@keyframes dt3-wave { 0% { transform: scaleY(.8); opacity:.6; } 50% { transform: scaleY(1.2); opacity:1; } 100% { transform: scaleY(.9); opacity:.7; } }

.scn-delinquent-travellers-four {
  background:
    radial-gradient(ellipse at 50% 0%, #6a5a4a 0%, #3a2a1a 60%),
    linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
}
.scn-delinquent-travellers-four .dawn-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #6a7a8a 0%, #8a7a6a 50%, #b0a090 100%); animation: dt4-dawn 15s ease-in-out infinite alternate; }
.scn-delinquent-travellers-four .mountain-bg { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius: 60% 40% 0 0 / 70% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); }
.scn-delinquent-travellers-four .mt-hecla { position:absolute; bottom:30%; left:50%; width:120px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); clip-path: polygon(20% 100%, 80% 100%, 60% 10%, 40% 10%); border-radius: 0 0 20% 20% / 0 0 40% 40%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: dt4-mountain 20s ease-in-out infinite; }
.scn-delinquent-travellers-four .smoke-plume { position:absolute; bottom:45%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(160,120,80,.6) 0%, rgba(160,120,80,.1) 70%); border-radius: 50%; filter: blur(8px); animation: dt4-smoke 8s ease-in-out infinite; }
.scn-delinquent-travellers-four .cabin-home { position:absolute; bottom:35%; left:30%; width:50px; height:30px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-delinquent-travellers-four .cabin-home::after { content:''; position:absolute; top:-10px; left:0; width:0; height:0; border-left: 25px solid transparent; border-right: 25px solid transparent; border-bottom: 15px solid #6a4a2a; }
.scn-delinquent-travellers-four .father-figure { position:absolute; bottom:32%; left:28%; width:16px; height:30px; background: linear-gradient(135deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%; transform-origin: bottom center; animation: dt4-father 6s ease-in-out infinite; }
.scn-delinquent-travellers-four .winding-path { position:absolute; bottom:0; left:20%; right:20%; height:35%; background: radial-gradient(ellipse at 30% 100%, #5a4a3a 0%, transparent 60%); border-radius: 50% / 100% 100% 0 0; opacity:.4; }
.scn-delinquent-travellers-four .progeny-banner { position:absolute; bottom:45%; left:35%; width:20px; height:25px; background: linear-gradient(180deg, #c8553d 0%, #a0402a 100%); border-radius: 2px; transform-origin: bottom left; animation: dt4-banner 4s ease-in-out infinite; }
@keyframes dt4-dawn { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes dt4-mountain { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes dt4-smoke { 0% { transform: translateX(-50%) translateY(0) scale(1); opacity:.6; } 50% { transform: translateX(-50%) translateY(-20px) scale(1.5); opacity:.3; } 100% { transform: translateX(-50%) translateY(-40px) scale(2); opacity:0; } }
@keyframes dt4-father { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-3deg) translateY(-2px); } 50% { transform: rotate(3deg) translateY(-1px); } 75% { transform: rotate(-2deg) translateY(-3px); } }
@keyframes dt4-banner { 0%,100% { transform: rotate(-10deg); } 25% { transform: rotate(15deg); } 50% { transform: rotate(-5deg); } 75% { transform: rotate(20deg); } }

.scn-work-without-hope {
  background:
    radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 30%, #1a2a1a 100%);
}
.scn-work-without-hope .overcast-sky { position:absolute; inset:0; background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 100%); opacity:.3; animation: wwh-sky 20s ease-in-out infinite alternate; }
.scn-work-without-hope .bare-branches { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(135deg, transparent 30%, #2a3a2a 40%, transparent 50%, #3a4a3a 60%, transparent 70%); clip-path: polygon(10% 0%, 20% 40%, 15% 60%, 30% 30%, 50% 10%, 60% 40%, 80% 20%, 90% 50%, 70% 80%, 40% 90%, 20% 100%, 0% 80%); animation: wwh-branches 15s ease-in-out infinite; }
.scn-work-without-hope .slime-slugs { position:absolute; bottom:20%; left:10%; width:20px; height:8px; background: #5a6a4a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 30px 10px 0 #4a5a3a, 60px 0 0 #5a6a4a; animation: wwh-slug 25s linear infinite; }
.scn-work-without-hope .stirring-bees { position:absolute; top:30%; left:40%; width:6px; height:6px; background: radial-gradient(circle, #8a7a4a 0%, #6a5a2a 100%); border-radius: 50%; box-shadow: 0 0 4px 1px rgba(138,122,74,.5); animation: wwh-bees 4s ease-in-out infinite; }
.scn-work-without-hope .stirring-bees::before { content:''; position:absolute; top:50%; left:50%; width:4px; height:4px; background: #8a7a4a; border-radius:50%; transform:translate(-50%, -50%); animation: wwh-bees2 4.2s ease-in-out infinite; }
.scn-work-without-hope .poet-slump { position:absolute; bottom:15%; left:45%; width:40px; height:70px; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 50% 40% 50% 40% / 60% 50% 70% 40%; transform-origin: center bottom; animation: wwh-slump 8s ease-in-out infinite; }
.scn-work-without-hope .cold-ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 20% 30% 0 0 / 40% 50% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.4); }
.scn-work-without-hope .bird-wing { position:absolute; top:15%; right:20%; width:30px; height:15px; background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 100%); border-radius: 80% 20% 50% 50% / 100% 50% 50% 50%; transform-origin: right center; animation: wwh-wing 6s ease-in-out infinite; }
@keyframes wwh-sky { 0% { opacity:.2; } 50% { opacity:.5; } 100% { opacity:.3; } }
@keyframes wwh-branches { 0%,100% { transform: scaleY(1) rotate(0deg); } 25% { transform: scaleY(1.02) rotate(-2deg); } 75% { transform: scaleY(.98) rotate(2deg); } }
@keyframes wwh-slug { 0% { transform: translateX(0); } 25% { transform: translateX(20px); } 50% { transform: translateX(40px); } 75% { transform: translateX(60px); } 100% { transform: translateX(80px); } }
@keyframes wwh-bees { 0%,100% { transform: translate(0, 0); } 25% { transform: translate(15px, -20px); } 50% { transform: translate(-10px, 10px); } 75% { transform: translate(20px, -15px); } }
@keyframes wwh-bees2 { 0%,100% { transform: translate(-50%, -50%) scale(1); } 25% { transform: translate(-50%, -50%) scale(1.5); } 50% { transform: translate(-50%, -50%) scale(.8); } 75% { transform: translate(-50%, -50%) scale(1.2); } }
@keyframes wwh-slump { 0%,100% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(-5deg) scale(1.02); } 50% { transform: rotate(5deg) scale(.98); } 75% { transform: rotate(-3deg) scale(1.01); } }
@keyframes wwh-wing { 0%,100% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(-20deg) scaleY(1.1); } 50% { transform: rotate(10deg) scaleY(.9); } 75% { transform: rotate(-15deg) scaleY(1.05); } }

.scn-alice-du-clos-seven {
  background: linear-gradient(180deg, #42425a 0%, #5a5a6e 40%, #4a4a5a 100%), radial-gradient(ellipse at 50% 100%, #4a4a5a 0%, transparent 70%);
}
.scn-alice-du-clos-seven .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #5a5a72 0%, #3a3a4a 100%); animation: ac7-sky 20s linear infinite; }
.scn-alice-du-clos-seven .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #3a3a32 0%, #2a2a22 100%); }
.scn-alice-du-clos-seven .horse-left { position:absolute; bottom:35%; left:20%; width:50px; height:30px; background:#2a2a1a; border-radius: 40% 40% 30% 30%; animation: ac7-horse 3s ease-in-out infinite alternate; }
.scn-alice-du-clos-seven .rider-left { position:absolute; bottom:50%; left:20%; width:20px; height:25px; background:#1a1a2a; border-radius: 50% 50% 40% 40%; animation: ac7-rider 3s ease-in-out infinite alternate; }
.scn-alice-du-clos-seven .horse-right { position:absolute; bottom:35%; right:25%; width:45px; height:28px; background:#1a1a1a; border-radius: 40% 40% 30% 30%; animation: ac7-horse 3.2s ease-in-out infinite alternate; }
.scn-alice-du-clos-seven .rider-right { position:absolute; bottom:50%; right:25%; width:18px; height:24px; background:#0a0a1a; border-radius: 50% 50% 40% 40%; animation: ac7-rider 3.2s ease-in-out infinite alternate; }
.scn-alice-du-clos-seven .hound { position:absolute; bottom:30%; left:15%; width:25px; height:12px; background:#3a3a2a; border-radius: 40% 40% 30% 30%; animation: ac7-hound 2s ease-in-out infinite; }
.scn-alice-du-clos-seven .lance { position:absolute; bottom:55%; left:20%; width:3px; height:40px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); transform-origin: bottom; animation: ac7-lance 5s ease-in-out infinite; }
@keyframes ac7-sky   { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ac7-horse { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) scale(1.01) } 100% { transform: translateY(0) } }
@keyframes ac7-rider { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ac7-hound { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes ac7-lance { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }

.scn-alice-du-clos-eight {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%), radial-gradient(circle at 30% 40%, #4a4a5a 0%, transparent 70%);
}
.scn-alice-du-clos-eight .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); }
.scn-alice-du-clos-eight .door { position:absolute; bottom:20%; left:35%; width:30%; height:60%; background:#1a1a2a; border-radius: 4% 4% 2% 2%; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); animation: ac8-door 8s ease-in-out infinite alternate; }
.scn-alice-du-clos-eight .lattice { position:absolute; bottom:40%; left:38%; width:24%; height:30%; background: repeating-linear-gradient(0deg, #4a4a5a 0px, #4a4a5a 2px, transparent 2px, transparent 12px), repeating-linear-gradient(90deg, #4a4a5a 0px, #4a4a5a 2px, transparent 2px, transparent 12px); opacity:0.3; animation: ac8-lattice 12s linear infinite; }
.scn-alice-du-clos-eight .alice { position:absolute; bottom:30%; left:40%; width:20px; height:40px; background:#1a1a2a; border-radius: 50% 50% 40% 40%; animation: ac8-figure 4s ease-in-out infinite alternate; }
.scn-alice-du-clos-eight .julian { position:absolute; bottom:30%; right:30%; width:24px; height:44px; background:#0a0a1a; border-radius: 50% 50% 40% 40%; animation: ac8-figure 4.5s ease-in-out infinite alternate; }
.scn-alice-du-clos-eight .candle { position:absolute; bottom:50%; left:45%; width:4px; height:10px; background: linear-gradient(180deg, #c08040 0%, #8a5a2a 100%); border-radius: 10% 10% 50% 50%; box-shadow: 0 0 8px 2px rgba(192,128,64,0.6); transform: rotate(5deg); animation: ac8-candle 3s ease-in-out infinite; }
@keyframes ac8-door   { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } 100% { transform: scaleX(1) } }
@keyframes ac8-lattice { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.3 } }
@keyframes ac8-figure { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ac8-candle { 0% { transform: rotate(3deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.1) } 100% { transform: rotate(3deg) scaleY(1) } }

.scn-alice-du-clos-nine {
  background: linear-gradient(180deg, #4a4a5a 0%, #5a5a6a 40%, #4a4a5a 100%), radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%);
}
.scn-alice-du-clos-nine .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a5a6e 0%, #3a3a4a 100%); animation: ac9-sky 25s linear infinite alternate; }
.scn-alice-du-clos-nine .ground { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #3a3a32 0%, #2a2a22 100%); }
.scn-alice-du-clos-nine .tree { position:absolute; bottom:35%; left:15%; width:40px; height:80px; background:#2a2a1a; border-radius: 20% 20% 10% 10%; animation: ac9-tree 15s ease-in-out infinite; }
.scn-alice-du-clos-nine .knight { position:absolute; bottom:30%; left:25%; width:30px; height:50px; background:#1a1a2a; border-radius: 40% 40% 30% 30%; animation: ac9-knight 5s ease-in-out infinite alternate; }
.scn-alice-du-clos-nine .lady { position:absolute; bottom:30%; right:30%; width:28px; height:48px; background:#2a2a3a; border-radius: 50% 50% 40% 40%; animation: ac9-lady 4s ease-in-out infinite alternate; }
.scn-alice-du-clos-nine .page { position:absolute; bottom:30%; right:15%; width:18px; height:34px; background:#1a1a1a; border-radius: 50% 50% 40% 40%; animation: ac9-page 3.5s ease-in-out infinite alternate; }
.scn-alice-du-clos-nine .flagpole { position:absolute; bottom:80%; left:25%; width:2px; height:30px; background:#6a5a4a; animation: ac9-flagpole 5s ease-in-out infinite; }
.scn-alice-du-clos-nine .banner { position:absolute; bottom:90%; left:25%; width:16px; height:8px; background:#4a3a3a; border-radius: 20% 20% 0 0; animation: ac9-banner 2s ease-in-out infinite alternate; }
@keyframes ac9-sky   { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ac9-tree   { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ac9-knight { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ac9-lady   { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ac9-page   { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(0) } }
@keyframes ac9-flagpole { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes ac9-banner { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }

.scn-alice-du-clos-ten {
  background: linear-gradient(180deg, #3a3a4e 0%, #4a4a5e 40%, #3a3a4e 100%), radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 70%);
}
.scn-alice-du-clos-ten .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #4a4a5e 0%, #3a3a4e 100%); animation: ac10-sky 30s linear infinite alternate; }
.scn-alice-du-clos-ten .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #3a3a32 0%, #2a2a22 100%); }
.scn-alice-du-clos-ten .tree { position:absolute; bottom:35%; right:20%; width:30px; height:60px; background:#1a1a1a; border-radius: 30% 30% 10% 10%; animation: ac10-tree 12s ease-in-out infinite; }
.scn-alice-du-clos-ten .child { position:absolute; bottom:25%; left:30%; width:20px; height:40px; background:#2a2a3a; border-radius: 50% 50% 40% 40%; animation: ac10-child 4s ease-in-out infinite; }
.scn-alice-du-clos-ten .julian { position:absolute; bottom:25%; right:40%; width:25px; height:50px; background:#0a0a1a; border-radius: 50% 50% 40% 40%; animation: ac10-julian 4.5s ease-in-out infinite alternate; }
@keyframes ac10-sky   { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ac10-tree  { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ac10-child { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(6px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(12px) translateY(0) rotate(-2deg) } }
@keyframes ac10-julian { 0% { transform: rotate(-1deg) translateY(0) } 50% { transform: rotate(1deg) translateY(1px) } 100% { transform: rotate(-1deg) translateY(0) } }

/* one block per scene id. Append to style.css. */
.scn-pleasant-heart-sonnet {
  background: linear-gradient(180deg, #2c1a4e 0%, #6b3a5e 40%, #b56a4a 70%, #dba06a 100%), radial-gradient(ellipse at 50% 0%, #ffdd88 0%, transparent 60%);
}
.scn-pleasant-heart-sonnet .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3a2a5e 0%, transparent 100%); animation: phs-sky 15s ease-in-out infinite alternate; }
.scn-pleasant-heart-sonnet .sun { position:absolute; top:20%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(circle, #ffcc66 0%, #ff9944 50%, transparent 70%); border-radius:50%; animation: phs-sun 8s ease-in-out infinite alternate; }
.scn-pleasant-heart-sonnet .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a3a2a 0%, #1a1a1a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: phs-hills 20s ease-in-out infinite alternate; }
.scn-pleasant-heart-sonnet .tree { position:absolute; bottom:30%; left:30%; width:12px; height:60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%; transform-origin: bottom center; animation: phs-tree 6s ease-in-out infinite alternate; }
.scn-pleasant-heart-sonnet .figure { position:absolute; bottom:32%; left:55%; width:16px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: phs-figure 4s ease-in-out infinite alternate; }
.scn-pleasant-heart-sonnet .cloud { position:absolute; top:12%; background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter: blur(5px); }
.scn-pleasant-heart-sonnet .cloud-a { left:10%; width:90px; height:20px; animation: phs-drift-a 40s linear infinite; }
.scn-pleasant-heart-sonnet .cloud-b { right:5%; width:70px; height:16px; animation: phs-drift-b 55s linear infinite reverse; }
@keyframes phs-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes phs-sun { 0% { transform:translateX(-50%) scale(.95); opacity:.8 } 50% { transform:translateX(-50%) scale(1.05); opacity:1 } 100% { transform:translateX(-50%) scale(.98); opacity:.9 } }
@keyframes phs-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes phs-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes phs-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes phs-drift-a { 0% { transform: translateX(-40px) } 50% { transform: translateX(60vw) } 100% { transform: translateX(120vw) } }
@keyframes phs-drift-b { 0% { transform: translateX(0) } 50% { transform: translateX(-50vw) } 100% { transform: translateX(-100vw) } }

.scn-dirge-for-king-george-intro {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 50%, #1a0a1a 100%), radial-gradient(ellipse at 50% 100%, #0a0a1a 0%, transparent 70%);
}
.scn-dirge-for-king-george-intro .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); }
.scn-dirge-for-king-george-intro .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); }
.scn-dirge-for-king-george-intro .window { position:absolute; top:15%; right:20%; width:60px; height:80px; background: #0a0a2a; border: 4px solid #2a1a1a; border-radius:4px; box-shadow: inset 0 0 20px rgba(100,100,255,.1); animation: dkg1-window 10s ease-in-out infinite alternate; }
.scn-dirge-for-king-george-intro .figure-mourn { position:absolute; bottom:20%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dkg1-figure 5s ease-in-out infinite alternate; }
.scn-dirge-for-king-george-intro .table { position:absolute; bottom:15%; left:25%; width:50px; height:12px; background: #2a1a1a; border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-dirge-for-king-george-intro .candle { position:absolute; bottom:22%; left:28%; width:6px; height:18px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:2px; }
.scn-dirge-for-king-george-intro .flame { position:absolute; bottom:39%; left:28%; width:8px; height:12px; background: radial-gradient(circle, #ffaa44 0%, #ff6600 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 16px 4px #ff6600; animation: dkg1-flame 2s ease-in-out infinite alternate; }
.scn-dirge-for-king-george-intro .shadow { position:absolute; bottom:0; left:20%; width:100px; height:20px; background: rgba(0,0,0,.6); border-radius: 50%; filter: blur(6px); animation: dkg1-shadow 6s ease-in-out infinite alternate; }
@keyframes dkg1-window { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes dkg1-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes dkg1-flame { 0% { transform: scaleY(1); opacity:.8 } 50% { transform: scaleY(1.3); opacity:1 } 100% { transform: scaleY(1.1); opacity:.9 } }
@keyframes dkg1-shadow { 0% { transform: scaleX(1); opacity:.6 } 50% { transform: scaleX(1.2); opacity:.8 } 100% { transform: scaleX(1); opacity:.7 } }

.scn-dirge-for-king-two {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a2a 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 0%, #1a1a3a 0%, transparent 60%);
}
.scn-dirge-for-king-two .wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #1a0a1a 0%, #0a0a1a 100%); }
.scn-dirge-for-king-two .floor { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #0a0a0a 0%, #050505 100%); }
.scn-dirge-for-king-two .window { position:absolute; top:10%; left:20%; width:80px; height:100px; background: #0a0a2a; border: 4px solid #2a1a1a; border-radius:4px; overflow:hidden; }
.scn-dirge-for-king-two .moon { position:absolute; top:15%; left:25%; width:40px; height:40px; background: radial-gradient(circle, #c8c8e0 0%, #8888aa 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(200,200,220,.3); animation: dkg2-moon 12s ease-in-out infinite alternate; }
.scn-dirge-for-king-two .cloud { position:absolute; top:10%; left:10%; width:100px; height:20px; background: rgba(255,255,255,.15); border-radius:50%; filter: blur(4px); animation: dkg2-cloud 30s linear infinite alternate; }
.scn-dirge-for-king-two .crown { position:absolute; bottom:35%; left:50%; width:40px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a84e 0%, #a08030 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: dkg2-crown 8s ease-in-out infinite alternate; }
.scn-dirge-for-king-two .cushion { position:absolute; bottom:30%; left:45%; width:60px; height:15px; background: #2a1a1a; border-radius: 20% 20% 0 0; transform:translateX(-50%); box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-dirge-for-king-two .figure-kneel { position:absolute; bottom:20%; left:35%; width:18px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dkg2-kneel 6s ease-in-out infinite alternate; }
@keyframes dkg2-moon { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes dkg2-cloud { 0% { transform: translateX(-20px); opacity:.3 } 50% { transform: translateX(10px); opacity:.5 } 100% { transform: translateX(20px); opacity:.4 } }
@keyframes dkg2-crown { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes dkg2-kneel { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }

.scn-dirge-for-king-three {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #1a0a0a 100%), radial-gradient(ellipse at 30% 80%, #2a2a3a 0%, transparent 70%);
}
.scn-dirge-for-king-three .shelf-bg { position:absolute; inset:0 0 30% 0; background: repeating-linear-gradient(0deg, #0a0a1a 0px, #0a0a1a 4px, #1a1a2a 4px, #1a1a2a 8px); animation: dkg3-shelf 20s linear infinite; }
.scn-dirge-for-king-three .desk { position:absolute; bottom:20%; left:10%; right:10%; height:10%; background: #2a1a1a; border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.7); }
.scn-dirge-for-king-three .book { position:absolute; bottom:30%; left:20%; width:30px; height:20px; background: #4a3a2a; border-radius: 1px; transform: rotate(-5deg); box-shadow: 2px 2px 4px rgba(0,0,0,.5); animation: dkg3-book 12s ease-in-out infinite alternate; }
.scn-dirge-for-king-three .scales { position:absolute; bottom:25%; left:55%; width:40px; height:30px; background: #8a7a5a; border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: dkg3-scales 10s ease-in-out infinite alternate; }
.scn-dirge-for-king-three .lamp { position:absolute; bottom:35%; left:75%; width:10px; height:25px; background: #4a3a2a; border-radius: 2px; transform-origin: bottom center; animation: dkg3-lamp 6s ease-in-out infinite alternate; }
.scn-dirge-for-king-three .hand { position:absolute; bottom:28%; left:30%; width:12px; height:8px; background: #1a1a2a; border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; animation: dkg3-hand 5s ease-in-out infinite alternate; }
@keyframes dkg3-shelf { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes dkg3-book { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-6deg) translateY(0) } }
@keyframes dkg3-scales { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes dkg3-lamp { 0% { transform: rotate(-5deg); opacity:.7 } 50% { transform: rotate(5deg); opacity:1 } 100% { transform: rotate(-4deg); opacity:.8 } }
@keyframes dkg3-hand { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }

/* mad-ox-sage */
.scn-mad-ox-sage {
  background: linear-gradient(180deg, #b0b8c0 0%, #c8d0c8 50%, #d0d8d0 100%),
              radial-gradient(ellipse at 50% 100%, #d0d8d0 0%, transparent 70%);
}
.scn-mad-ox-sage .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #c0c8d0 0%, transparent 100%);
  animation: mos-sky 8s ease-in-out infinite alternate;
}
.scn-mad-ox-sage .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #a0a898 0%, #708078 100%);
  border-radius: 20% 20% 0 0;
  animation: mos-ground 4s ease-in-out infinite;
}
.scn-mad-ox-sage .bldg-left {
  position: absolute; bottom: 30%; left: 5%; width: 25%; height: 45%;
  background: linear-gradient(180deg, #b07050 0%, #805030 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 2px 0 8px rgba(0,0,0,.3);
  animation: mos-bldg 6s ease-in-out infinite;
}
.scn-mad-ox-sage .bldg-right {
  position: absolute; bottom: 30%; right: 5%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #a06040 0%, #704028 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: -2px 0 8px rgba(0,0,0,.3);
  animation: mos-bldg 6s ease-in-out infinite reverse;
}
.scn-mad-ox-sage .sage {
  position: absolute; bottom: 10%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mos-sage 2s ease-in-out infinite;
}
.scn-mad-ox-sage .ox {
  position: absolute; bottom: 10%; left: 20%; width: 40px; height: 25px;
  background: #8a7a5a;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: mos-ox 1.5s ease-in-out infinite;
}
.scn-mad-ox-sage .lamp {
  position: absolute; bottom: 50%; left: 15%; width: 8px; height: 30px;
  background: #3a3a3a;
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px 8px rgba(255,200,100,.5);
  animation: mos-lamp 3s ease-in-out infinite alternate;
}
@keyframes mos-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes mos-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes mos-bldg { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.01) } 100% { transform:scaleY(1) } }
@keyframes mos-sage {
  0%   { transform:rotate(0) translateY(0) }
  25%  { transform:rotate(3deg) translateY(-2px) }
  50%  { transform:rotate(-2deg) translateY(0) }
  75%  { transform:rotate(4deg) translateY(-1px) }
  100% { transform:rotate(0) translateY(0) }
}
@keyframes mos-ox {
  0%   { transform:translateX(0) translateY(0) }
  33%  { transform:translateX(5px) translateY(-5px) }
  66%  { transform:translateX(-2px) translateY(-3px) }
  100% { transform:translateX(0) translateY(0) }
}
@keyframes mos-lamp {
  0%   { opacity:.6; box-shadow:0 0 10px 4px rgba(255,200,100,.3) }
  50%  { opacity:1; box-shadow:0 0 30px 12px rgba(255,200,100,.7) }
  100% { opacity:.7; box-shadow:0 0 15px 6px rgba(255,200,100,.4) }
}

/* mad-ox-chase */
.scn-mad-ox-chase {
  background: linear-gradient(180deg, #87ceeb 0%, #ffe0a0 50%, #e8b86a 100%),
              radial-gradient(circle at 70% 20%, #ffff80 0%, transparent 50%);
}
.scn-mad-ox-chase .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #99d6f0 0%, transparent 100%);
  animation: moc-sky 6s ease-in-out infinite alternate;
}
.scn-mad-ox-chase .sun {
  position: absolute; top: 12%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8b0 0%, #ffda60 40%, transparent 70%);
  border-radius: 50%;
  animation: moc-sun 4s ease-in-out infinite alternate;
}
.scn-mad-ox-chase .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8B7355 0%, #6b5a3e 100%);
  border-radius: 30% 30% 0 0;
  animation: moc-ground 5s ease-in-out infinite;
}
.scn-mad-ox-chase .ox {
  position: absolute; bottom: 10%; left: 10%; width: 80px; height: 50px;
  background: #5c4033;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: moc-ox 2s ease-in-out infinite;
}
.scn-mad-ox-chase .runner1 {
  position: absolute; bottom: 15%; left: 60%; width: 20px; height: 50px;
  background: #1a1a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: moc-runner1 1.5s ease-in-out infinite;
}
.scn-mad-ox-chase .runner2 {
  position: absolute; bottom: 12%; left: 50%; width: 18px; height: 45px;
  background: #2a2a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: moc-runner2 1.8s ease-in-out infinite 0.3s;
}
.scn-mad-ox-chase .shadow {
  position: absolute; bottom: 10%; left: 8%; width: 70px; height: 8px;
  background: rgba(0,0,0,.35);
  border-radius: 50%;
  filter: blur(4px);
  animation: moc-shadow 2s ease-in-out infinite;
}
@keyframes moc-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes moc-sun { 0% { transform:scale(1); opacity:.8 } 50% { transform:scale(1.08); opacity:1 } 100% { transform:scale(.95); opacity:.75 } }
@keyframes moc-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes moc-ox {
  0%   { transform:translateX(0) translateY(0) rotate(0) }
  30%  { transform:translateX(20px) translateY(-3px) rotate(2deg) }
  60%  { transform:translateX(40px) translateY(-1px) rotate(-1deg) }
  100% { transform:translateX(60px) translateY(0) rotate(0) }
}
@keyframes moc-runner1 {
  0%   { transform:translateX(0) translateY(0) rotate(0) }
  25%  { transform:translateX(-10px) translateY(-2px) rotate(5deg) }
  50%  { transform:translateX(-20px) translateY(0) rotate(-3deg) }
  75%  { transform:translateX(-30px) translateY(-1px) rotate(4deg) }
  100% { transform:translateX(-40px) translateY(0) rotate(0) }
}
@keyframes moc-runner2 {
  0%   { transform:translateX(0) translateY(0) rotate(0) }
  25%  { transform:translateX(-8px) translateY(-1px) rotate(4deg) }
  50%  { transform:translateX(-16px) translateY(0) rotate(-2deg) }
  75%  { transform:translateX(-24px) translateY(-2px) rotate(5deg) }
  100% { transform:translateX(-32px) translateY(0) rotate(0) }
}
@keyframes moc-shadow {
  0%   { transform:scaleX(1) translateX(0); opacity:.35 }
  50%  { transform:scaleX(1.3) translateX(15px); opacity:.25 }
  100% { transform:scaleX(1) translateX(30px); opacity:.35 }
}

/* mad-ox-death */
.scn-mad-ox-death {
  background: linear-gradient(180deg, #2c2a3e 0%, #4a4e69 50%, #3a3e5a 100%),
              radial-gradient(ellipse at 50% 50%, #1a1a2e 0%, transparent 80%);
}
.scn-mad-ox-death .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #3a3c54 0%, transparent 100%);
  animation: mod-sky 12s ease-in-out infinite alternate;
}
.scn-mad-ox-death .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a3e3a 0%, #2a1f1a 100%);
  border-radius: 40% 40% 0 0;
  animation: mod-ground 10s ease-in-out infinite;
}
.scn-mad-ox-death .ox {
  position: absolute; bottom: 15%; left: 15%; width: 70px; height: 45px;
  background: #1a1512;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: mod-ox 3s ease-in-out infinite;
}
.scn-mad-ox-death .fallen {
  position: absolute; bottom: 8%; left: 35%; width: 30px; height: 40px;
  background: #2a2320;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: mod-fallen 6s ease-in-out infinite;
}
.scn-mad-ox-death .tower {
  position: absolute; bottom: 30%; left: 60%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 12px rgba(0,0,0,.5);
  animation: mod-tower 8s ease-in-out infinite;
}
.scn-mad-ox-death .cloud1 {
  position: absolute; top: 12%; left: -10%; width: 90px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.12) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: mod-cloud1 40s linear infinite;
}
.scn-mad-ox-death .cloud2 {
  position: absolute; top: 25%; right: -10%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,.08) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: mod-cloud2 50s linear infinite reverse;
}
@keyframes mod-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes mod-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes mod-ox {
  0%   { transform:translateX(0) translateY(0) rotate(0) }
  25%  { transform:translateX(15px) translateY(-2px) rotate(1deg) }
  50%  { transform:translateX(30px) translateY(0) rotate(-2deg) }
  75%  { transform:translateX(45px) translateY(-1px) rotate(1deg) }
  100% { transform:translateX(60px) translateY(0) rotate(0) }
}
@keyframes mod-fallen {
  0%   { opacity:.8; transform:rotate(-10deg) translateY(0) }
  50%  { opacity:.6; transform:rotate(-8deg) translateY(-2px) }
  100% { opacity:.8; transform:rotate(-10deg) translateY(0) }
}
@keyframes mod-tower {
  0%   { transform:rotate(0) scaleY(1) }
  50%  { transform:rotate(.3deg) scaleY(1.005) }
  100% { transform:rotate(0) scaleY(1) }
}
@keyframes mod-cloud1 { 0% { transform:translateX(0) } 100% { transform:translateX(120vw) } }
@keyframes mod-cloud2 { 0% { transform:translateX(0) } 100% { transform:translateX(-120vw) } }

/* mad-ox-moral */
.scn-mad-ox-moral {
  background: linear-gradient(180deg, #4a3728 0%, #2c1f14 50%, #1a0f08 100%),
              radial-gradient(circle at 50% 30%, #6a4a3a 0%, transparent 70%);
}
.scn-mad-ox-moral .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #5a4434 0%, #3a2a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: mom-wall 10s ease-in-out infinite;
}
.scn-mad-ox-moral .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4030 50%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0;
  animation: mom-floor 8s ease-in-out infinite;
}
.scn-mad-ox-moral .table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 8px;
  background: #5a4030;
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,.6);
  animation: mom-table 6s ease-in-out infinite;
}
.scn-mad-ox-moral .candle {
  position: absolute; bottom: 33%; left: 45%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e8c080 0%, #a07840 60%, #604828 100%);
  border-radius: 2px 2px 10% 10%;
  box-shadow: 0 0 24px 8px rgba(232,192,128,.7);
  animation: mom-candle 3s ease-in-out infinite alternate;
}
.scn-mad-ox-moral .book {
  position: absolute; bottom: 22%; left: 35%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #8a7050 0%, #5a4030 100%);
  border-radius: 0 0 10% 10% / 0 0 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: mom-book 5s ease-in-out infinite;
}
.scn-mad-ox-moral .rat {
  position: absolute; bottom: 15%; left: 50%; width: 16px; height: 10px;
  background: #4a3a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mom-rat 2.5s ease-in-out infinite;
}
.scn-mad-ox-moral .ox-fig {
  position: absolute; bottom: 20%; left: 60%; width: 20px; height: 14px;
  background: #8a7050;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: mom-ox-fig 7s ease-in-out infinite;
}
@keyframes mom-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes mom-floor { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.01) } 100% { transform:scaleX(1) } }
@keyframes mom-table { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes mom-candle {
  0%   { opacity:.85; box-shadow:0 0 18px 6px rgba(232,192,128,.5) }
  50%  { opacity:1; box-shadow:0 0 32px 12px rgba(232,192,128,.8) }
  100% { opacity:.9; box-shadow:0 0 22px 8px rgba(232,192,128,.6) }
}
@keyframes mom-book {
  0%   { transform:rotate(0deg) translateY(0) }
  50%  { transform:rotate(1deg) translateY(-1px) }
  100% { transform:rotate(0deg) translateY(0) }
}
@keyframes mom-rat {
  0%   { transform:translateX(0) translateY(0) rotate(0) }
  30%  { transform:translateX(3px) translateY(-2px) rotate(5deg) }
  60%  { transform:translateX(-2px) translateY(-1px) rotate(-3deg) }
  100% { transform:translateX(0) translateY(0) rotate(0) }
}
@keyframes mom-ox-fig {
  0%   { transform:scale(1) }
  50%  { transform:scale(1.03) }
  100% { transform:scale(1) }
}

.scn-tombless-epitaph-notes {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e05 100%), radial-gradient(circle at 40% 60%, #4a2a1a 0%, transparent 70%);
}
.scn-tombless-epitaph-notes .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); z-index: 0;
}
.scn-tombless-epitaph-notes .desk {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 20%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0e 100%); border-radius: 5px; box-shadow: 0 2px 8px rgba(0,0,0,.5);
}
.scn-tombless-epitaph-notes .candle {
  position: absolute; bottom: 25%; left: 40%; width: 12px; height: 40px; background: linear-gradient(180deg, #f0d0a0 0%, #c08050 100%); border-radius: 2px 2px 4px 4px; transform-origin: bottom center; animation: tbn-candle 6s ease-in-out infinite alternate;
}
.scn-tombless-epitaph-notes .glow {
  position: absolute; bottom: 30%; left: 38%; width: 20px; height: 20px; background: radial-gradient(circle, #ffd080 0%, transparent 70%); border-radius: 50%; animation: tbn-glow 3s ease-in-out infinite alternate;
}
.scn-tombless-epitaph-notes .papers {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 30px; background: #e0d0b0; border-radius: 2px; transform: rotate(-5deg); box-shadow: 2px 2px 6px rgba(0,0,0,.3); animation: tbn-papers 12s ease-in-out infinite alternate;
}
.scn-tombless-epitaph-notes .inkwell {
  position: absolute; bottom: 20%; right: 30%; width: 16px; height: 20px; background: #1a1a2a; border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; box-shadow: inset 0 -4px 0 #0a0a1a; animation: tbn-ink 20s ease-in-out infinite;
}
.scn-tombless-epitaph-notes .quill {
  position: absolute; bottom: 22%; right: 35%; width: 4px; height: 30px; background: linear-gradient(180deg, #e0d0c0 0%, #a08060 100%); transform: rotate(20deg); transform-origin: bottom; border-radius: 50% 50% 0 0; animation: tbn-quill 5s ease-in-out infinite;
}
@keyframes tbn-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes tbn-glow { 0% { opacity: 0.7; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes tbn-papers { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-6deg) translateY(0); } }
@keyframes tbn-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes tbn-quill { 0% { transform: rotate(20deg); } 50% { transform: rotate(25deg) translateY(-5px); } 100% { transform: rotate(20deg); } }

.scn-market-clock-inscription {
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%), radial-gradient(ellipse at 50% 30%, #4a4a3a 0%, transparent 70%);
}
.scn-market-clock-inscription .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0e 100%);
}
.scn-market-clock-inscription .clock-face {
  position: absolute; top: 20%; left: 50%; transform: translateX(-50%); width: 100px; height: 100px; background: radial-gradient(circle, #e0e0d0 0%, #b0b0a0 100%); border-radius: 50%; border: 4px solid #6a5a4a; box-shadow: 0 0 20px rgba(255,200,100,.2);
}
.scn-market-clock-inscription .hand-hour {
  position: absolute; top: 20%; left: 50%; width: 4px; height: 30px; background: #3a2a1a; transform-origin: bottom center; border-radius: 2px; animation: mci-hour 60s linear infinite;
}
.scn-market-clock-inscription .hand-minute {
  position: absolute; top: 20%; left: 50%; width: 3px; height: 40px; background: #2a1a0a; transform-origin: bottom center; animation: mci-minute 3600s linear infinite;
}
.scn-market-clock-inscription .pendulum {
  position: absolute; top: 35%; left: 50%; width: 6px; height: 60px; background: #6a4a2a; transform-origin: top center; border-radius: 2px; animation: mci-pendulum 2s ease-in-out infinite alternate;
}
.scn-market-clock-inscription .weight {
  position: absolute; top: 55%; left: 50%; transform: translateX(-50%); width: 20px; height: 20px; background: #4a3a2a; border-radius: 50%; box-shadow: 0 0 8px rgba(0,0,0,.3);
}
.scn-market-clock-inscription .glow {
  position: absolute; top: 18%; left: 48%; width: 20px; height: 20px; background: radial-gradient(circle, rgba(255,200,100,.3) 0%, transparent 70%); border-radius: 50%; animation: mci-glow 4s ease-in-out infinite alternate;
}
@keyframes mci-hour { 0% { transform: translate(-50%, -50%) rotate(0deg); } 100% { transform: translate(-50%, -50%) rotate(360deg); } }
@keyframes mci-minute { 0% { transform: translate(-50%, -50%) rotate(0deg); } 100% { transform: translate(-50%, -50%) rotate(360deg); } }
@keyframes mci-pendulum { 0% { transform: rotate(-15deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(15deg); } }
@keyframes mci-glow { 0% { opacity:0.5; transform:scale(0.8); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.6; transform:scale(1); } }

.scn-madman-lethargist-tale {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%), radial-gradient(circle at 60% 50%, #5a3a2a 0%, transparent 70%);
}
.scn-madman-lethargist-tale .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
}
.scn-madman-lethargist-tale .bed {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10px; box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-madman-lethargist-tale .figure-mad {
  position: absolute; bottom: 25%; left: 20%; width: 20px; height: 30px; background: #2a1a0e; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: mlt-mad 0.8s ease-in-out infinite alternate;
}
.scn-madman-lethargist-tale .figure-leth {
  position: absolute; bottom: 25%; right: 30%; width: 20px; height: 30px; background: #1a1a0e; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: mlt-leth 4s ease-in-out infinite;
}
.scn-madman-lethargist-tale .pillow {
  position: absolute; bottom: 28%; right: 35%; width: 25px; height: 15px; background: #6a5a4a; border-radius: 30%; transform: rotate(10deg); animation: mlt-pillow 2s ease-in-out infinite alternate;
}
.scn-madman-lethargist-tale .lamp {
  position: absolute; top: 30%; right: 20%; width: 10px; height: 30px; background: #4a3a2a; border-radius: 0 0 50% 50%; animation: mlt-lamp 3s ease-in-out infinite alternate;
}
.scn-madman-lethargist-tale .glow {
  position: absolute; top: 28%; right: 18%; width: 30px; height: 30px; background: radial-gradient(circle, #ffd080 0%, transparent 70%); animation: mlt-glow 3s ease-in-out infinite alternate;
}
@keyframes mlt-mad { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(10deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes mlt-leth { 0% { transform: translateY(0); } 25% { transform: translateY(2px); } 50% { transform: translateY(0); } 100% { transform: translateY(0); } }
@keyframes mlt-pillow { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes mlt-lamp { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(0.9); } }
@keyframes mlt-glow { 0% { opacity:0.6; transform:scale(0.8); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.7; transform:scale(1); } }

.scn-visionary-hope {
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%), radial-gradient(circle at 30% 60%, #3a1a1a 0%, transparent 70%);
}
.scn-visionary-hope .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a0a0a 0%, #0a0000 100%);
}
.scn-visionary-hope .bed {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 35%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 5px; box-shadow: 0 4px 15px rgba(0,0,0,.5);
}
.scn-visionary-hope .figure {
  position: absolute; bottom: 18%; left: 30%; width: 25px; height: 50px; background: #1a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: vhh-figure 10s ease-in-out infinite;
}
.scn-visionary-hope .hand {
  position: absolute; bottom: 30%; left: 35%; width: 10px; height: 15px; background: #2a1a1a; border-radius: 50%; transform-origin: bottom; animation: vhh-hand 8s ease-in-out infinite;
}
.scn-visionary-hope .candle {
  position: absolute; bottom: 22%; right: 25%; width: 8px; height: 30px; background: linear-gradient(180deg, #e0c0a0 0%, #a08050 100%); border-radius: 2px; animation: vhh-candle 6s ease-in-out infinite alternate;
}
.scn-visionary-hope .glow {
  position: absolute; bottom: 20%; right: 22%; width: 20px; height: 20px; background: radial-gradient(circle, rgba(255,180,100,0.4) 0%, transparent 70%); animation: vhh-glow 3s ease-in-out infinite alternate;
}
.scn-visionary-hope .shadow {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 10px; background: #0a0000; border-radius: 50%; animation: vhh-shadow 10s ease-in-out infinite;
}
@keyframes vhh-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes vhh-hand { 0% { transform: rotate(0deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(0deg); } }
@keyframes vhh-candle { 0% { transform: scaleY(1); opacity:0.8; } 50% { transform: scaleY(1.03); opacity:1; } 100% { transform: scaleY(0.97); opacity:0.9; } }
@keyframes vhh-glow { 0% { opacity:0.3; transform:scale(0.8); } 50% { opacity:0.6; transform:scale(1.3); } 100% { opacity:0.4; transform:scale(1); } }
@keyframes vhh-shadow { 0% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.8; transform: scaleX(1.1); } 100% { opacity:0.5; transform: scaleX(1); } }

.scn-robes-pierre-legendre { background: linear-gradient(180deg, #0d1b2a 0%, #1b2838 50%, #16213e 100%), radial-gradient(ellipse at 50% 100%, #1a1a3e 0%, transparent 70%); }
.scn-robes-pierre-legendre .bg { position:absolute; inset:0; background: linear-gradient(135deg, #0d1b2a 30%, #1a1a3e 70%); animation: leg-bg 8s ease-in-out infinite alternate; }
.scn-robes-pierre-legendre .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a1a2e 0%, #2a2a3e 60%, transparent 100%); }
.scn-robes-pierre-legendre .table { position:absolute; bottom:20%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-robes-pierre-legendre .candle { position:absolute; bottom:28%; left:48%; width:8px; height:20px; background: linear-gradient(180deg, #d4a373 0%, #b5835a 100%); border-radius: 2px 2px 4px 4px; }
.scn-robes-pierre-legendre .flame { position:absolute; bottom:42%; left:48%; width:10px; height:18px; background: radial-gradient(ellipse at 50% 100%, #f4d03f 0%, #e67e22 30%, transparent 80%); border-radius: 50%; animation: leg-flame 2s ease-in-out infinite alternate; }
.scn-robes-pierre-legendre .observer { position:absolute; bottom:10%; left:20%; width:20px; height:80px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: leg-fig1 6s ease-in-out infinite; }
.scn-robes-pierre-legendre .observed { position:absolute; bottom:12%; left:60%; width:22px; height:70px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: leg-fig2 6s ease-in-out infinite; }
.scn-robes-pierre-legendre .shadow { position:absolute; bottom:5%; left:15%; width:80px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%); filter: blur(8px); animation: leg-shadow 6s ease-in-out infinite; }
.scn-robes-pierre-legendre .glow { position:absolute; inset:0; background: radial-gradient(ellipse at 48% 35%, rgba(255,200,100,0.2) 0%, transparent 60%); animation: leg-glow 4s ease-in-out infinite alternate; }
@keyframes leg-bg   { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes leg-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.9; } 50% { transform: scaleY(1.4) translateY(-3px); opacity:1; } 100% { transform: scaleY(0.8) translateY(1px); opacity:0.8; } }
@keyframes leg-fig1 { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes leg-fig2 { 0% { transform: translateX(0) rotate(0) scaleY(1); } 50% { transform: translateX(-1px) rotate(-0.5deg) scaleY(1.02); } 100% { transform: translateX(1px) rotate(0.5deg) scaleY(0.98); } }
@keyframes leg-shadow { 0% { opacity:0.6; transform: scaleX(1); } 50% { opacity:0.8; transform: scaleX(1.1); } 100% { opacity:0.5; transform: scaleX(0.9); } }
@keyframes leg-glow { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.2; } }

.scn-robes-pierre-perfidy { background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 0%, #4a2a1a 0%, transparent 70%); }
.scn-robes-pierre-perfidy .bg { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a1a 30%, #1a0a0a 70%); animation: per-bg 8s ease-in-out infinite alternate; }
.scn-robes-pierre-perfidy .throne { position:absolute; bottom:15%; left:30%; width:60px; height:80px; background: linear-gradient(180deg, #8b5a2b 0%, #5a3a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,0.5); }
.scn-robes-pierre-perfidy .crown { position:absolute; bottom:76%; left:35%; width:30px; height:15px; background: linear-gradient(90deg, #c49a3c 0%, #d4a843 50%, #b0892e 100%); clip-path: polygon(0% 100%, 20% 0%, 40% 100%, 60% 0%, 80% 100%, 100% 0%, 100% 100%); animation: per-crown 12s ease-in-out infinite alternate; }
.scn-robes-pierre-perfidy .serpent { position:absolute; bottom:20%; left:20%; width:80px; height:20px; background: linear-gradient(90deg, #2e8b57 0%, #3cb371 30%, #2e8b57 60%, #228b22 100%); border-radius: 50% 50% 50% 50%; filter: blur(2px); animation: per-serp 8s ease-in-out infinite; }
.scn-robes-pierre-perfidy .heart { position:absolute; bottom:35%; left:38%; width:12px; height:12px; background: radial-gradient(circle, #c8553d 0%, #5e1a1d 70%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(200,85,61,0.5); animation: per-heart 3s ease-in-out infinite alternate; }
.scn-robes-pierre-perfidy .veil { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, transparent 0%, rgba(0,0,0,0.6) 100%); animation: per-veil 6s ease-in-out infinite alternate; }
.scn-robes-pierre-perfidy .glow { position:absolute; bottom:20%; left:20%; width:120px; height:60px; background: radial-gradient(ellipse, rgba(255,200,100,0.3) 0%, transparent 60%); animation: per-glow 5s ease-in-out infinite alternate; }
@keyframes per-bg   { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes per-crown { 0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(1px); } }
@keyframes per-serp  { 0% { transform: translateX(0) skewX(0); } 50% { transform: translateX(10px) skewX(2deg); } 100% { transform: translateX(-5px) skewX(-1deg); } }
@keyframes per-heart { 0% { transform: scale(1); opacity:0.7; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(0.9); opacity:0.6; } }
@keyframes per-veil  { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes per-glow  { 0% { transform: scale(1); opacity:0.4; } 50% { transform: scale(1.1); opacity:0.6; } 100% { transform: scale(0.9); opacity:0.3; } }

.scn-robes-pierre-liberty { background: linear-gradient(180deg, #0d1117 0%, #1a1a2e 50%, #16213e 100%), radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, transparent 70%); }
.scn-robes-pierre-liberty .bg { position:absolute; inset:0; background: linear-gradient(135deg, #0d1117 30%, #1a1a2e 70%); animation: lib-bg 8s ease-in-out infinite alternate; }
.scn-robes-pierre-liberty .figure { position:absolute; bottom:10%; left:35%; width:30px; height:100px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lib-fig 4s ease-in-out infinite; }
.scn-robes-pierre-liberty .torch { position:absolute; bottom:55%; left:40%; width:4px; height:40px; background: linear-gradient(180deg, #8b5a2b 0%, #5a3a1a 100%); border-radius: 2px; transform: rotate(15deg); }
.scn-robes-pierre-liberty .flame { position:absolute; bottom:78%; left:39.5%; width:12px; height:24px; background: radial-gradient(ellipse at 50% 100%, #f4d03f 0%, #e67e22 30%, #d35400 50%, transparent 70%); border-radius: 50%; animation: lib-flame 2s ease-in-out infinite alternate; }
.scn-robes-pierre-liberty .halo { position:absolute; bottom:65%; left:30%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 60%); animation: lib-halo 4s ease-in-out infinite alternate; }
.scn-robes-pierre-liberty .shadow1 { position:absolute; bottom:5%; left:10%; width:40px; height:80px; background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: lib-sh1 6s ease-in-out infinite; }
.scn-robes-pierre-liberty .shadow2 { position:absolute; bottom:5%; right:10%; width:35px; height:70px; background: linear-gradient(180deg, rgba(0,0,0,0.7) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: lib-sh2 7s ease-in-out infinite; }
.scn-robes-pierre-liberty .spark { position:absolute; bottom:80%; left:42%; width:3px; height:3px; background: white; border-radius: 50%; box-shadow: 0 0 4px 2px rgba(255,200,100,0.6); animation: lib-spark 3s ease-in-out infinite; }
@keyframes lib-bg   { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes lib-fig  { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes lib-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.9; } 50% { transform: scaleY(1.3) translateY(-2px); opacity:1; } 100% { transform: scaleY(0.8) translateY(1px); opacity:0.8; } }
@keyframes lib-halo { 0% { transform: scale(1); opacity:0.3; } 50% { transform: scale(1.2); opacity:0.5; } 100% { transform: scale(0.9); opacity:0.2; } }
@keyframes lib-sh1  { 0% { transform: translateX(0); opacity:0.6; } 50% { transform: translateX(5px); opacity:0.8; } 100% { transform: translateX(-3px); opacity:0.5; } }
@keyframes lib-sh2  { 0% { transform: translateX(0); opacity:0.5; } 50% { transform: translateX(-4px); opacity:0.7; } 100% { transform: translateX(2px); opacity:0.4; } }
@keyframes lib-spark { 0% { transform: translate(0,0) scale(1); opacity:0; } 30% { transform: translate(5px,-8px) scale(1.5); opacity:1; } 60% { transform: translate(-3px,-2px) scale(0.8); opacity:0.6; } 100% { transform: translate(0,0) scale(0); opacity:0; } }

.scn-kubla-khan-variants{background:linear-gradient(180deg,#3a2a1a,#2a1a0a),radial-gradient(circle at 50% 10%,#4a3a2a,transparent 60%)}
.scn-kubla-khan-variants .wall{position:absolute;inset:0 0 35% 0;background:linear-gradient(180deg,#4a3a2a,#2a1a0a)}
.scn-kubla-khan-variants .desk{position:absolute;bottom:0;left:10%;right:10%;height:35%;background:linear-gradient(180deg,#5a4a3a,#3a2a1a);border-radius:4% 4% 0 0}
.scn-kubla-khan-variants .book{position:absolute;bottom:20%;left:40%;width:60px;height:80px;background:linear-gradient(135deg,#6a5a4a,#4a3a2a);border-radius:4px;transform:rotate(-5deg);animation:kkv1-book 12s infinite}
.scn-kubla-khan-variants .candle{position:absolute;bottom:55%;left:50%;width:8px;height:50px;background:linear-gradient(180deg,#e8d8c0,#c8b8a0);border-radius:4px;transform:translateX(-50%);animation:kkv1-candle 4s infinite}
.scn-kubla-khan-variants .flame{position:absolute;bottom:78%;left:50%;width:12px;height:20px;background:radial-gradient(circle,#ffd080,#c08040);border-radius:50%;transform:translateX(-50%);box-shadow:0 0 20px 6px #c08040,0 0 40px 12px rgba(192,128,64,.4);animation:kkv1-flame 2s infinite alternate}
.scn-kubla-khan-variants .glow{position:absolute;bottom:60%;left:40%;width:120px;height:120px;background:radial-gradient(circle,rgba(255,200,100,.3),transparent 70%);border-radius:50%;animation:kkv1-glow 6s infinite alternate}
@keyframes kkv1-book{0%{transform:rotate(-5deg) translateY(0)}50%{transform:rotate(-5deg) translateY(-2px)}100%{transform:rotate(-5deg) translateY(0)}}
@keyframes kkv1-candle{0%,100%{opacity:.9}50%{opacity:1}}
@keyframes kkv1-flame{0%{transform:translateX(-50%) scaleY(1) rotate(-2deg)}50%{transform:translateX(-50%) scaleY(1.2) rotate(2deg)}100%{transform:translateX(-50%) scaleY(1) rotate(0)}}
@keyframes kkv1-glow{0%{opacity:.5;transform:scale(.9)}50%{opacity:.8;transform:scale(1.1)}100%{opacity:.6;transform:scale(1)}}

.scn-kubla-khan-variants-two{background:linear-gradient(180deg,#2a2a1a,#1a1a0a),radial-gradient(circle at 50% 20%,#3a3a2a,transparent 70%)}
.scn-kubla-khan-variants-two .page{position:absolute;bottom:10%;left:20%;right:20%;top:20%;background:linear-gradient(135deg,#e8d8c0,#c8b8a0);border-radius:4px;box-shadow:inset 0 0 30px rgba(0,0,0,.3);animation:kkv2-page 10s infinite}
.scn-kubla-khan-variants-two .margin{position:absolute;top:25%;left:22%;width:10%;height:70%;background:linear-gradient(180deg,transparent 30%,#b8a890 30%,#b8a890 80%,transparent 80%);opacity:.5;animation:kkv2-margin 8s infinite alternate}
.scn-kubla-khan-variants-two .emend{position:absolute;top:40%;left:60%;width:20px;height:8px;background:#8a7a6a;border-radius:50%;transform:rotate(15deg);box-shadow:0 2px 4px rgba(0,0,0,.3);animation:kkv2-emend 6s infinite alternate}
.scn-kubla-khan-variants-two .pencil{position:absolute;bottom:15%;left:30%;width:6px;height:70px;background:linear-gradient(180deg,#c0b0a0 80%,#2a2a2a 80%);transform:rotate(20deg);border-radius:2px;animation:kkv2-pencil 14s infinite}
.scn-kubla-khan-variants-two .hand{position:absolute;bottom:10%;left:50%;width:30px;height:50px;background:linear-gradient(180deg,#8a7a6a 0%,#6a5a4a 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:translateX(-50%) rotate(-10deg);animation:kkv2-hand 4s infinite alternate}
@keyframes kkv2-page{0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}
@keyframes kkv2-margin{0%{opacity:.3}50%{opacity:.6}100%{opacity:.4}}
@keyframes kkv2-emend{0%{transform:rotate(15deg) scale(1)}50%{transform:rotate(20deg) scale(1.1)}100%{transform:rotate(15deg) scale(1)}}
@keyframes kkv2-pencil{0%{transform:rotate(20deg) translateY(0)}50%{transform:rotate(20deg) translateY(-3px)}100%{transform:rotate(20deg) translateY(0)}}
@keyframes kkv2-hand{0%{transform:translateX(-50%) rotate(-10deg) scaleY(1)}50%{transform:translateX(-50%) rotate(-5deg) scaleY(1.05)}100%{transform:translateX(-50%) rotate(-10deg) scaleY(1)}}

.scn-mad-ox-intro{background:linear-gradient(180deg,#7a8a8a 0%,#b0c0c0 50%,#d0d8d0 100%),radial-gradient(circle at 30% 20%,#c0d0d0,transparent 60%)}
.scn-mad-ox-intro .sky{position:absolute;inset:0 0 40% 0;background:linear-gradient(180deg,#8a9a9a,#c0d0c0);animation:moi-sky 20s infinite alternate}
.scn-mad-ox-intro .clouds{position:absolute;top:10%;left:0;right:0;height:30%;background:linear-gradient(180deg,rgba(255,255,255,.6) 0%,transparent 100%);filter:blur(6px);animation:moi-clouds 40s infinite linear}
.scn-mad-ox-intro .sun{position:absolute;top:15%;left:20%;width:60px;height:60px;background:radial-gradient(circle,#fff0c0,#c0b080);border-radius:50%;box-shadow:0 0 40px 20px rgba(255,240,192,.5);animation:moi-sun 8s infinite alternate}
.scn-mad-ox-intro .grass{position:absolute;bottom:0;left:0;right:0;height:45%;background:linear-gradient(180deg,#6a8a4a,#4a6a2a);border-radius:20% 80% 0 0;animation:moi-grass 6s infinite}
.scn-mad-ox-intro .ox{position:absolute;bottom:20%;left:30%;width:80px;height:60px;background:radial-gradient(ellipse at 40% 50%,#8a6a4a,#6a4a2a);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:translateX(-50%);animation:moi-ox 3s infinite ease-in-out}
.scn-mad-ox-intro .fence{position:absolute;bottom:40%;left:10%;right:10%;height:4px;background:linear-gradient(90deg,#5a4a3a,#7a6a5a,#5a4a3a);border-radius:2px;animation:moi-fence 2s infinite}
@keyframes moi-sky{0%{opacity:.8}50%{opacity:1}100%{opacity:.9}}
@keyframes moi-clouds{0%{transform:translateX(-50px)}50%{transform:translateX(50vw)}100%{transform:translateX(calc(100vw + 50px))}}
@keyframes moi-sun{0%{opacity:.6;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}100%{opacity:.8;transform:scale(1)}}
@keyframes moi-grass{0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}
@keyframes moi-ox{0%{transform:translateX(-50%) scaleY(1) rotate(0)}50%{transform:translateX(-50%) scaleY(1.1) rotate(3deg)}100%{transform:translateX(-50%) scaleY(1) rotate(0)}}
@keyframes moi-fence{0%{opacity:.7}50%{opacity:.9}100%{opacity:.8}}

.scn-mad-ox-gathering{background:linear-gradient(180deg,#7a9aa0 0%,#c0d0c0 60%,#e0d090 100%),radial-gradient(circle at 80% 30%,#f0e080,transparent 70%)}
.scn-mad-ox-gathering .sky{position:absolute;inset:0 0 40% 0;background:linear-gradient(180deg,#8a9aaa,#b0c0b0);animation:mog-sky 12s infinite alternate}
.scn-mad-ox-gathering .ground{position:absolute;bottom:0;left:0;right:0;height:55%;background:linear-gradient(180deg,#5a7a3a,#3a5a2a);border-radius:10% 90% 0 0;animation:mog-ground 8s infinite}
.scn-mad-ox-gathering .hedge{position:absolute;bottom:45%;left:40%;width:80px;height:50px;background:radial-gradient(ellipse at 50% 100%,#4a6a2a,#2a4a1a);border-radius:50% 50% 0 0;animation:mog-hedge 2s infinite alternate}
.scn-mad-ox-gathering .ox{position:absolute;bottom:20%;left:20%;width:70px;height:50px;background:radial-gradient(ellipse at 50% 50%,#8a6a4a,#6a4a2a);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:translateX(-50%);animation:mog-ox 1.5s infinite ease-in-out}
.scn-mad-ox-gathering .mob{position:absolute;bottom:30%;right:10%;width:40px;height:70px;background:linear-gradient(180deg,#2a2a2a,#1a1a1a);border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;transform:translateX(-50%);animation:mog-mob 3s infinite}
.scn-mad-ox-gathering .dog{position:absolute;bottom:35%;left:35%;width:30px;height:20px;background:radial-gradient(ellipse at 40% 50%,#6a6a6a,#4a4a4a);border-radius:50% 50% 40% 40%;animation:mog-dog .8s infinite alternate}
@keyframes mog-sky{0%{opacity:.7}50%{opacity:1}100%{opacity:.8}}
@keyframes mog-ground{0%{transform:translateY(0)}50%{transform:translateY(-5px)}100%{transform:translateY(0)}}
@keyframes mog-hedge{0%{transform:scaleY(1)}50%{transform:scaleY(1.15)}100%{transform:scaleY(1)}}
@keyframes mog-ox{0%{transform:translateX(-50%) translateY(0) rotate(0)}30%{transform:translateX(-50%) translateY(-8px) rotate(5deg)}70%{transform:translateX(-50%) translateY(2px) rotate(-5deg)}100%{transform:translateX(-50%) translateY(0) rotate(0)}}
@keyframes mog-mob{0%{transform:translateX(-50%) rotate(0)}50%{transform:translateX(-50%) rotate(10deg)}100%{transform:translateX(-50%) rotate(-10deg)}}
@keyframes mog-dog{0%{transform:translateY(0)}50%{transform:translateY(-10px)}100%{transform:translateY(0)}}

.scn-love-hope-patience-linenotes { background: linear-gradient(145deg, #2a1a10, #1a0e08), radial-gradient(ellipse at 40% 50%, #3a2a1a, transparent); }
.scn-love-hope-patience-linenotes .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 60%, #4a3a2a, transparent); animation: lhp-glow 12s ease-in-out infinite alternate; }
.scn-love-hope-patience-linenotes .window { position:absolute; top:12%; right:18%; width:50px; height:70px; background: linear-gradient(180deg, #a08060, #604030); border-radius: 4px; box-shadow: 0 0 20px 4px rgba(200,160,120,0.4); animation: lhp-window 3s ease-in-out infinite alternate; }
.scn-love-hope-patience-linenotes .moonbeam { position:absolute; top:10%; left:55%; width:100px; height:6px; background: linear-gradient(90deg, transparent, rgba(210,200,180,0.4), transparent); transform: rotate(20deg); transform-origin: left center; animation: lhp-beam 8s ease-in-out infinite alternate; }
.scn-love-hope-patience-linenotes .statue { position:absolute; bottom:25%; left:38%; width:28px; height:75px; background: linear-gradient(180deg, #d0c0b0, #a09080); border-radius: 45% 45% 20% 20% / 60% 60% 40% 40%; box-shadow: 0 0 12px rgba(200,180,160,0.6); animation: lhp-statue 6s ease-in-out infinite; }
.scn-love-hope-patience-linenotes .pedestal { position:absolute; bottom:20%; left:34%; width:48px; height:18px; background: #706050; border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); animation: lhp-pedestal 10s ease-in-out infinite; }
.scn-love-hope-patience-linenotes .wreath { position:absolute; top:22%; left:42%; width:36px; height:36px; background: radial-gradient(circle, transparent 35%, #e0b060 35%, #e0b060 45%, transparent 45%); border-radius: 50%; animation: lhp-wreath 12s linear infinite; }
@keyframes lhp-glow { 0% {opacity:0.8} 50% {opacity:1} 100% {opacity:0.7} }
@keyframes lhp-window { 0% { box-shadow:0 0 10px 2px rgba(200,160,120,0.3); } 50% { box-shadow:0 0 30px 8px rgba(200,160,120,0.6); } 100% { box-shadow:0 0 12px 4px rgba(200,160,120,0.4); } }
@keyframes lhp-beam { 0% { opacity:0.3; transform:rotate(18deg) } 50% { opacity:0.6; transform:rotate(22deg) } 100% { opacity:0.4; transform:rotate(20deg) } }
@keyframes lhp-statue { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-3px) rotate(1deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes lhp-pedestal { 0%{transform:translateY(0)}50%{transform:translateY(-1px)}100%{transform:translateY(0)} }
@keyframes lhp-wreath { 0% { transform:rotate(0deg) scale(1) } 50% { transform:rotate(180deg) scale(1.05) } 100% { transform:rotate(360deg) scale(1) } }

.scn-album-for-miss-trevenen { background: linear-gradient(135deg, #2a1a10, #1a0e08), radial-gradient(ellipse at 50% 70%, #3a2a1a, transparent); }
.scn-album-for-miss-trevenen .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 20% 30%, #4a3a2a, transparent); animation: amt-bg 15s ease-in-out infinite alternate; }
.scn-album-for-miss-trevenen .desk { position:absolute; bottom:10%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #5a4a3a, #3a2a1a); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.5); }
.scn-album-for-miss-trevenen .album { position:absolute; bottom:20%; left:35%; width:120px; height:100px; background: linear-gradient(135deg, #7a6a5a, #5a4a3a); border-radius: 8px; transform: skewX(-5deg); box-shadow: 0 6px 12px rgba(0,0,0,0.6); animation: amt-album 4s ease-in-out infinite; }
.scn-album-for-miss-trevenen .hand { position:absolute; bottom:30%; left:45%; width:24px; height:50px; background: linear-gradient(180deg, #d0c0b0, #a09080); border-radius: 50% 30% 20% 20% / 60% 40% 40% 40%; transform-origin: bottom center; animation: amt-hand 5s ease-in-out infinite; }
.scn-album-for-miss-trevenen .quill { position:absolute; bottom:35%; left:60%; width:4px; height:80px; background: linear-gradient(180deg, #c0b0a0, #a09080); transform: rotate(25deg); transform-origin: bottom center; border-radius: 50% 50% 0 0; animation: amt-quill 6s ease-in-out infinite; }
.scn-album-for-miss-trevenen .inkwell { position:absolute; bottom:22%; left:62%; width:20px; height:20px; background: #2a2a1a; border-radius: 50% 50% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,0.4); animation: amt-inkwell 3s ease-in-out infinite; }
.scn-album-for-miss-trevenen .flowers { position:absolute; bottom:25%; left:25%; width:60px; height:40px; background: radial-gradient(circle at 20% 50%, #e0b060 4px, transparent 4px), radial-gradient(circle at 50% 40%, #d09060 5px, transparent 5px), radial-gradient(circle at 80% 60%, #c08050 3px, transparent 3px); animation: amt-flowers 8s ease-in-out infinite alternate; }
@keyframes amt-bg { 0%{opacity:0.7}50%{opacity:1}100%{opacity:0.8} }
@keyframes amt-album { 0%{transform:skewX(-5deg) translateY(0)}50%{transform:skewX(-3deg) translateY(-2px)}100%{transform:skewX(-5deg) translateY(0)} }
@keyframes amt-hand { 0%{transform:translateX(0) rotate(0deg)}50%{transform:translateX(8px) rotate(5deg)}100%{transform:translateX(0) rotate(0deg)} }
@keyframes amt-quill { 0%{transform:rotate(22deg) translateY(0)}50%{transform:rotate(28deg) translateY(-2px)}100%{transform:rotate(22deg) translateY(0)} }
@keyframes amt-inkwell { 0%{transform:translateY(0)}50%{transform:translateY(-1px)}100%{transform:translateY(0)} }
@keyframes amt-flowers { 0%{opacity:0.8;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}100%{opacity:0.9;transform:scale(1)} }

.scn-barbour-album { background: linear-gradient(180deg, #1a1510, #0a0a08), radial-gradient(ellipse at 50% 60%, #2a2018, transparent); }
.scn-barbour-album .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 40%, #3a2a1a, transparent); animation: ba-bg 20s ease-in-out infinite alternate; }
.scn-barbour-album .desk { position:absolute; bottom:15%; left:5%; right:5%; height:35%; background: linear-gradient(180deg, #4a3a2a, #2a1a10); border-radius: 8% 8% 0 0; box-shadow: inset 0 6px 10px rgba(0,0,0,0.6); }
.scn-barbour-album .book { position:absolute; bottom:25%; left:30%; width:100px; height:80px; background: linear-gradient(135deg, #5a4a3a, #3a2a1a); border-radius: 4px; transform: perspective(200px) rotateX(5deg); box-shadow: 0 8px 16px rgba(0,0,0,0.5); animation: ba-book 6s ease-in-out infinite alternate; }
.scn-barbour-album .globe { position:absolute; bottom:30%; left:55%; width:60px; height:60px; border-radius: 50%; background: linear-gradient(135deg, #4a6a3a, #2a4a2a), radial-gradient(circle at 30% 30%, #6a8a5a, transparent); box-shadow: 0 4px 10px rgba(0,0,0,0.4); animation: ba-globe 10s linear infinite; }
.scn-barbour-album .ship { position:absolute; bottom:30%; left:10%; width:50px; height:30px; background: linear-gradient(180deg, #3a2a1a, #1a0a08); clip-path: polygon(0% 100%, 30% 20%, 60% 0%, 100% 30%, 100% 100%); animation: ba-ship 4s ease-in-out infinite alternate; }
.scn-barbour-album .papers { position:absolute; bottom:22%; left:20%; width:30px; height:40px; background: #d0c0a0; border-radius: 2px; transform: rotate(-10deg); box-shadow: 2px 2px 4px rgba(0,0,0,0.3); animation: ba-papers 8s ease-in-out infinite; }
@keyframes ba-bg { 0%{opacity:0.6}50%{opacity:1}100%{opacity:0.7} }
@keyframes ba-book { 0%{transform:perspective(200px) rotateX(5deg) translateY(0)}50%{transform:perspective(200px) rotateX(7deg) translateY(-2px)}100%{transform:perspective(200px) rotateX(5deg) translateY(0)} }
@keyframes ba-globe { 0% { transform: rotateX(20deg) rotateY(0deg); } 50% { transform: rotateX(20deg) rotateY(180deg); } 100% { transform: rotateX(20deg) rotateY(360deg); } }
@keyframes ba-ship { 0%{transform:translateX(0) rotate(0deg)}50%{transform:translateX(5px) rotate(5deg)}100%{transform:translateX(0) rotate(0deg)} }
@keyframes ba-papers { 0%{transform:rotate(-10deg) translateY(0)}50%{transform:rotate(-8deg) translateY(-2px)}100%{transform:rotate(-10deg) translateY(0)} }

.scn-barbour-notes { background: linear-gradient(180deg, #1a1210, #0a0808), radial-gradient(ellipse at 50% 80%, #2a2018, transparent); }
.scn-barbour-notes .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #3a2a1a, transparent); animation: bn-bg 18s ease-in-out infinite alternate; }
.scn-barbour-notes .desk { position:absolute; bottom:10%; left:5%; right:5%; height:40%; background: linear-gradient(180deg, #4a3a2a, #2a1a10); border-radius: 8% 8% 0 0; box-shadow: inset 0 6px 10px rgba(0,0,0,0.6); }
.scn-barbour-notes .paper { position:absolute; bottom:25%; left:30%; width:120px; height:90px; background: linear-gradient(180deg, #d0c0a0, #b0a080); border-radius: 4px; transform: perspective(200px) rotateX(2deg); box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: bn-paper 6s ease-in-out infinite alternate; }
.scn-barbour-notes .candle { position:absolute; bottom:30%; left:20%; width:10px; height:50px; background: linear-gradient(180deg, #e0d0c0, #c0b0a0); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 10px rgba(200,180,160,0.3); animation: bn-candle 4s ease-in-out infinite; }
.scn-barbour-notes .flame { position:absolute; bottom:70%; left:20%; width:12px; height:18px; background: radial-gradient(circle, #ffd060, #e08040); border-radius: 50% 50% 40% 40%; box-shadow: 0 0 20px 8px rgba(255,200,100,0.5); animation: bn-flame 2s ease-in-out infinite alternate; }
.scn-barbour-notes .quill { position:absolute; bottom:35%; left:50%; width:4px; height:70px; background: linear-gradient(180deg, #c0b0a0, #a09080); transform: rotate(-15deg); transform-origin: bottom center; border-radius: 50% 50% 0 0; animation: bn-quill 5s ease-in-out infinite; }
.scn-barbour-notes .ink { position:absolute; bottom:22%; left:52%; width:18px; height:18px; background: #1a1a0a; border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: bn-ink 8s ease-in-out infinite; }
@keyframes bn-bg { 0%{opacity:0.7}50%{opacity:1}100%{opacity:0.8} }
@keyframes bn-paper { 0%{transform:perspective(200px) rotateX(2deg) translateY(0)}50%{transform:perspective(200px) rotateX(4deg) translateY(-2px)}100%{transform:perspective(200px) rotateX(2deg) translateY(0)} }
@keyframes bn-candle { 0%{transform:translateY(0)}50%{transform:translateY(-1px)}100%{transform:translateY(0)} }
@keyframes bn-flame { 0%{transform:scaleY(0.8); opacity:0.8}50%{transform:scaleY(1); opacity:1}100%{transform:scaleY(0.9); opacity:0.9} }
@keyframes bn-quill { 0%{transform:rotate(-15deg) translateY(0)}50%{transform:rotate(-12deg) translateY(-1px)}100%{transform:rotate(-15deg) translateY(0)} }
@keyframes bn-ink { 0%{transform:translateY(0)}50%{transform:translateY(-1px)}100%{transform:translateY(0)} }

.scn-pledged-hearts { background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 70%, #5a3a2a 0%, transparent 60%); }
.scn-pledged-hearts .bg-wall { position:absolute; inset:0; background:linear-gradient(135deg,#3a2a1a 0%,#2a1a0a 100%); box-shadow:inset 0 0 40px #1a0a00; animation:ph-wall 12s ease-in-out infinite alternate; }
.scn-pledged-hearts .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg,#2a1a0a 0%,#1a0a00 100%); box-shadow:inset 0 8px 20px #000; }
.scn-pledged-hearts .figure-left { position:absolute; bottom:20%; left:30%; width:40px; height:100px; background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%); border-radius:50% 50% 30% 30%/60% 60% 30% 30%; transform-origin:bottom center; animation:ph-figure-l 4s ease-in-out infinite; }
.scn-pledged-hearts .figure-right { position:absolute; bottom:20%; left:55%; width:40px; height:100px; background:linear-gradient(180deg,#2a1a2a 0%,#1a0a1a 100%); border-radius:50% 50% 30% 30%/60% 60% 30% 30%; transform-origin:bottom center; animation:ph-figure-r 4s ease-in-out infinite 0.5s; }
.scn-pledged-hearts .heart-glow { position:absolute; bottom:50%; left:50%; width:20px; height:20px; margin-left:-10px; margin-bottom:-10px; background:radial-gradient(circle,#ffd080 0%,#c07040 70%); border-radius:50%; box-shadow:0 0 30px 10px rgba(255,208,128,.6), 0 0 60px 20px rgba(192,112,64,.3); animation:ph-heart 3s ease-in-out infinite; }
.scn-pledged-hearts .candle { position:absolute; bottom:40%; left:35%; width:6px; height:20px; background:linear-gradient(180deg,#e0a060 0%,#804020 100%); border-radius:2px; box-shadow:0 0 10px 2px #ffa040; animation:ph-candle 2s ease-in-out infinite; }
.scn-pledged-hearts .shadow { position:absolute; bottom:0; left:20%; right:20%; height:2px; background:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.4) 50%,transparent 100%); animation:ph-shadow 6s ease-in-out infinite alternate; }
@keyframes ph-wall { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.85} }
@keyframes ph-figure-l { 0%{transform:translateX(0) translateY(0) rotate(-2deg)} 50%{transform:translateX(-2px) translateY(-3px) rotate(1deg)} 100%{transform:translateX(1px) translateY(1px) rotate(-1deg)} }
@keyframes ph-figure-r { 0%{transform:translateX(0) translateY(0) rotate(2deg)} 50%{transform:translateX(2px) translateY(-3px) rotate(-1deg)} 100%{transform:translateX(-1px) translateY(1px) rotate(1deg)} }
@keyframes ph-heart { 0%{transform:scale(1);opacity:.8} 50%{transform:scale(1.2);opacity:1} 100%{transform:scale(1);opacity:.9} }
@keyframes ph-candle { 0%{transform:scaleY(1) translateY(0);opacity:.9} 50%{transform:scaleY(1.05) translateY(-2px);opacity:1} 100%{transform:scaleY(1) translateY(0);opacity:.9} }
@keyframes ph-shadow { 0%{transform:translateX(-5px) scaleX(1);opacity:.5} 50%{transform:translateX(0) scaleX(1.1);opacity:.7} 100%{transform:translateX(5px) scaleX(.9);opacity:.5} }

.scn-ad-vilmum-axiologum { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 60%, #3a3a4e 0%, transparent 70%); }
.scn-ad-vilmum-axiologum .bg-wall { position:absolute; inset:0; background:linear-gradient(135deg,#2a2a3e 0%,#1a1a2e 100%); box-shadow:inset 0 0 30px #0a0a1e; animation:av-wall 15s ease-in-out infinite alternate; }
.scn-ad-vilmum-axiologum .desk { position:absolute; bottom:15%; left:20%; right:20%; height:20%; background:linear-gradient(180deg,#4a3a2a 0%,#2a1a0a 100%); border-radius:4px; box-shadow:0 -4px 8px rgba(0,0,0,.5); }
.scn-ad-vilmum-axiologum .books { position:absolute; bottom:25%; left:25%; right:40%; height:30%; background:linear-gradient(90deg,#5a4a3a 0%,#4a3a2a 50%,#3a2a1a 100%); border-radius:2px; box-shadow:inset 0 2px 4px rgba(0,0,0,.3); animation:av-books 8s ease-in-out infinite; }
.scn-ad-vilmum-axiologum .lamp { position:absolute; bottom:35%; left:35%; width:20px; height:30px; background:linear-gradient(180deg,#e0c080 0%,#a08040 100%); border-radius:50% 50% 30% 30%/60% 60% 30% 30%; box-shadow:0 -10px 30px 5px #ffd080; animation:av-lamp 3s ease-in-out infinite alternate; }
.scn-ad-vilmum-axiologum .figure { position:absolute; bottom:15%; left:40%; width:40px; height:90px; background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom center; animation:av-figure 5s ease-in-out infinite; }
.scn-ad-vilmum-axiologum .paper { position:absolute; bottom:20%; left:35%; width:50px; height:30px; background:linear-gradient(180deg,#f0e0c0 0%,#d0c0a0 100%); border-radius:2px; box-shadow:0 2px 6px rgba(0,0,0,.2); animation:av-paper 6s ease-in-out infinite; }
.scn-ad-vilmum-axiologum .shadow { position:absolute; bottom:0; left:30%; right:30%; height:4px; background:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.3) 50%,transparent 100%); animation:av-shadow 10s ease-in-out infinite alternate; }
@keyframes av-wall { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.95} }
@keyframes av-books { 0%{transform:scaleX(1)} 50%{transform:scaleX(1.02)} 100%{transform:scaleX(1)} }
@keyframes av-lamp { 0%{opacity:.8;box-shadow:0 -10px 20px 3px #ffd080} 50%{opacity:1;box-shadow:0 -10px 40px 8px #ffd080} 100%{opacity:.9;box-shadow:0 -10px 25px 4px #ffd080} }
@keyframes av-figure { 0%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes av-paper { 0%{transform:translateY(0);opacity:.9} 50%{transform:translateY(-3px);opacity:1} 100%{transform:translateY(0);opacity:.95} }
@keyframes av-shadow { 0%{transform:translateX(-3px);opacity:.4} 50%{transform:translateX(0);opacity:.6} 100%{transform:translateX(3px);opacity:.4} }

.scn-sonnet-from-marini { background: linear-gradient(180deg, #0a0a1e 0%, #1a1a2e 40%, #0a0a1e 100%), radial-gradient(ellipse at 50% 50%, #2a2a3e 0%, transparent 70%); }
.scn-sonnet-from-marini .bg-wall { position:absolute; inset:0; background:linear-gradient(135deg,#1a1a2e 0%,#0a0a1e 100%); box-shadow:inset 0 0 50px #000; animation:sm-wall 10s ease-in-out infinite alternate; }
.scn-sonnet-from-marini .figure-left { position:absolute; bottom:20%; left:25%; width:45px; height:100px; background:linear-gradient(180deg,#3a2a1a 0%,#1a0a00 100%); border-radius:50% 50% 30% 30%/60% 60% 30% 30%; transform-origin:bottom center; animation:sm-figure-l 3s ease-in-out infinite; }
.scn-sonnet-from-marini .figure-right { position:absolute; bottom:20%; right:25%; width:45px; height:100px; background:linear-gradient(180deg,#2a1a2a 0%,#0a0a1a 100%); border-radius:50% 50% 30% 30%/60% 60% 30% 30%; transform-origin:bottom center; animation:sm-figure-r 3.5s ease-in-out infinite 0.5s; }
.scn-sonnet-from-marini .blade { position:absolute; bottom:30%; left:48%; width:4px; height:80px; background:linear-gradient(180deg,#c0c0c0 0%,#808080 100%); box-shadow:0 0 6px 2px #ffffff80; border-radius:2px; transform:rotate(-10deg); animation:sm-blade 2s ease-in-out infinite alternate; }
.scn-sonnet-from-marini .candle { position:absolute; bottom:20%; left:48%; width:8px; height:30px; background:linear-gradient(180deg,#e0a060 0%,#804020 100%); border-radius:2px; box-shadow:0 0 20px 4px #ffa040; animation:sm-candle 1.5s ease-in-out infinite; }
.scn-sonnet-from-marini .shadow { position:absolute; bottom:0; left:20%; right:20%; height:3px; background:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.5) 50%,transparent 100%); animation:sm-shadow 4s ease-in-out infinite alternate; }
@keyframes sm-wall { 0%{opacity:.85;filter:brightness(0.9)} 50%{opacity:1;filter:brightness(1)} 100%{opacity:.9;filter:brightness(0.95)} }
@keyframes sm-figure-l { 0%{transform:translateX(0) rotate(0deg)} 25%{transform:translateX(-2px) rotate(-2deg)} 50%{transform:translateX(1px) rotate(1deg)} 75%{transform:translateX(-1px) rotate(-1deg)} 100%{transform:translateX(0) rotate(0deg)} }
@keyframes sm-figure-r { 0%{transform:translateX(0) rotate(0deg)} 25%{transform:translateX(2px) rotate(2deg)} 50%{transform:translateX(-1px) rotate(-1deg)} 75%{transform:translateX(1px) rotate(1deg)} 100%{transform:translateX(0) rotate(0deg)} }
@keyframes sm-blade { 0%{transform:rotate(-10deg) translateY(0);opacity:.8} 50%{transform:rotate(-5deg) translateY(-2px);opacity:1} 100%{transform:rotate(-12deg) translateY(1px);opacity:.9} }
@keyframes sm-candle { 0%{transform:scaleY(1);opacity:.8} 50%{transform:scaleY(1.1);opacity:1} 100%{transform:scaleY(1);opacity:.9} }
@keyframes sm-shadow { 0%{transform:translateX(-5px) scaleX(1);opacity:.5} 50%{transform:translateX(0) scaleX(1.2);opacity:.7} 100%{transform:translateX(5px) scaleX(.8);opacity:.5} }

.scn-illumined-face { background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 50%, #2a2a3e 0%, transparent 70%); }
.scn-illumined-face .bg-cave { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 40%, #2a1a1a 0%, #0a0a0a 100%); box-shadow:inset 0 0 60px #000; animation:if-cave 20s ease-in-out infinite alternate; }
.scn-illumined-face .face { position:absolute; bottom:25%; left:40%; width:60px; height:80px; background:linear-gradient(180deg, #d0b0a0 0%, #a08070 100%); border-radius:60% 40% 40% 60% / 60% 50% 50% 60%; clip-path: polygon(0%0%, 70%0%, 70%40%, 100%40%, 100%100%, 0%100%); box-shadow:0 0 20px 10px rgba(200,180,160,.5); transform-origin:bottom center; animation:if-face 8s ease-in-out infinite; }
.scn-illumined-face .glow { position:absolute; top:10%; left:30%; right:30%; bottom:20%; background:radial-gradient(ellipse at 50% 50%, rgba(255,235,200,.6) 0%, transparent 70%); border-radius:50%; animation:if-glow 6s ease-in-out infinite alternate; }
.scn-illumined-face .rays { position:absolute; top:0; left:30%; right:30%; bottom:30%; background:conic-gradient(from 45deg, transparent 0deg, rgba(255,235,200,.15) 30deg, transparent 60deg, rgba(255,235,200,.1) 90deg, transparent 120deg, rgba(255,235,200,.15) 150deg, transparent 180deg, rgba(255,235,200,.1) 210deg, transparent 240deg, rgba(255,235,200,.15) 270deg, transparent 300deg, rgba(255,235,200,.1) 330deg, transparent 360deg); animation:if-rays 20s linear infinite; }
.scn-illumined-face .stone { position:absolute; bottom:20%; left:50%; width:100px; height:80px; margin-left:-50px; background:linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius:30% 30% 0 0; clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); box-shadow:inset 0 8px 20px #000; animation:if-stone 15s ease-in-out infinite; }
.scn-illumined-face .shadow { position:absolute; bottom:0; left:10%; right:10%; height:5px; background:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.4) 50%,transparent 100%); animation:if-shadow 12s ease-in-out infinite alternate; }
@keyframes if-cave { 0%{opacity:.9;filter:brightness(0.9)} 50%{opacity:1;filter:brightness(1)} 100%{opacity:.95;filter:brightness(0.95)} }
@keyframes if-face { 0%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-5px) rotate(2deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes if-glow { 0%{opacity:.7;transform:scale(.95)} 50%{opacity:1;transform:scale(1.05)} 100%{opacity:.8;transform:scale(1)} }
@keyframes if-rays { 0%{transform:rotate(0deg);opacity:.5} 50%{transform:rotate(15deg);opacity:.8} 100%{transform:rotate(30deg);opacity:.5} }
@keyframes if-stone { 0%{transform:translateY(0) scale(1)} 50%{transform:translateY(-3px) scale(1.02)} 100%{transform:translateY(0) scale(1)} }
@keyframes if-shadow { 0%{transform:translateX(-3px);opacity:.4} 50%{transform:translateX(0);opacity:.6} 100%{transform:translateX(3px);opacity:.4} }

/* --- SCENE: windy-brow-notes (Calm, Dim-Interior) --- */
.scn-windy-brow-notes { background: linear-gradient(180deg, #1c1920 0%, #2a231c 100%), radial-gradient(ellipse at 30% 80%, #3a2a1a 0%, transparent 60%); position: relative; overflow: hidden; width: 100%; height: 100%; }
.scn-windy-brow-notes .bg-interior { position: absolute; inset: 0; background: linear-gradient(180deg, #18141a 0%, #2a221c 50%, #1c1814 100%); }
.scn-windy-brow-notes .window-frame { position: absolute; inset: 15% 18% 35% 18%; border: 12px solid #2a1f18; border-radius: 6px 6px 30px 30px; box-shadow: inset 0 0 0 4px #1a1410, 0 8px 24px rgba(0,0,0,.6); background: transparent; }
.scn-windy-brow-notes .window-glass { position: absolute; inset: 15% 18% 35% 18%; background: linear-gradient(180deg, #7a8a9a 0%, #4a5a6a 100%); border-radius: 4px 4px 24px 24px; opacity: .3; animation: wb-glass 12s ease-in-out infinite alternate; }
.scn-windy-brow-notes .hills { position: absolute; bottom: 35%; left: 10%; right: 10%; height: 25%; background: linear-gradient(180deg, #2a322a 0%, #1a1e1a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.5); animation: wb-hills 20s ease-in-out infinite alternate; }
.scn-windy-brow-notes .desk { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a2a20 0%, #1f1812 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.4); }
.scn-windy-brow-notes .candle-light { position: absolute; bottom: 45%; left: 25%; width: 60px; height: 80px; background: radial-gradient(circle, #ffd080 0%, #e8a040 30%, #8a5020 70%, transparent 100%); border-radius: 50%; opacity: .85; animation: wb-flicker 3s ease-in-out infinite; mix-blend-mode: screen; }
.scn-windy-brow-notes .papers { position: absolute; bottom: 18%; left: 25%; width: 40%; height: 12%; background: linear-gradient(135deg, #d4c8b0 0%, #b8a890 50%, #a09080 100%); border-radius: 4px; transform: rotate(-2deg); box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: wb-flutter 8s ease-in-out infinite; }
.scn-windy-brow-notes .quill { position: absolute; bottom: 30%; left: 58%; width: 6px; height: 60px; background: linear-gradient(180deg, #d4c8b0 0%, #6a5a4a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin: bottom center; animation: wb-sway 5s ease-in-out infinite; }
@keyframes wb-glass { 0% { opacity: .25; } 50% { opacity: .35; } 100% { opacity: .2; } }
@keyframes wb-hills { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.01); } 100% { transform: translateY(2px) scaleX(0.99); } }
@keyframes wb-flicker { 0% { opacity: .7; transform: scale(1); box-shadow: 0 0 40px 20px #e8a040; } 50% { opacity: 1; transform: scale(1.04); box-shadow: 0 0 60px 30px #ffd080; } 100% { opacity: .75; transform: scale(0.98); box-shadow: 0 0 30px 10px #c08030; } }
@keyframes wb-flutter { 0% { transform: rotate(-2deg) translateY(0); } 30% { transform: rotate(1deg) translateY(-2px); } 60% { transform: rotate(-1deg) translateY(0); } 100% { transform: rotate(2deg) translateY(-1px); } }
@keyframes wb-sway { 0% { transform: rotate(-4deg) translateX(0); } 50% { transform: rotate(4deg) translateX(2px); } 100% { transform: rotate(-3deg) translateX(0); } }

/* --- SCENE: skiddaw-lady (Warm, Overcast, Supine Figure) --- */
.scn-skiddaw-lady { background: linear-gradient(180deg, #d9cec0 0%, #c2b6a5 40%, #a89b8a 100%), radial-gradient(ellipse at 50% 0%, #f0e6d2 0%, transparent 70%); position: relative; overflow: hidden; width: 100%; height: 100%; }
.scn-skiddaw-lady .sky { position: absolute; inset: 0; background: linear-gradient(180deg, #e8dcc8 0%, #d4c8b8 50%, #b8a898 100%); opacity: .6; }
.scn-skiddaw-lady .clouds-bg { position: absolute; inset: 0; background: radial-gradient(ellipse at 20% 30%, rgba(255,255,240,.4) 0%, transparent 50%), radial-gradient(ellipse at 80% 20%, rgba(240,235,220,.3) 0%, transparent 40%); filter: blur(30px); animation: sl-drift 40s linear infinite alternate; }
.scn-skiddaw-lady .mountain-base { position: absolute; bottom: 15%; left: -5%; right: -5%; height: 45%; background: linear-gradient(180deg, #6a7a5a 0%, #3a4a2a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,.3); }
.scn-skiddaw-lady .figure-supine { position: absolute; bottom: 30%; left: 35%; width: 180px; height: 60px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 100% 100% 60% 60%; transform-origin: center center; animation: sl-breathe 6s ease-in-out infinite; box-shadow: 0 8px 20px rgba(0,0,0,.4); }
.scn-skiddaw-lady .mountain-summit { position: absolute; bottom: 55%; left: 25%; width: 50%; height: 30%; background: linear-gradient(180deg, #7a8a6a 0%, #5a6a4a 100%); border-radius: 30% 70% 0 0 / 100% 100% 0 0; clip-path: polygon(0% 100%, 20% 40%, 50% 0%, 80% 30%, 100% 100%); animation: sl-rise 18s ease-in-out infinite alternate; }
.scn-skiddaw-lady .mist { position: absolute; bottom: 20%; left: 0; right: 0; height: 40%; background: linear-gradient(0deg, rgba(200,195,185,.5) 0%, transparent 100%); filter: blur(10px); animation: sl-mist 15s ease-in-out infinite alternate; }
.scn-skiddaw-lady .sun-glow { position: absolute; top: 10%; left: 45%; width: 120px; height: 120px; background: radial-gradient(circle, rgba(240,230,200,.6) 0%, rgba(220,200,170,.2) 40%, transparent 70%); border-radius: 50%; filter: blur(20px); animation: sl-pulse 8s ease-in-out infinite alternate; }
@keyframes sl-drift { 0% { transform: translateX(-10%) scale(1); } 100% { transform: translateX(10%) scale(1.05); } }
@keyframes sl-breathe { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-3px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes sl-rise { 0% { transform: translateY(0) scaleX(1); opacity: .8; } 50% { transform: translateY(-5px) scaleX(1.02); opacity: 1; } 100% { transform: translateY(0) scaleX(0.98); opacity: .85; } }
@keyframes sl-mist { 0% { opacity: .3; transform: translateY(0); } 50% { opacity: .6; transform: translateY(-5px); } 100% { opacity: .4; transform: translateY(3px); } }
@keyframes sl-pulse { 0% { transform: scale(0.95); opacity: .6; } 50% { transform: scale(1.05); opacity: .9; } 100% { transform: scale(1); opacity: .7; } }

/* --- SCENE: skiddaw-reply (Calm, Overcast, Stern Mountain) --- */
.scn-skiddaw-reply { background: linear-gradient(180deg, #2c3344 0%, #1f2529 50%, #14181c 100%), radial-gradient(ellipse at 50% 30%, #4a5260 0%, transparent 60%); position: relative; overflow: hidden; width: 100%; height: 100%; }
.scn-skiddaw-reply .sky-stormy { position: absolute; inset: 0; background: linear-gradient(180deg, #3a4250 0%, #1a2028 100%); opacity: .7; }
.scn-skiddaw-reply .helm-cloud { position: absolute; top: 8%; left: 10%; width: 80%; height: 35%; background: radial-gradient(ellipse at 30% 50%, rgba(120,130,150,.4) 0%, transparent 50%), radial-gradient(ellipse at 70% 30%, rgba(100,110,130,.3) 0%, transparent 40%); filter: blur(15px); animation: sr-swirl 25s ease-in-out infinite alternate; }
.scn-skiddaw-reply .peak-face { position: absolute; bottom: 15%; left: 20%; width: 60%; height: 55%; background: linear-gradient(180deg, #3a4250 0%, #1a2028 100%); clip-path: polygon(30% 100%, 25% 60%, 40% 40%, 50% 30%, 60% 40%, 70% 50%, 80% 100%); border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%; transform: skewX(-5deg); box-shadow: inset 0 20px 40px rgba(0,0,0,.5); animation: sr-brood 15s ease-in-out infinite; }
.scn-skiddaw-reply .eye-glow { position: absolute; bottom: 40%; left: 42%; width: 12px; height: 14px; background: radial-gradient(circle, #a0b8d0 0%, #4a6a8a 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(80,120,180,.5), 0 0 40px 12px rgba(80,120,180,.2); animation: sr-gaze 8s ease-in-out infinite; }
.scn-skiddaw-reply .raven-a { position: absolute; bottom: 60%; left: 20%; width: 16px; height: 8px; background: #1a1a1a; border-radius: 50% 50% 0 0; transform: rotate(-10deg); animation: sr-circle-a 12s linear infinite; }
.scn-skiddaw-reply .raven-b { position: absolute; bottom: 65%; left: 20%; width: 14px; height: 6px; background: #1a1a1a; border-radius: 50% 50% 0 0; transform: rotate(5deg); animation: sr-circle-b 14s linear infinite; animation-delay: -4s; }
.scn-skiddaw-reply .base-rocks { position: absolute; bottom: 0; left: 0; right: 0; height: 18%; background: linear-gradient(180deg, #2a3038 0%, #12161a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
@keyframes sr-swirl { 0% { transform: translateX(-10%) scale(1); opacity: .5; } 50% { transform: translateX(5%) scale(1.05); opacity: .7; } 100% { transform: translateX(-5%) scale(0.95); opacity: .6; } }
@keyframes sr-brood { 0% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-3deg) translateY(-4px); } 100% { transform: skewX(-6deg) translateY(2px); } }
@keyframes sr-gaze { 0% { opacity: .6; transform: scale(1); } 30% { opacity: 1; transform: scale(1.3); box-shadow: 0 0 30px 10px rgba(80,120,180,.6); } 50% { opacity: .8; transform: scale(1.1); } 80% { opacity: 1; transform: scale(1.2); } 100% { opacity: .6; transform: scale(1); } }
@keyframes sr-circle-a { 0% { transform: rotate(0deg) translateX(40px) rotate(0deg); } 100% { transform: rotate(360deg) translateX(40px) rotate(-360deg); } }
@keyframes sr-circle-b { 0% { transform: rotate(0deg) translateX(-30px) rotate(0deg); } 100% { transform: rotate(-360deg) translateX(-30px) rotate(360deg); } }

/* --- SCENE: skiddaw-praise (Warm, Overcast, Ethereal Music) --- */
.scn-skiddaw-praise { background: linear-gradient(180deg, #e8dcc4 0%, #d4c4a8 40%, #b8a590 100%), radial-gradient(ellipse at 50% 0%, #f5eed6 0%, transparent 70%); position: relative; overflow: hidden; width: 100%; height: 100%; }
.scn-skiddaw-praise .sky-warm { position: absolute; inset: 0; background: linear-gradient(180deg, #f0e8d8 0%, #d8ccb8 50%, #c0b09c 100%); opacity: .5; }
.scn-skiddaw-praise .light-beams { position: absolute; inset: 0; background: repeating-linear-gradient(105deg, rgba(255,245,220,.15) 0px, rgba(255,245,220,.15) 15px, transparent 15px, transparent 30px, rgba(230,215,180,.05) 30px, rgba(230,215,180,.05) 45px); filter: blur(2px); animation: sp-beams 20s ease-in-out infinite alternate; }
.scn-skiddaw-praise .spirit-form { position: absolute; bottom: 20%; left: 30%; width: 40%; height: 60%; background: linear-gradient(180deg, rgba(90,70,60,.8) 0%, rgba(50,40,35,.5) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; clip-path: polygon(40% 0%, 60% 0%, 70% 30%, 65% 60%, 80% 100%, 20% 100%, 35% 60%, 30% 30%); transform-origin: bottom center; animation: sp-sway 8s ease-in-out infinite; box-shadow: inset 0 -20px 40px rgba(0,0,0,.2); }
.scn-skiddaw-praise .lyre { position: absolute; bottom: 30%; left: 45%; width: 30px; height: 50px; background: linear-gradient(180deg, #c8a86a 0%, #8a7040 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.3); transform: rotate(10deg); animation: sp-sway 8s ease-in-out infinite reverse; }
.scn-skiddaw-praise .note-a { position: absolute; bottom: 60%; left: 25%; width: 8px; height: 24px; background: #4a403a; border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%; transform: rotate(15deg); animation: sp-float 10s ease-in-out infinite; }
.scn-skiddaw-praise .note-b { position: absolute; bottom: 70%; left: 55%; width: 6px; height: 18px; background: #5a4a3a; border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%; transform: rotate(-20deg); animation: sp-float 12s ease-in-out infinite; animation-delay: -4s; }
.scn-skiddaw-praise .note-c { position: absolute; bottom: 50%; left: 65%; width: 10px; height: 28px; background: #3a302a; border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%; transform: rotate(5deg); animation: sp-float 8s ease-in-out infinite; animation-delay: -7s; }
.scn-skiddaw-praise .halo-glow { position: absolute; top: 15%; left: 35%; width: 30%; height: 30%; background: radial-gradient(circle, rgba(240,225,190,.5) 0%, rgba(210,190,150,.2) 40%, transparent 70%); border-radius: 50%; filter: blur(20px); animation: sp-pulse 6s ease-in-out infinite alternate; mix-blend-mode: screen; }
@keyframes sp-beams { 0% { transform: translateX(0) skewX(0deg); opacity: .6; } 50% { transform: translateX(2%) skewX(2deg); opacity: .9; } 100% { transform: translateX(-2%) skewX(-1deg); opacity: .7; } }
@keyframes sp-sway { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-5px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes sp-float { 0% { transform: translateY(0) rotate(0deg) scale(0.8); opacity: 0; } 30% { opacity: 1; } 70% { opacity: .8; } 100% { transform: translateY(-120px) rotate(30deg) scale(1.2); opacity: 0; } }
@keyframes sp-pulse { 0% { transform: scale(0.9); opacity: .5; } 50% { transform: scale(1.1); opacity: .9; } 100% { transform: scale(1); opacity: .6; } }

.scn-two-founts-intro {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 50%, #0a0703 100%), radial-gradient(ellipse at 30% 40%, #4a2a10 0%, transparent 60%);
}
.scn-two-founts-intro .bg-wall {
  position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent, transparent 30px, rgba(255,200,100,0.02) 30px, rgba(255,200,100,0.02) 31px); animation: tfi-wall 30s linear infinite;
}
.scn-two-founts-intro .figure {
  position:absolute; bottom:20%; left:30%; width:50px; height:90px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%); border-radius: 40% 60% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tfi-fig 5s ease-in-out infinite alternate;
}
.scn-two-founts-intro .book {
  position:absolute; bottom:25%; left:32%; width:35px; height:25px; background: linear-gradient(180deg, #5a3a1a, #3a2010); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); transform-origin: left center; animation: tfi-book 6s ease-in-out infinite alternate;
}
.scn-two-founts-intro .light-glow {
  position:absolute; bottom:35%; left:28%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,180,80,0.6) 0%, rgba(255,150,50,0.2) 40%, transparent 70%); border-radius:50%; pointer-events:none; animation: tfi-glow 3s ease-in-out infinite alternate;
}
.scn-two-founts-intro .shadow {
  position:absolute; bottom:15%; left:25%; width:80px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); border-radius:50%; animation: tfi-shadow 5s ease-in-out infinite alternate;
}
.scn-two-founts-intro .dust {
  position:absolute; width:4px; height:4px; background: rgba(200,160,100,0.4); border-radius:50%; filter:blur(2px); top:30%; left:20%; animation: tfi-dust 8s linear infinite;
}
.scn-two-founts-intro .dust-alt {
  left:40%; top:40%; animation-duration:12s; animation-delay:2s;
}
@keyframes tfi-wall { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.5 } }
@keyframes tfi-fig { 0% { transform: rotate(-2deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes tfi-book { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(-5deg) scaleX(0.9) } 100% { transform: rotate(0deg) scaleX(1) } }
@keyframes tfi-glow { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.7; transform: scale(0.95) } }
@keyframes tfi-shadow { 0% { transform: translateX(-5px) scale(1) } 50% { transform: translateX(5px) scale(0.95) } 100% { transform: translateX(-5px) scale(1) } }
@keyframes tfi-dust { 0% { transform: translate(0,0); opacity:0.7 } 50% { transform: translate(10px,-15px); opacity:1 } 100% { transform: translate(-5px,-30px); opacity:0 } }

.scn-two-founts-dwarf {
  background: linear-gradient(180deg, #1a1a3a 0%, #0e0e2a 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 60%, #2a2a5a 0%, transparent 70%);
}
.scn-two-founts-dwarf .bg-room {
  position:absolute; inset:0; background: repeating-linear-gradient(45deg, transparent, transparent 20px, rgba(100,100,200,0.02) 20px, rgba(100,100,200,0.02) 21px); animation: tfd-room 25s linear infinite;
}
.scn-two-founts-dwarf .dwarf {
  position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:40px; height:60px; background: linear-gradient(180deg, #2a2a4a, #1a1a2a); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tfd-dwarf 7s ease-in-out infinite alternate;
}
.scn-two-founts-dwarf .fount-left {
  position:absolute; bottom:20%; left:25%; width:20px; height:40px; background: linear-gradient(180deg, #4a6a8a, #2a4a6a); border-radius: 50% 50% 10% 10%; transform-origin: bottom; animation: tfd-fount-l 4s ease-in-out infinite;
}
.scn-two-founts-dwarf .fount-right {
  position:absolute; bottom:20%; right:25%; width:20px; height:40px; background: linear-gradient(180deg, #8a6a4a, #6a4a2a); border-radius: 50% 50% 10% 10%; transform-origin: bottom; animation: tfd-fount-r 4s ease-in-out infinite 2s;
}
.scn-two-founts-dwarf .glow-left {
  position:absolute; bottom:35%; left:24%; width:30px; height:30px; background: radial-gradient(circle, rgba(100,150,220,0.6) 0%, transparent 70%); border-radius:50%; animation: tfd-glow-l 5s ease-in-out infinite alternate;
}
.scn-two-founts-dwarf .glow-right {
  position:absolute; bottom:35%; right:24%; width:30px; height:30px; background: radial-gradient(circle, rgba(220,150,100,0.6) 0%, transparent 70%); border-radius:50%; animation: tfd-glow-r 5s ease-in-out infinite alternate;
}
.scn-two-founts-dwarf .droplet {
  position:absolute; width:4px; height:8px; background: linear-gradient(180deg, rgba(150,200,255,0.8), transparent); border-radius:50%; top:25%; left:26%; animation: tfd-drop 3s linear infinite;
}
.scn-two-founts-dwarf .droplet-alt {
  left:auto; right:26%; background: linear-gradient(180deg, rgba(255,200,150,0.8), transparent); animation-delay:1.5s; animation-duration:3.5s;
}
@keyframes tfd-room { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes tfd-dwarf { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(0.98) } }
@keyframes tfd-fount-l { 0% { height:40px; } 50% { height:50px; } 100% { height:40px; } }
@keyframes tfd-fount-r { 0% { height:40px; } 50% { height:50px; } 100% { height:40px; } }
@keyframes tfd-glow-l { 0% { opacity:0.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0.6; transform: scale(0.9) } }
@keyframes tfd-glow-r { 0% { opacity:0.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0.6; transform: scale(0.9) } }
@keyframes tfd-drop { 0% { transform: translateY(0); opacity:1 } 50% { transform: translateY(15px); opacity:0.7 } 100% { transform: translateY(30px); opacity:0 } }

.scn-two-founts-bridge {
  background: linear-gradient(180deg, #cfb89a 0%, #a68b6c 40%, #6d5a45 100%), radial-gradient(ellipse at 50% 80%, #d4c4aa 0%, transparent 60%);
}
.scn-two-founts-bridge .sky {
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d9c7b5 0%, #c0a88a 100%); animation: tfb-sky 10s ease-in-out infinite alternate;
}
.scn-two-founts-bridge .clouds {
  position:absolute; top:10%; left:10%; width:120px; height:30px; background: rgba(255,255,255,0.2); border-radius:50%; filter:blur(8px); animation: tfb-cloud 30s linear infinite;
}
.scn-two-founts-bridge .ground {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a6a5a, #5a4a3a); border-radius: 20% 80% 0 0 / 30% 70% 0 0;
}
.scn-two-founts-bridge .bridge-arch {
  position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:150px; height:60px; background: transparent; border: 6px solid #8a7a6a; border-radius: 50% 50% 0 0; border-bottom: none; box-shadow: 0 8px 16px rgba(0,0,0,0.3); animation: tfb-bridge 12s ease-in-out infinite alternate;
}
.scn-two-founts-bridge .flowers-left {
  position:absolute; bottom:20%; left:20%; width:40px; height:40px; background: radial-gradient(circle at 50% 50%, #e8b0a0 0%, #c88070 40%, transparent 60%); border-radius:50%; animation: tfb-flowers 6s ease-in-out infinite alternate;
}
.scn-two-founts-bridge .flowers-right {
  position:absolute; bottom:20%; right:20%; width:40px; height:40px; background: radial-gradient(circle at 50% 50%, #e8b0a0 0%, #c88070 40%, transparent 60%); border-radius:50%; animation: tfb-flowers 6s ease-in-out infinite alternate-reverse;
}
.scn-two-founts-bridge .petal {
  position:absolute; width:8px; height:8px; background: #e8b0a0; border-radius:50% 0 50% 0; top:18%; left:25%; animation: tfb-petal 8s linear infinite;
}
.scn-two-founts-bridge .petal-alt {
  left:35%; top:14%; animation-delay:3s; animation-duration:10s;
}
@keyframes tfb-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes tfb-cloud { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(30px) scale(1.05) } 100% { transform: translateX(-20px) scale(0.95) } }
@keyframes tfb-bridge { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.03) } 100% { transform: translateX(-50%) scaleY(0.97) } }
@keyframes tfb-flowers { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(5deg) scale(1.1) } 100% { transform: rotate(-5deg) scale(1) } }
@keyframes tfb-petal { 0% { transform: translate(0,0) rotate(0deg); opacity:1 } 50% { transform: translate(-10px,20px) rotate(45deg); opacity:0.7 } 100% { transform: translate(10px,40px) rotate(90deg); opacity:0 } }

.scn-two-founts-appeal {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 40%, #0a0703 100%), radial-gradient(ellipse at 70% 50%, #3a2010 0%, transparent 60%);
}
.scn-two-founts-appeal .bg-chamber {
  position:absolute; inset:0; background: repeating-linear-gradient(135deg, transparent, transparent 25px, rgba(200,120,40,0.02) 25px, rgba(200,120,40,0.02) 26px); animation: tfa-bg 20s linear infinite;
}
.scn-two-founts-appeal .sleeping-figure {
  position:absolute; bottom:15%; left:30%; width:60px; height:40px; background: linear-gradient(180deg, #1a1a2a, #0e0e1a); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tfa-sleep 6s ease-in-out infinite alternate;
}
.scn-two-founts-appeal .dwarf-smile {
  position:absolute; bottom:20%; right:30%; width:30px; height:40px; background: linear-gradient(180deg, #2a2a4a, #1a1a2a); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tfa-dwarf 5s ease-in-out infinite alternate;
}
.scn-two-founts-appeal .candle-glow {
  position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:40px; height:60px; background: radial-gradient(ellipse at 50% 100%, rgba(255,180,80,0.8) 0%, transparent 60%); border-radius: 20% 20% 50% 50%; animation: tfa-candle 4s ease-in-out infinite alternate;
}
.scn-two-founts-appeal .dream-wisp {
  position:absolute; width:10px; height:10px; background: radial-gradient(circle, rgba(200,160,100,0.6), transparent); border-radius:50%; top:25%; left:35%; animation: tfa-wisp 9s linear infinite;
}
.scn-two-founts-appeal .wisp-alt {
  left:45%; top:20%; animation-delay:3s; animation-duration:11s;
}
.scn-two-founts-appeal .shadow {
  position:absolute; bottom:10%; left:20%; width:100px; height:15px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); border-radius:50%; animation: tfa-shadow 6s ease-in-out infinite alternate;
}
@keyframes tfa-bg { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes tfa-sleep { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes tfa-dwarf { 0% { transform: rotate(-3deg) scaleX(1) } 50% { transform: rotate(3deg) scaleX(0.95) } 100% { transform: rotate(-2deg) scaleX(1) } }
@keyframes tfa-candle { 0% { opacity:0.7; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.1) } 100% { opacity:0.8; transform: translateX(-50%) scale(0.95) } }
@keyframes tfa-wisp { 0% { transform: translate(0,0) rotate(0deg); opacity:0.8 } 50% { transform: translate(-10px,-15px) rotate(20deg); opacity:1 } 100% { transform: translate(10px,-30px) rotate(40deg); opacity:0 } }
@keyframes tfa-shadow { 0% { transform: translateX(-5px) scale(1) } 50% { transform: translateX(5px) scale(0.95) } 100% { transform: translateX(-5px) scale(1) } }

/* Scene: true-love-flame */
.scn-true-love-flame {
  background: 
    linear-gradient(180deg, #1a1a1a 0%, #2a1a0a 50%, #3a2a15 100%),
    radial-gradient(ellipse at 50% 70%, #4a2a10 0%, transparent 70%);
}
.scn-true-love-flame .room-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2a1a0a 0%, #3a2a15 100%); }
.scn-true-love-flame .room-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a15 0%, #1a0a00 100%); }
.scn-true-love-flame .window { position:absolute; top:15%; left:10%; width:30%; height:40%; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 100%); border:2px solid #3a2a15; border-radius:4px; box-shadow: inset 0 0 10px rgba(255,255,255,0.1); }
.scn-true-love-flame .candle-stand { position:absolute; bottom:30%; left:50%; width:8px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; }
.scn-true-love-flame .flame { position:absolute; bottom:70%; left:50%; width:12px; height:24px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 20%, #ffd080 0%, #ff8040 40%, #ff4020 70%, transparent 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:flame-tlf 2s ease-in-out infinite alternate; box-shadow:0 0 20px 8px #ff8040; }
.scn-true-love-flame .glow { position:absolute; bottom:40%; left:40%; width:20%; height:30%; background: radial-gradient(ellipse, rgba(255,128,64,0.15) 0%, transparent 100%); animation:glow-tlf 3s ease-in-out infinite alternate; }
.scn-true-love-flame .figure { position:absolute; bottom:30%; right:20%; width:30px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:figure-tlf 5s ease-in-out infinite; }
.scn-true-love-flame .shadow { position:absolute; bottom:30%; left:15%; width:60px; height:10px; background:rgba(0,0,0,0.5); border-radius:50%; filter:blur(4px); animation:shadow-tlf 5s ease-in-out infinite; }

@keyframes flame-tlf { 0% { transform:translateX(-50%) scaleY(1); } 25% { transform:translateX(-50%) scaleY(1.1) translateY(-2px); } 50% { transform:translateX(-50%) scaleY(0.95) translateY(1px); } 75% { transform:translateX(-50%) scaleY(1.05) translateY(-1px); } 100% { transform:translateX(-50%) scaleY(1); } }
@keyframes glow-tlf { 0% { opacity:0.6; transform:scale(0.95); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.7; transform:scale(0.95); } }
@keyframes figure-tlf { 0%,100% { transform:rotate(-2deg); } 50% { transform:rotate(2deg); } }
@keyframes shadow-tlf { 0%,100% { transform:scaleX(1); } 50% { transform:scaleX(1.1) translateX(5px); } }

/* Scene: star-letter */
.scn-star-letter {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #0a0a2a 30%, #1a1a3a 60%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 0%, #0a0a2a 0%, transparent 80%);
}
.scn-star-letter .star-1 { position:absolute; top:12%; left:25%; width:4px; height:4px; background:#fff; border-radius:50%; animation:star1-stl 4s ease-in-out infinite alternate; }
.scn-star-letter .star-2 { position:absolute; top:20%; left:70%; width:6px; height:6px; background:#eef; border-radius:50%; animation:star2-stl 5s ease-in-out infinite alternate; }
.scn-star-letter .star-3 { position:absolute; top:8%; left:50%; width:3px; height:3px; background:#fff; border-radius:50%; animation:star3-stl 3s ease-in-out infinite alternate; }
.scn-star-letter .letter-o { position:absolute; top:22%; left:50%; width:80px; height:100px; transform:translateX(-50%); border-radius:50%; border:12px solid #0a0a0a; box-shadow:0 0 30px rgba(0,0,0,0.8), inset 0 0 10px rgba(0,0,0,0.5); background:transparent; animation:letter-stl 8s ease-in-out infinite; }
.scn-star-letter .mist { position:absolute; top:40%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, rgba(100,120,180,0.1) 0%, transparent 100%); filter:blur(10px); animation:mist-stl 15s ease-in-out infinite; }
.scn-star-letter .figure-looking { position:absolute; bottom:20%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:figure-stl 10s ease-in-out infinite; }
.scn-star-letter .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); }

@keyframes star1-stl { 0% { opacity:0.6; transform:scale(0.8); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.7; transform:scale(0.9); } }
@keyframes star2-stl { 0% { opacity:0.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.3); } 100% { opacity:0.8; transform:scale(0.9); } }
@keyframes star3-stl { 0% { opacity:0.5; transform:scale(0.7); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:0.6; transform:scale(0.8); } }
@keyframes letter-stl { 0%,100% { transform:translateX(-50%) scale(1) rotate(0deg); } 50% { transform:translateX(-50%) scale(1.02) rotate(2deg); } }
@keyframes mist-stl { 0% { transform:translateX(-20px); } 50% { transform:translateX(0); } 100% { transform:translateX(20px); } }
@keyframes figure-stl { 0%,100% { transform:rotate(-3deg); } 50% { transform:rotate(3deg); } }

/* Scene: know-thyself */
.scn-know-thyself {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #3a2a15 40%, #1a1a0a 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a25 0%, transparent 70%);
}
.scn-know-thyself .room-bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #1a1a0a 0%, #2a1a0a 50%, #1a1a0a 100%); animation:bg-kth 10s ease-in-out infinite; }
.scn-know-thyself .mirror-frame { position:absolute; top:15%; left:50%; width:100px; height:120px; transform:translateX(-50%); background: linear-gradient(135deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:8px; box-shadow:0 4px 10px rgba(0,0,0,0.6); animation:frame-kth 12s ease-in-out infinite; }
.scn-know-thyself .mirror-glass { position:absolute; top:20%; left:52%; width:80px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, rgba(200,200,200,0.3) 0%, rgba(255,255,255,0.1) 100%); border-radius:4px; box-shadow:inset 0 0 20px rgba(255,255,200,0.3); animation:glass-kth 6s ease-in-out infinite; }
.scn-know-thyself .figure-mirror { position:absolute; top:30%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.8; animation:figure-kth 8s ease-in-out infinite; }
.scn-know-thyself .candle { position:absolute; bottom:30%; left:35%; width:6px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:2px; }
.scn-know-thyself .candle-flame { position:absolute; bottom:63%; left:35%; width:8px; height:12px; transform:translateX(50%); background: radial-gradient(ellipse at 50% 20%, #ffd080 0%, #ff8040 40%, transparent 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:cflame-kth 2s ease-in-out infinite alternate; }
.scn-know-thyself .book { position:absolute; bottom:25%; left:65%; width:20px; height:28px; background: #3a2a1a; border-radius:2px; transform:rotate(15deg); box-shadow:0 2px 4px rgba(0,0,0,0.3); animation:book-kth 10s ease-in-out infinite; }
.scn-know-thyself .desk { position:absolute; bottom:20%; left:30%; right:30%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; animation:desk-kth 8s ease-in-out infinite; }

@keyframes bg-kth { 0%,100% { opacity:0.95; } 50% { opacity:1; } }
@keyframes frame-kth { 0%,100% { transform:translateX(-50%) scale(1); } 50% { transform:translateX(-50%) scale(1.01); } }
@keyframes glass-kth { 0%,100% { opacity:0.6; } 50% { opacity:0.9; } }
@keyframes figure-kth { 0%,100% { transform:translateX(-50%) rotate(-2deg); } 50% { transform:translateX(-50%) rotate(2deg); } }
@keyframes cflame-kth { 0% { transform:translateX(50%) scaleY(1); } 25% { transform:translateX(50%) scaleY(1.1); } 50% { transform:translateX(50%) scaleY(0.9); } 75% { transform:translateX(50%) scaleY(1.05); } 100% { transform:translateX(50%) scaleY(1); } }
@keyframes book-kth { 0%,100% { transform:rotate(15deg); } 50% { transform:rotate(18deg); } }
@keyframes desk-kth { 0%,100% { opacity:0.9; } 50% { opacity:1; } }

/* Scene: lone-arab */
.scn-lone-arab {
  background: 
    linear-gradient(180deg, #0a1a0a 0%, #1a2a1a 40%, #0a1a0a 100%),
    radial-gradient(ellipse at 50% 80%, #0a2a0a 0%, transparent 70%);
}
.scn-lone-arab .garden-bg { position:absolute; inset:0; background: linear-gradient(180deg, #0a1a0a 0%, #1a2a1a 100%); }
.scn-lone-arab .bower-arch { position:absolute; top:10%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%); border-radius:50% 50% 0 0 / 80% 80% 0 0; opacity:0.6; }
.scn-lone-arab .vines-left { position:absolute; top:20%; left:5%; width:20%; height:60%; background: linear-gradient(180deg, #2a4a1a 0%, transparent 100%); border-radius:0 60% 0 0 / 0 80% 0 0; filter:blur(3px); animation:vines-lar 12s ease-in-out infinite; }
.scn-lone-arab .vines-right { position:absolute; top:20%; right:5%; width:20%; height:60%; background: linear-gradient(180deg, #2a4a1a 0%, transparent 100%); border-radius:60% 0 0 0 / 80% 0 0 0; filter:blur(3px); animation:vines-lar 12s ease-in-out infinite reverse; }
.scn-lone-arab .figure-seated { position:absolute; bottom:20%; left:40%; width:24px; 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:figure-lar 8s ease-in-out infinite; }
.scn-lone-arab .lantern { position:absolute; bottom:35%; left:70%; width:8px; height:12px; background:#ffd080; border-radius:4px; box-shadow:0 0 20px 6px #ffd080; animation:lantern-lar 4s ease-in-out infinite alternate; }
.scn-lone-arab .hope-spirit { position:absolute; bottom:25%; left:20%; width:15px; height:30px; background: linear-gradient(180deg, rgba(200,200,255,0.3) 0%, transparent 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter:blur(2px); animation:spirit-lar 10s ease-in-out infinite; }
.scn-lone-arab .love-spirit { position:absolute; bottom:25%; right:25%; width:15px; height:30px; background: linear-gradient(180deg, rgba(255,200,200,0.3) 0%, transparent 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter:blur(2px); animation:spirit-lar 10s ease-in-out infinite reverse; }

@keyframes vines-lar { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-5px); } }
@keyframes figure-lar { 0%,100% { transform:rotate(-2deg) translateY(0); } 50% { transform:rotate(2deg) translateY(-2px); } }
@keyframes lantern-lar { 0% { opacity:0.8; transform:scale(0.95); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.9; transform:scale(0.98); } }
@keyframes spirit-lar { 0%,100% { opacity:0.3; transform:translateY(0); } 50% { opacity:0.7; transform:translateY(-5px); } }

.scn-pang-more-sharp-two { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1e1e30 100%), radial-gradient(ellipse at 50% 100%, #3a3a4e 0%, transparent 70%); }
.scn-pang-more-sharp-two .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); z-index:0; animation: p1-wall 12s ease-in-out infinite alternate; }
.scn-pang-more-sharp-two .window { position:absolute; top:20%; left:30%; width:40%; height:30%; background: radial-gradient(circle, #1e2a4e 0%, #0a0a1a 100%); border: 4px solid #3a3a4e; border-radius:4px; animation: p1-window 8s ease-in-out infinite alternate; }
.scn-pang-more-sharp-two .mother { position:absolute; bottom:20%; left:35%; width:20%; height:40%; background: linear-gradient(180deg, #2a2a3e 0%, #1e1e2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: p1-figure 6s ease-in-out infinite; }
.scn-pang-more-sharp-two .child { position:absolute; bottom:22%; left:40%; width:8%; height:12%; background: radial-gradient(circle, #3a3a4e 0%, #1e1e2e 100%); border-radius: 50%; animation: p1-child 4s ease-in-out infinite alternate; }
.scn-pang-more-sharp-two .cradle { position:absolute; bottom:18%; left:30%; width:20%; height:10%; background: linear-gradient(180deg, #2a2a3e 0%, #1e1e2e 100%); border-radius: 10%; transform: rotate(-5deg); animation: p1-cradle 5s ease-in-out infinite; }
.scn-pang-more-sharp-two .glow { position:absolute; top:22%; left:35%; width:30%; height:20%; background: radial-gradient(circle, rgba(255,200,100,0.15) 0%, transparent 70%); filter: blur(12px); animation: p1-glow 3s ease-in-out infinite alternate; }
.scn-pang-more-sharp-two .shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, #0a0a1a 100%); animation: p1-shadow 10s ease-in-out infinite alternate; }
@keyframes p1-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes p1-window { 0% { opacity:0.6; box-shadow: inset 0 0 20px #1e2a4e; } 50% { opacity:0.8; box-shadow: inset 0 0 40px #2a3a5e; } 100% { opacity:0.5; box-shadow: inset 0 0 10px #1e2a4e; } }
@keyframes p1-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes p1-child { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(0.98); } }
@keyframes p1-cradle { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes p1-glow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }
@keyframes p1-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.4; } }

.scn-pang-more-sharp-three { background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 100%), radial-gradient(ellipse at 50% 60%, #1a1a2e 0%, transparent 70%); }
.scn-pang-more-sharp-three .wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%); z-index:0; animation: p2-wall 15s ease-in-out infinite alternate; }
.scn-pang-more-sharp-three .table { position:absolute; bottom:25%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 4px; animation: p2-table 7s ease-in-out infinite; }
.scn-pang-more-sharp-three .orb { position:absolute; bottom:30%; left:45%; width:12%; height:15%; background: radial-gradient(circle, #4a4a6e 0%, #2a2a4e 60%, #0a0a1a 100%); border-radius: 50%; box-shadow: 0 0 30px rgba(100,100,180,0.5); animation: p2-orb 5s ease-in-out infinite alternate; }
.scn-pang-more-sharp-three .figure { position:absolute; bottom:20%; left:25%; width:15%; height:35%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: p2-figure 8s ease-in-out infinite; }
.scn-pang-more-sharp-three .glow { position:absolute; bottom:30%; left:45%; width:12%; height:15%; background: radial-gradient(circle, rgba(100,100,180,0.3) 0%, transparent 70%); filter: blur(15px); animation: p2-glow 4s ease-in-out infinite alternate; }
.scn-pang-more-sharp-three .shadow { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, transparent 0%, #0a0a1a 100%); animation: p2-shadow 12s ease-in-out infinite alternate; }
@keyframes p2-wall { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes p2-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes p2-orb { 0% { transform: scale(1); box-shadow: 0 0 20px rgba(100,100,180,0.3); } 50% { transform: scale(1.02); box-shadow: 0 0 40px rgba(100,100,180,0.6); } 100% { transform: scale(0.98); box-shadow: 0 0 20px rgba(100,100,180,0.3); } }
@keyframes p2-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes p2-glow { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.3; } }
@keyframes p2-shadow { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.5; } }

.scn-pang-more-sharp-four { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1e1e30 100%), radial-gradient(ellipse at 30% 70%, #2a2a3e 0%, transparent 60%); }
.scn-pang-more-sharp-four .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); z-index:0; animation: p3-wall 14s ease-in-out infinite alternate; }
.scn-pang-more-sharp-four .doorway { position:absolute; top:10%; left:40%; width:20%; height:80%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; border: 3px solid #3a3a4e; animation: p3-doorway 9s ease-in-out infinite; }
.scn-pang-more-sharp-four .figure1 { position:absolute; bottom:25%; left:30%; width:15%; height:35%; background: linear-gradient(180deg, #2a2a3e 0%, #1e1e2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: p3-figure1 6s ease-in-out infinite; }
.scn-pang-more-sharp-four .figure2 { position:absolute; bottom:25%; left:50%; width:15%; height:35%; background: linear-gradient(180deg, #2a2a3e 0%, #1e1e2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: p3-figure2 7s ease-in-out infinite 1s; }
.scn-pang-more-sharp-four .light { position:absolute; top:15%; left:45%; width:20%; height:60%; background: radial-gradient(ellipse at center, rgba(255,200,100,0.1) 0%, transparent 70%); animation: p3-light 5s ease-in-out infinite alternate; }
.scn-pang-more-sharp-four .shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, #0a0a1a 100%); animation: p3-shadow 11s ease-in-out infinite alternate; }
@keyframes p3-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes p3-doorway { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes p3-figure1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes p3-figure2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes p3-light { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.1; } }
@keyframes p3-shadow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.3; } }

.scn-duty-surviving-self-love { background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 50%, #0d0804 100%), radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 70%); }
.scn-duty-surviving-self-love .wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1008 0%, #0d0804 100%); z-index:0; animation: p4-wall 20s ease-in-out infinite alternate; }
.scn-duty-surviving-self-love .armchair { position:absolute; bottom:20%; left:28%; width:30%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; animation: p4-chair 10s ease-in-out infinite; }
.scn-duty-surviving-self-love .figure { position:absolute; bottom:25%; left:36%; width:16%; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: p4-figure 9s ease-in-out infinite; }
.scn-duty-surviving-self-love .table { position:absolute; bottom:15%; left:45%; width:20%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; animation: p4-table 6s ease-in-out infinite; }
.scn-duty-surviving-self-love .candle { position:absolute; bottom:20%; left:50%; width:4%; height:14%; background: linear-gradient(180deg, #6a5a4a 0%, #2a1a0a 100%); border-radius: 10%; transform: rotate(2deg); animation: p4-candle 7s ease-in-out infinite alternate; }
.scn-duty-surviving-self-love .glow { position:absolute; bottom:20%; left:48%; width:10%; height:20%; background: radial-gradient(circle, rgba(255,180,80,0.1) 0%, transparent 70%); filter: blur(10px); animation: p4-glow 4s ease-in-out infinite alternate; }
.scn-duty-surviving-self-love .mirror { position:absolute; top:10%; left:55%; width:25%; height:50%; background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%); border: 3px solid #3a2a1a; border-radius: 10%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: p4-mirror 15s ease-in-out infinite; }
@keyframes p4-wall { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes p4-chair { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(0.99); } }
@keyframes p4-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes p4-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes p4-candle { 0% { transform: rotate(2deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.02); } 100% { transform: rotate(2deg) scaleY(0.98); } }
@keyframes p4-glow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }
@keyframes p4-mirror { 0% { opacity:0.8; } 50% { opacity:0.9; } 100% { opacity:0.7; } }

.scn-dirge-for-charlotte-two { background: linear-gradient(180deg, #1a1a2e 0%, #2c2040 50%, #3a2a4a 100%), radial-gradient(ellipse at 50% 100%, #2a1a30 0%, transparent 70%); }
.scn-dirge-for-charlotte-two .bg-deep { position:absolute; inset:0; background:linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 100%); animation: dc2-deep 20s ease-in-out infinite alternate; }
.scn-dirge-for-charlotte-two .bg-mid { position:absolute; inset:10% 5% 30% 5%; background:linear-gradient(180deg, #2a1a30 0%, #1a0a20 50%, #0e0e1a 100%); border-radius: 20% / 10%; opacity:0.6; animation: dc2-mid 15s ease-in-out infinite alternate; }
.scn-dirge-for-charlotte-two .coffin { position:absolute; bottom:20%; left:30%; width:40%; height:30%; background:linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 5% 5% 2% 2%; box-shadow: 0 4px 12px rgba(0,0,0,0.7); animation: dc2-coffin 8s ease-in-out infinite; }
.scn-dirge-for-charlotte-two .figure-mourning { position:absolute; bottom:20%; left:10%; width:15%; height:50%; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dc2-mourn 6s ease-in-out infinite; }
.scn-dirge-for-charlotte-two .tree-branch { position:absolute; top:10%; right:10%; width:60%; height:30%; background:radial-gradient(ellipse at 100% 100%, #2a3a1a 10%, transparent 70%); border-radius: 50%; transform-origin: right bottom; animation: dc2-branch 12s ease-in-out infinite alternate; }
.scn-dirge-for-charlotte-two .rose-bud { position:absolute; bottom:22%; left:48%; width:5%; height:8%; background:radial-gradient(circle, #b84d3b 30%, #6a2a1a 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 10px 2px rgba(184,77,59,0.5); animation: dc2-rose 4s ease-in-out infinite; }
.scn-dirge-for-charlotte-two .dewdrop { position:absolute; top:30%; left:45%; width:3%; height:3%; background:radial-gradient(circle, #a0a0c0 30%, #404060 100%); border-radius:50%; box-shadow: 0 0 6px 1px rgba(160,160,192,0.3); animation: dc2-dew 6s ease-in-out infinite alternate; }
.scn-dirge-for-charlotte-two .dewdrop2 { position:absolute; top:35%; left:55%; width:2%; height:2%; background:radial-gradient(circle, #a0a0c0 30%, #404060 100%); border-radius:50%; box-shadow: 0 0 4px 1px rgba(160,160,192,0.2); animation: dc2-dew2 7s ease-in-out infinite alternate; animation-delay: 2s; }
@keyframes dc2-deep { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes dc2-mid { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes dc2-coffin { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes dc2-mourn { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(10px) rotate(0) } 75% { transform: translateX(5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dc2-branch { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(3deg) scale(1.02) } 100% { transform: rotate(0deg) scale(1) } }
@keyframes dc2-rose { 0% { transform: scale(1); opacity:0.9 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(1); opacity:0.9 } }
@keyframes dc2-dew { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(2px,-2px) scale(1.2) } 100% { transform: translate(0,0) scale(1) } }
@keyframes dc2-dew2 { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(-3px,-1px) scale(0.9) } 100% { transform: translate(0,0) scale(1) } }

.scn-dirge-for-charlotte-three { background: linear-gradient(180deg, #0e0e1a 0%, #2a1a2e 50%, #1a0a20 100%), radial-gradient(ellipse at 50% 100%, #1a0a20 0%, transparent 70%); }
.scn-dirge-for-charlotte-three .bg { position:absolute; inset:0; background:linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 100%); }
.scn-dirge-for-charlotte-three .hand { position:absolute; left:10%; bottom:30%; width:25%; height:40%; background:linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: right center; animation: dc3-hand 5s ease-in-out infinite; }
.scn-dirge-for-charlotte-three .rose-stem { position:absolute; bottom:10%; left:45%; width:2%; height:50%; background:linear-gradient(180deg, #2a5a2a 0%, #1a3a1a 100%); border-radius: 10%; animation: dc3-stem 6s ease-in-out infinite; }
.scn-dirge-for-charlotte-three .rose-bloom { position:absolute; bottom:55%; left:43%; width:10%; height:12%; background:radial-gradient(circle, #b84d3b 20%, #6a2a1a 80%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 12px 2px rgba(184,77,59,0.4); animation: dc3-bloom 4s ease-in-out infinite; }
.scn-dirge-for-charlotte-three .thorn { position:absolute; bottom:35%; left:47%; width:2%; height:6%; background:linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); animation: dc3-thorn 3s ease-in-out infinite; }
.scn-dirge-for-charlotte-three .drop-blood { position:absolute; bottom:28%; left:46%; width:2.5%; height:3%; background:radial-gradient(circle, #a0461a 30%, #5e1a1d 100%); border-radius: 50%; box-shadow: 0 0 4px 1px rgba(160,70,26,0.5); animation: dc3-drop 7s ease-in-out infinite; }
@keyframes dc3-hand { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(10px) rotate(5deg) } 50% { transform: translateX(20px) rotate(0deg) } 75% { transform: translateX(10px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dc3-stem { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes dc3-bloom { 0% { transform: scale(1); opacity:0.9 } 50% { transform: scale(1.15); opacity:1 } 100% { transform: scale(1); opacity:0.9 } }
@keyframes dc3-thorn { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes dc3-drop { 0% { transform: translateY(0) scale(1); opacity:0.8 } 50% { transform: translateY(20px) scale(0.5); opacity:0.4 } 100% { transform: translateY(0) scale(1); opacity:0.8 } }

.scn-dirge-for-charlotte-four { background: linear-gradient(180deg, #1a0a1a 0%, #2a1a2a 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 100%, #2a1a2a 0%, transparent 70%); }
.scn-dirge-for-charlotte-four .bg { position:absolute; inset:0; background:linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 100%); }
.scn-dirge-for-charlotte-four .broken-stem { position:absolute; bottom:10%; left:48%; width:2%; height:40%; background:linear-gradient(180deg, #2a5a2a 0%, #1a3a1a 100%); border-radius: 10%; clip-path: polygon(0 0, 100% 0, 100% 60%, 40% 100%, 0 100%, 0 0); transform: rotate(-10deg); animation: dc4-stem 8s ease-in-out infinite; }
.scn-dirge-for-charlotte-four .rose-crushed { position:absolute; bottom:45%; left:40%; width:15%; height:10%; background:radial-gradient(ellipse, #b84d3b 20%, #5e1a1d 80%); border-radius: 50% 50% 0 0; transform: rotate(30deg); animation: dc4-crushed 5s ease-in-out infinite; }
.scn-dirge-for-charlotte-four .petal1 { position:absolute; top:20%; left:50%; width:5%; height:8%; background:linear-gradient(180deg, #b84d3b 0%, #8b3a3a 100%); border-radius: 50% 50% 0 0; animation: dc4-petal1 6s ease-in-out infinite; }
.scn-dirge-for-charlotte-four .petal2 { position:absolute; top:35%; left:40%; width:4%; height:7%; background:linear-gradient(180deg, #b84d3b 0%, #8b3a3a 100%); border-radius: 50% 50% 0 0; animation: dc4-petal2 7s ease-in-out infinite; animation-delay: 2s; }
.scn-dirge-for-charlotte-four .tear1 { position:absolute; bottom:30%; left:60%; width:3%; height:4%; background:radial-gradient(circle, #606080 30%, #202040 100%); border-radius: 50%; opacity:0.6; animation: dc4-tear1 4s ease-in-out infinite; }
.scn-dirge-for-charlotte-four .tear2 { position:absolute; bottom:25%; left:55%; width:2%; height:3%; background:radial-gradient(circle, #606080 30%, #202040 100%); border-radius: 50%; opacity:0.6; animation: dc4-tear2 5s ease-in-out infinite; animation-delay: 1.5s; }
@keyframes dc4-stem { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(-8deg) } }
@keyframes dc4-crushed { 0% { transform: rotate(30deg) scale(1) } 50% { transform: rotate(35deg) scale(0.95) } 100% { transform: rotate(30deg) scale(1) } }
@keyframes dc4-petal1 { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(20px, -30px) rotate(45deg) } 50% { transform: translate(40px, -60px) rotate(90deg) } 75% { transform: translate(60px, -90px) rotate(135deg) } 100% { transform: translate(80px, -120px) rotate(180deg) } }
@keyframes dc4-petal2 { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(-15px, -25px) rotate(-30deg) } 50% { transform: translate(-30px, -50px) rotate(-60deg) } 75% { transform: translate(-45px, -75px) rotate(-90deg) } 100% { transform: translate(-60px, -100px) rotate(-120deg) } }
@keyframes dc4-tear1 { 0% { transform: translateY(0) scale(1); opacity:0.6 } 50% { transform: translateY(30px) scale(0.7); opacity:0.3 } 100% { transform: translateY(0) scale(1); opacity:0.6 } }
@keyframes dc4-tear2 { 0% { transform: translateY(0) scale(1); opacity:0.6 } 50% { transform: translateY(20px) scale(0.8); opacity:0.4 } 100% { transform: translateY(0) scale(1); opacity:0.6 } }

.scn-dirge-for-charlotte-five { background: linear-gradient(180deg, #1a0a1a 0%, #0a0a1a 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 100%, #2a1a3a 0%, transparent 70%); }
.scn-dirge-for-charlotte-five .bg-storm { position:absolute; inset:0; background:linear-gradient(180deg, #1a0a1a 0%, #0a0a1a 50%, #1a1a2e 100%); animation: dc5-storm 15s ease-in-out infinite alternate; }
.scn-dirge-for-charlotte-five .lightning1 { position:absolute; top:10%; left:20%; width:3%; height:40%; background:linear-gradient(180deg, #8080ff 0%, transparent 100%); clip-path: polygon(50% 0%, 40% 30%, 60% 30%, 30% 100%, 70% 100%); opacity:0.7; animation: dc5-lightning1 4s ease-in-out infinite; }
.scn-dirge-for-charlotte-five .lightning2 { position:absolute; top:5%; right:30%; width:2%; height:30%; background:linear-gradient(180deg, #8080ff 0%, transparent 100%); clip-path: polygon(50% 0%, 30% 40%, 70% 40%, 40% 100%, 60% 100%); opacity:0.5; animation: dc5-lightning2 6s ease-in-out infinite; animation-delay: 1s; }
.scn-dirge-for-charlotte-five .rod { position:absolute; bottom:15%; left:45%; width:2%; height:50%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10%; animation: dc5-rod 8s ease-in-out infinite; }
.scn-dirge-for-charlotte-five .kneeling-figure { position:absolute; bottom:15%; left:30%; width:20%; height:40%; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dc5-figure 10s ease-in-out infinite; }
.scn-dirge-for-charlotte-five .consolation-beam { position:absolute; top:0; left:35%; width:30%; height:100%; background:linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 70%); clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); animation: dc5-beam 12s ease-in-out infinite alternate; }
@keyframes dc5-storm { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes dc5-lightning1 { 0% { opacity:0.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:0.7; transform: scaleY(1) } }
@keyframes dc5-lightning2 { 0% { opacity:0.5; transform: scaleY(1) } 50% { opacity:0.9; transform: scaleY(1.05) } 100% { opacity:0.5; transform: scaleY(1) } }
@keyframes dc5-rod { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes dc5-figure { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes dc5-beam { 0% { opacity:0.2; transform: scaleY(0.8) } 50% { opacity:0.6; transform: scaleY(1.2) } 100% { opacity:0.2; transform: scaleY(0.8) } }

.scn-suicides-argument {
  background: linear-gradient(180deg, #1a1410 0%, #0d0a08 50%, #050302 100%),
              radial-gradient(ellipse at 50% 60%, #2a1e16 0%, transparent 70%);
}
.scn-suicides-argument .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a201a, #1a1410);
}
.scn-suicides-argument .floor {
  position: absolute; inset: 60% 0 0 0;
  background: linear-gradient(180deg, #2a1e16, #1a120c);
}
.scn-suicides-argument .table {
  position: absolute; bottom: 35%; left: 30%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #4a3020, #2a1a10);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: perspective(300px) rotateX(10deg);
  animation: sa-table-sway 6s ease-in-out infinite;
}
.scn-suicides-argument .candle {
  position: absolute; bottom: 45%; left: 35%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #e0c090, #a08050);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 10px #d0b070, 0 0 40px 20px rgba(200,160,80,0.3);
  animation: sa-candle-flicker 2s ease-in-out infinite alternate;
}
.scn-suicides-argument .figure {
  position: absolute; bottom: 40%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a1a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sa-figure-breathe 4s ease-in-out infinite;
}
.scn-suicides-argument .shadow {
  position: absolute; bottom: 40%; left: 48%; width: 60px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(4px); animation: sa-shadow-sway 4s ease-in-out infinite;
}
.scn-suicides-argument .window {
  position: absolute; top: 20%; right: 15%; width: 50px; height: 60px;
  background: rgba(10,20,30,0.8);
  border: 2px solid #3a2a1a; border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: sa-window-fade 8s ease-in-out infinite alternate;
}
@keyframes sa-table-sway {
  0% { transform: perspective(300px) rotateX(10deg) translateY(0); }
  50% { transform: perspective(300px) rotateX(12deg) translateY(-1px); }
  100% { transform: perspective(300px) rotateX(10deg) translateY(0); }
}
@keyframes sa-candle-flicker {
  0% { opacity: 0.8; box-shadow: 0 0 15px 5px #d0b070; }
  50% { opacity: 1; box-shadow: 0 0 25px 10px #e0c080; }
  100% { opacity: 0.9; box-shadow: 0 0 20px 8px #c0a060; }
}
@keyframes sa-figure-breathe {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px) scaleY(1.02); }
}
@keyframes sa-shadow-sway {
  0%,100% { transform: translateX(0); opacity: 0.7; }
  50% { transform: translateX(3px); opacity: 0.5; }
}
@keyframes sa-window-fade {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}

.scn-time-real-imaginary {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #0a0a1e 100%),
              radial-gradient(ellipse at 50% 20%, #3a3a5e 0%, transparent 80%);
}
.scn-time-real-imaginary .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a4e, #1a1a3e);
  animation: tr-sky-pulse 12s ease-in-out infinite alternate;
}
.scn-time-real-imaginary .mountain {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #4a4a5a, #2a2a3a);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: tr-mountain-sway 18s ease-in-out infinite alternate;
}
.scn-time-real-imaginary .track {
  position: absolute; bottom: 40%; left: 20%; right: 20%; height: 5%;
  background: linear-gradient(90deg, transparent, #6a6a7a, transparent);
  border-radius: 50% / 100% 100% 0 0;
  animation: tr-track-glow 10s ease-in-out infinite alternate;
}
.scn-time-real-imaginary .sister {
  position: absolute; bottom: 45%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #d0c0b0, #a09080);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tr-sister-run 4s ease-in-out infinite;
}
.scn-time-real-imaginary .brother {
  position: absolute; bottom: 45%; left: 55%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #b0a090, #807060);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tr-brother-run 4s ease-in-out infinite 0.5s;
}
.scn-time-real-imaginary .cloud {
  position: absolute; top: 15%; left: -10%; width: 80px; height: 20px;
  background: rgba(255,255,255,0.3);
  border-radius: 50%; filter: blur(6px);
  animation: tr-cloud-drift 30s linear infinite;
}
.scn-time-real-imaginary .star {
  position: absolute; top: 10%; left: 20%; width: 3px; height: 3px;
  background: #fff; border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,255,0.5);
  animation: tr-star-twinkle 3s ease-in-out infinite alternate;
}
@keyframes tr-sky-pulse {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes tr-mountain-sway {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes tr-track-glow {
  0% { opacity: 0.4; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes tr-sister-run {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(5px) rotate(1deg); }
  50% { transform: translateX(10px) rotate(-1deg); }
  75% { transform: translateX(15px) rotate(2deg); }
  100% { transform: translateX(20px) rotate(0deg); }
}
@keyframes tr-brother-run {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-4px) rotate(1deg); }
  50% { transform: translateX(-8px) rotate(-1deg); }
  75% { transform: translateX(-12px) rotate(2deg); }
  100% { transform: translateX(-16px) rotate(0deg); }
}
@keyframes tr-cloud-drift {
  0% { transform: translateX(0); }
  100% { transform: translateX(120vw); }
}
@keyframes tr-star-twinkle {
  0% { opacity: 0.3; transform: scale(0.8); }
  100% { opacity: 1; transform: scale(1.2); }
}

.scn-invocation-from-remorse {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 40%, #2a2a4e 100%),
              radial-gradient(ellipse at 50% 80%, #1a1a3e 0%, transparent 70%);
}
.scn-invocation-from-remorse .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a0a2e, #1a1a3e);
  animation: ir-sky-shimmer 15s ease-in-out infinite alternate;
}
.scn-invocation-from-remorse .moon {
  position: absolute; top: 8%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #d0e0f0 0%, #8090a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,210,240,0.3), 0 0 60px 20px rgba(200,210,240,0.1);
  animation: ir-moon-glow 5s ease-in-out infinite alternate;
}
.scn-invocation-from-remorse .water {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a2a3a, #0a1a2a);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: ir-water-wave 8s ease-in-out infinite alternate;
}
.scn-invocation-from-remorse .figure {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ir-figure-implore 6s ease-in-out infinite;
}
.scn-invocation-from-remorse .spell-lines {
  position: absolute; bottom: 30%; left: 40%; right: 40%; height: 40px;
  background: repeating-linear-gradient(90deg, transparent, transparent 5px, rgba(100,200,255,0.3) 5px, rgba(100,200,255,0.3) 10px);
  animation: ir-spell-pulse 3s ease-in-out infinite;
}
.scn-invocation-from-remorse .bell {
  position: absolute; top: 20%; left: 20%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #c0a070, #806040);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-10deg);
  box-shadow: 0 0 10px 2px rgba(200,160,100,0.3);
  animation: ir-bell-sway 4s ease-in-out infinite alternate;
}
.scn-invocation-from-remorse .clouds {
  position: absolute; top: 5%; left: -20%; width: 60px; height: 15px;
  background: rgba(255,255,255,0.1);
  border-radius: 50%; filter: blur(4px);
  animation: ir-clouds-drift 40s linear infinite;
}
@keyframes ir-sky-shimmer {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes ir-moon-glow {
  0% { box-shadow: 0 0 20px 5px rgba(200,210,240,0.2); }
  100% { box-shadow: 0 0 40px 15px rgba(200,210,240,0.4); }
}
@keyframes ir-water-wave {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes ir-figure-implore {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(-5deg); }
}
@keyframes ir-spell-pulse {
  0% { opacity: 0.2; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}
@keyframes ir-bell-sway {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes ir-clouds-drift {
  0% { transform: translateX(0); }
  100% { transform: translateX(150vw); }
}

.scn-night-scene-dramatic {
  background: linear-gradient(180deg, #0a0a2e 0%, #151530 40%, #0a0a2e 100%),
              radial-gradient(ellipse at 50% 30%, #20204a 0%, transparent 80%);
}
.scn-night-scene-dramatic .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0a2e, #151530);
  animation: ns-sky-pulse 20s ease-in-out infinite alternate;
}
.scn-night-scene-dramatic .wall {
  position: absolute; top: 30%; left: 20%; right: 20%; height: 60%;
  background: linear-gradient(180deg, #2a2a3e, #1a1a2e);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: ns-wall-fade 15s ease-in-out infinite alternate;
}
.scn-night-scene-dramatic .figure-left {
  position: absolute; bottom: 40%; left: 30%; width: 25px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a, #1a1a2a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ns-figure-left-rest 6s ease-in-out infinite;
}
.scn-night-scene-dramatic .figure-right {
  position: absolute; bottom: 40%; left: 60%; width: 25px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a4a, #2a2a3a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ns-figure-right-turn 8s ease-in-out infinite;
}
.scn-night-scene-dramatic .fountain {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 40px;
  background: linear-gradient(180deg, #4a4a5a, #2a2a3a);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ns-fountain-sparkle 4s ease-in-out infinite;
}
.scn-night-scene-dramatic .moon {
  position: absolute; top: 10%; right: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, #c0d0e0, #8090a0);
  border-radius: 50%;
  box-shadow: 0 0 20px 5px rgba(200,210,240,0.2);
  animation: ns-moon-glow 6s ease-in-out infinite alternate;
}
.scn-night-scene-dramatic .shadow {
  position: absolute; bottom: 40%; left: 30%; width: 60px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(3px);
  animation: ns-shadow-drift 10s ease-in-out infinite alternate;
}
@keyframes ns-sky-pulse {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes ns-wall-fade {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}
@keyframes ns-figure-left-rest {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
}
@keyframes ns-figure-right-turn {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(5deg); }
  100% { transform: translateX(-50%) rotate(-5deg); }
}
@keyframes ns-fountain-sparkle {
  0% { box-shadow: 0 0 5px 2px rgba(255,255,255,0.1); }
  50% { box-shadow: 0 0 15px 5px rgba(255,255,255,0.3); }
  100% { box-shadow: 0 0 5px 2px rgba(255,255,255,0.1); }
}
@keyframes ns-moon-glow {
  0% { box-shadow: 0 0 10px 3px rgba(200,210,240,0.1); }
  100% { box-shadow: 0 0 30px 10px rgba(200,210,240,0.3); }
}
@keyframes ns-shadow-drift {
  0% { transform: translateX(0); opacity: 0.5; }
  100% { transform: translateX(10px); opacity: 0.3; }
}

.scn-sancti-dominici-notes-three {
  background: linear-gradient(180deg, #2a1e1a 0%, #3d2b24 40%, #5e3b2d 100%), radial-gradient(ellipse at 50% 70%, #f4a460 0%, transparent 60%);
}
.scn-sancti-dominici-notes-three .wall {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 60%, rgba(0,0,0,0.3) 100%);
  pointer-events: none;
}
.scn-sancti-dominici-notes-three .desk {
  position: absolute; bottom: 5%; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #5c3a24, #3d261a);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.5);
}
.scn-sancti-dominici-notes-three .candle {
  position: absolute; bottom: 20%; left: 35%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #e8cfa0, #c49a6c);
  border-radius: 4px 4px 2px 2px;
  transform-origin: bottom center;
  animation: sn3-candle 3s ease-in-out infinite;
}
.scn-sancti-dominici-notes-three .flame {
  position: absolute; bottom: calc(20% + 40px); left: calc(35% + 1px);
  width: 10px; height: 16px;
  background: radial-gradient(circle at 50% 100%, #ffd700 0%, #ff8c00 40%, transparent 70%);
  border-radius: 50% 50% 20% 20%;
  animation: sn3-flame 2s ease-in-out infinite;
}
.scn-sancti-dominici-notes-three .book {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 15px;
  background: linear-gradient(180deg, #6d4c2a, #4a3220);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 1px 1px 4px rgba(0,0,0,0.4);
  animation: sn3-book 8s ease-in-out infinite;
}
.scn-sancti-dominici-notes-three .paper {
  position: absolute; bottom: 20%; left: 50%; width: 25px; height: 10px;
  background: linear-gradient(180deg, #f5e6d3, #d4b896);
  border-radius: 1px;
  transform: rotate(-2deg);
  animation: sn3-paper 10s ease-in-out infinite;
}
.scn-sancti-dominici-notes-three .quill {
  position: absolute; bottom: 20%; left: 30%; width: 4px; height: 35px;
  background: linear-gradient(180deg, #b0a090, #4a3a30);
  border-radius: 50% 50% 10% 10% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  transform-origin: bottom left;
  animation: sn3-quill 4s ease-in-out infinite;
}
.scn-sancti-dominici-notes-three .inkwell {
  position: absolute; bottom: 20%; left: 32%; width: 10px; height: 12px;
  background: linear-gradient(180deg, #1a1a2e, #0a0a1e);
  border-radius: 50% 50% 10% 10%;
  border: 2px solid #6d4c2a;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
}
@keyframes sn3-candle {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(1); }
}
@keyframes sn3-flame {
  0% { opacity: 0.8; transform: scale(1) translate(0,0); }
  25% { opacity: 1; transform: scale(1.1) translate(1px,-1px); }
  50% { opacity: 0.85; transform: scale(0.95) translate(-1px,0); }
  75% { opacity: 0.95; transform: scale(1.05) translate(1px,1px); }
  100% { opacity: 0.8; transform: scale(1) translate(0,0); }
}
@keyframes sn3-book {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(-3deg) translateY(-1px); }
  100% { transform: rotate(-5deg); }
}
@keyframes sn3-paper {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-1px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes sn3-quill {
  0% { transform: rotate(15deg); }
  50% { transform: rotate(12deg); }
  100% { transform: rotate(15deg); }
}

.scn-sancti-dominici-linenotes {
  background: linear-gradient(180deg, #1f1a17 0%, #3d2c22 50%, #2a1f1c 100%), radial-gradient(ellipse at 30% 50%, #f4a460 0%, transparent 60%);
}
.scn-sancti-dominici-linenotes .window {
  position: absolute; top: 10%; left: 5%; width: 35%; height: 50%;
  background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 100%);
  border: 2px solid #6d4c2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-sancti-dominici-linenotes .curtain-l {
  position: absolute; top: 10%; left: 5%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #6d4c2a 0%, #4a3220 100%);
  border-radius: 30% 0 0 50%;
  transform-origin: left;
  animation: snl-curtain 8s ease-in-out infinite;
}
.scn-sancti-dominici-linenotes .curtain-r {
  position: absolute; top: 10%; right: 60%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #6d4c2a 0%, #4a3220 100%);
  border-radius: 0 30% 50% 0;
  transform-origin: right;
  animation: snl-curtain 8s ease-in-out infinite reverse;
}
.scn-sancti-dominici-linenotes .lamp {
  position: absolute; bottom: 30%; left: 15%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #6d4c2a, #4a3220);
  border-radius: 2px;
}
.scn-sancti-dominici-linenotes .lamp-shade {
  position: absolute; bottom: calc(30% + 30px); left: calc(15% - 8px);
  width: 26px; height: 12px;
  background: linear-gradient(180deg, #d4b896, #b09070);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 -4px 10px rgba(244,164,96,0.6);
  animation: snl-lampglow 4s ease-in-out infinite;
}
.scn-sancti-dominici-linenotes .chair {
  position: absolute; bottom: 5%; right: 15%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3d2b24, #1f1a17);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  box-shadow: 2px 0 8px rgba(0,0,0,0.6);
  animation: snl-chair 6s ease-in-out infinite;
}
.scn-sancti-dominici-linenotes .rug {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #6d4c2a 25%, #4a3220 50%, #6d4c2a 75%);
  border-radius: 50% 50% 0 0;
}
.scn-sancti-dominici-linenotes .book {
  position: absolute; bottom: 10%; right: 25%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #7a5c3a, #4a3220);
  border-radius: 2px;
  transform: rotate(10deg);
  animation: snl-book 6s ease-in-out infinite;
}
.scn-sancti-dominici-linenotes .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 50%, transparent 40%, rgba(0,0,0,0.4) 100%);
  pointer-events: none;
  animation: snl-shadow 10s ease-in-out infinite;
}
@keyframes snl-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.95); }
  100% { transform: scaleX(1); }
}
@keyframes snl-lampglow {
  0% { opacity: 0.8; box-shadow: 0 -4px 10px rgba(244,164,96,0.6); }
  50% { opacity: 1; box-shadow: 0 -4px 20px rgba(244,164,96,0.9); }
  100% { opacity: 0.8; box-shadow: 0 -4px 10px rgba(244,164,96,0.6); }
}
@keyframes snl-chair {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes snl-book {
  0% { transform: rotate(10deg); }
  50% { transform: rotate(7deg) translateY(-1px); }
  100% { transform: rotate(10deg); }
}
@keyframes snl-shadow {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

.scn-love-sword-song {
  background: linear-gradient(180deg, #1a0f0a 0%, #2e1a12 40%, #3d2418 100%), radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(0,0,0,0.5) 100%);
}
.scn-love-sword-song .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, rgba(200,220,255,0.05) 0%, transparent 60%);
  pointer-events: none;
}
.scn-love-sword-song .table {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3020, #2e1a12);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.6);
  animation: lss-table 10s ease-in-out infinite;
}
.scn-love-sword-song .sword-blade {
  position: absolute; bottom: 10%; left: 10%; right: 20%; height: 5px;
  background: linear-gradient(90deg, #e0e8ff 0%, #ffffff 50%, #e0e8ff 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-15deg);
  transform-origin: left center;
  box-shadow: 0 0 20px rgba(200,220,255,0.8);
  animation: lss-blade 6s ease-in-out infinite;
}
.scn-love-sword-song .sword-hilt {
  position: absolute; bottom: 12%; left: 10%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #4a3220, #2e1a12);
  border-radius: 2px;
  transform: rotate(-15deg);
  transform-origin: top center;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
}
.scn-love-sword-song .sheath {
  position: absolute; bottom: 10%; left: 50%; width: 30px; height: 8px;
  background: linear-gradient(180deg, #7a5c3a, #4a3220);
  border-radius: 4px;
  transform: rotate(-5deg);
  box-shadow: 1px 1px 4px rgba(0,0,0,0.4);
}
.scn-love-sword-song .wreath {
  position: absolute; bottom: 15%; left: 25%; width: 20px; height: 20px;
  border: 3px solid #6d4c2a;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #6d4c2a 0%, transparent 70%);
  box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
  animation: lss-wreath 12s ease-in-out infinite;
}
.scn-love-sword-song .sparkle1 {
  position: absolute; bottom: 20%; left: 20%; width: 3px; height: 3px;
  background: #ffffff;
  border-radius: 50%;
  box-shadow: 0 0 6px #ffffff;
  animation: lss-sparkle 2.5s ease-in-out infinite;
}
.scn-love-sword-song .sparkle2 {
  position: absolute; bottom: 18%; left: 30%; width: 3px; height: 3px;
  background: #ffffff;
  border-radius: 50%;
  box-shadow: 0 0 6px #ffffff;
  animation: lss-sparkle 2.5s ease-in-out infinite;
  animation-delay: 0.8s;
}
.scn-love-sword-song .sparkle3 {
  position: absolute; bottom: 22%; left: 15%; width: 3px; height: 3px;
  background: #ffffff;
  border-radius: 50%;
  box-shadow: 0 0 6px #ffffff;
  animation: lss-sparkle 2.5s ease-in-out infinite;
  animation-delay: 1.6s;
}
@keyframes lss-table {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.005); }
  100% { transform: scaleY(1); }
}
@keyframes lss-blade {
  0% { opacity: 0.8; box-shadow: 0 0 20px rgba(200,220,255,0.8); }
  50% { opacity: 1; box-shadow: 0 0 40px rgba(200,220,255,1); }
  100% { opacity: 0.8; box-shadow: 0 0 20px rgba(200,220,255,0.8); }
}
@keyframes lss-wreath {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(0deg); }
}
@keyframes lss-sparkle {
  0% { opacity: 0; transform: scale(0.5); }
  20% { opacity: 1; transform: scale(1.2); }
  60% { opacity: 0.8; transform: scale(1); }
  100% { opacity: 0; transform: scale(0.5); }
}

.scn-a-character-intro {
  background: linear-gradient(180deg, #1a1512 0%, #2a1e1a 50%, #3d2b24 100%), radial-gradient(ellipse at 50% 70%, #f4a460 0%, transparent 60%);
}
.scn-a-character-intro .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 50%, rgba(0,0,0,0.3) 100%);
  pointer-events: none;
}
.scn-a-character-intro .stand {
  position: absolute; bottom: 0; left: 50%; width: 4px; height: 50%;
  background: linear-gradient(180deg, #4a3220, #2e1a12);
  transform: translateX(-50%);
  border-radius: 2px;
}
.scn-a-character-intro .perch {
  position: absolute; bottom: 40%; left: 20%; right: 20%; height: 4px;
  background: linear-gradient(90deg, #4a3220, #6d4c2a, #4a3220);
  border-radius: 2px;
  animation: aci-perch 5s ease-in-out infinite;
}
.scn-a-character-intro .bird-body {
  position: absolute; bottom: calc(40% + 4px); left: 35%; width: 30px; height: 25px;
  background: radial-gradient(ellipse at 50% 60%, #8a6020 0%, #5e3b1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: aci-body 3s ease-in-out infinite;
}
.scn-a-character-intro .bird-head {
  position: absolute; bottom: calc(40% + 4px + 20px); left: 38%; width: 16px; height: 16px;
  background: radial-gradient(circle at 50% 40%, #b08040 0%, #7a5c3a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: aci-head 4s ease-in-out infinite;
}
.scn-a-character-intro .bird-beak {
  position: absolute; bottom: calc(40% + 4px + 20px + 6px); left: 54%; width: 8px; height: 6px;
  background: linear-gradient(180deg, #d4b896, #b09070);
  border-radius: 0 50% 0 0;
  transform: rotate(-10deg);
  transform-origin: bottom left;
  animation: aci-beak 2s ease-in-out infinite;
}
.scn-a-character-intro .bird-eye {
  position: absolute; bottom: calc(40% + 4px + 20px + 10px); left: 42%; width: 4px; height: 4px;
  background: #1a1a2e;
  border-radius: 50%;
  box-shadow: 0 0 2px #ffffff;
  animation: aci-eye 4s ease-in-out infinite;
}
.scn-a-character-intro .bird-wing {
  position: absolute; bottom: calc(40% + 4px + 5px); left: 32%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #6d4c2a, #4a3220);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  transform-origin: top right;
  animation: aci-wing 4s ease-in-out infinite;
}
.scn-a-character-intro .bird-tail {
  position: absolute; bottom: calc(40% + 4px); left: 55%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #8a6020, #5e3b1a);
  border-radius: 20% 20% 50% 50% / 30% 30% 70% 70%;
  transform: rotate(-20deg);
  transform-origin: bottom left;
  animation: aci-tail 5s ease-in-out infinite;
}
@keyframes aci-perch {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.8); }
  100% { transform: scaleY(1); }
}
@keyframes aci-body {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(3deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes aci-head {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes aci-beak {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(0deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes aci-eye {
  0% { transform: scale(1); }
  50% { transform: scale(1.2); }
  100% { transform: scale(1); }
}
@keyframes aci-wing {
  0% { transform: rotate(15deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(15deg); }
}
@keyframes aci-tail {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(-25deg); }
  100% { transform: rotate(-20deg); }
}

.scn-two-founts-notes {
  background: linear-gradient(180deg, #1b1a20 0%, #2c2425 40%, #3d2f2a 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a30 0%, transparent 60%);
}
.scn-two-founts-notes .desk {
  position: absolute;
  bottom: 0;
  left: 10%;
  right: 10%;
  height: 35%;
  background: linear-gradient(180deg, #4a3b31 0%, #2a1f18 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.6);
}
.scn-two-founts-notes .paper-left {
  position: absolute;
  bottom: 30%;
  left: 18%;
  width: 28%;
  height: 12%;
  background: linear-gradient(135deg, #e8dcc8 0%, #c4b89a 100%);
  border-radius: 2px 8px 8px 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  transform: rotate(-4deg);
  animation: tf-paper 8s ease-in-out infinite alternate;
}
.scn-two-founts-notes .paper-right {
  position: absolute;
  bottom: 28%;
  right: 16%;
  width: 24%;
  height: 10%;
  background: linear-gradient(135deg, #e0d4be 0%, #b8a88a 100%);
  border-radius: 8px 2px 2px 8px;
  box-shadow: -2px 2px 4px rgba(0,0,0,0.4);
  transform: rotate(3deg);
  animation: tf-paper2 9s ease-in-out infinite alternate;
}
.scn-two-founts-notes .inkwell-left {
  position: absolute;
  bottom: 32%;
  left: 30%;
  width: 14%;
  height: 16%;
  background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: tf-ink 6s ease-in-out infinite;
}
.scn-two-founts-notes .inkwell-right {
  position: absolute;
  bottom: 34%;
  right: 28%;
  width: 12%;
  height: 14%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1f18 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: tf-ink2 7s ease-in-out infinite;
}
.scn-two-founts-notes .candle {
  position: absolute;
  bottom: 36%;
  left: 50%;
  width: 6%;
  height: 22%;
  margin-left: -3%;
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b89a 70%, #8a7a5a 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3);
  animation: tf-candle 5s ease-in-out infinite;
}
.scn-two-founts-notes .flame {
  position: absolute;
  bottom: 56%;
  left: 50%;
  width: 4%;
  height: 8%;
  margin-left: -2%;
  background: radial-gradient(circle, #ffdd88 0%, #ff9933 50%, transparent 90%);
  border-radius: 50%;
  box-shadow: 0 0 24px 12px #ff9933, 0 0 48px 24px rgba(255,153,51,0.4);
  animation: tf-flame 2s ease-in-out infinite alternate;
}
.scn-two-founts-notes .book {
  position: absolute;
  bottom: 26%;
  left: 8%;
  width: 12%;
  height: 15%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 4% 4% 10% 10%;
  box-shadow: 0 3px 6px rgba(0,0,0,0.5);
  transform: rotate(6deg);
  animation: tf-book 12s ease-in-out infinite;
}
@keyframes tf-paper {
  0% { transform: rotate(-4deg) translate(0,0); }
  50% { transform: rotate(-2deg) translate(4px,-3px); }
  100% { transform: rotate(-4deg) translate(0,0); }
}
@keyframes tf-paper2 {
  0% { transform: rotate(3deg) translate(0,0); }
  50% { transform: rotate(1deg) translate(-3px,-2px); }
  100% { transform: rotate(3deg) translate(0,0); }
}
@keyframes tf-ink {
  0% { transform: scaleY(1); }
  25% { transform: scaleY(0.98) translateY(1px); }
  50% { transform: scaleY(1.02) translateY(-1px); }
  75% { transform: scaleY(0.99) translateY(1px); }
  100% { transform: scaleY(1); }
}
@keyframes tf-ink2 {
  0% { transform: scaleY(1) rotate(0); }
  33% { transform: scaleY(0.97) rotate(-2deg); }
  66% { transform: scaleY(1.03) rotate(2deg); }
  100% { transform: scaleY(1) rotate(0); }
}
@keyframes tf-candle {
  0%,100% { transform: scaleY(1); }
  25% { transform: scaleY(0.98) translateY(1%); }
  50% { transform: scaleY(1.01) translateY(-0.5%); }
  75% { transform: scaleY(0.99) translateY(0.5%); }
}
@keyframes tf-flame {
  0% { transform: scale(1) translateY(0); opacity:0.8; }
  30% { transform: scale(1.1) translateY(-5%) rotate(-3deg); opacity:1; }
  60% { transform: scale(0.95) translateY(2%) rotate(2deg); opacity:0.9; }
  100% { transform: scale(1.05) translateY(-2%) rotate(-1deg); opacity:0.85; }
}
@keyframes tf-book {
  0%,100% { transform: rotate(6deg) translate(0,0); }
  50% { transform: rotate(4deg) translate(2px,-2px); }
}

.scn-constancy-to-ideal-object {
  background: linear-gradient(180deg, #0f0e1a 0%, #1a1828 40%, #24203a 100%),
              radial-gradient(ellipse at 50% 30%, #3a3050 0%, transparent 60%);
}
.scn-constancy-to-ideal-object .figure {
  position: absolute;
  bottom: 6%;
  left: 50%;
  width: 12%;
  height: 24%;
  margin-left: -6%;
  background: linear-gradient(180deg, #1e1a2a 0%, #0a0812 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ci-figure 6s ease-in-out infinite;
}
.scn-constancy-to-ideal-object .pedestal {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 20%;
  height: 6%;
  margin-left: -10%;
  background: linear-gradient(180deg, #2a2640 0%, #1a1828 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 4px 6px rgba(0,0,0,0.6);
}
.scn-constancy-to-ideal-object .sphere {
  position: absolute;
  top: 16%;
  left: 50%;
  width: 10%;
  height: 18%;
  margin-left: -5%;
  background: radial-gradient(circle at 40% 35%, #b8a0e8 0%, #6a5080 60%, #2a2040 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #6a5080, 0 0 80px 40px rgba(106,80,128,0.3);
  animation: ci-sphere 4s ease-in-out infinite alternate;
}
.scn-constancy-to-ideal-object .light-beam {
  position: absolute;
  top: 32%;
  left: 50%;
  width: 2%;
  height: 40%;
  margin-left: -1%;
  background: linear-gradient(180deg, rgba(180,150,220,0.3) 0%, rgba(180,150,220,0.05) 100%);
  border-radius: 20%;
  filter: blur(6px);
  animation: ci-beam 7s ease-in-out infinite;
}
.scn-constancy-to-ideal-object .thought-a {
  position: absolute;
  top: 40%;
  right: 20%;
  width: 3%;
  height: 3%;
  background: radial-gradient(circle, rgba(200,180,255,0.6) 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ci-thought1 12s linear infinite;
}
.scn-constancy-to-ideal-object .thought-b {
  position: absolute;
  top: 35%;
  left: 18%;
  width: 2.5%;
  height: 2.5%;
  background: radial-gradient(circle, rgba(200,180,255,0.4) 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(1.5px);
  animation: ci-thought2 15s linear infinite reverse;
}
.scn-constancy-to-ideal-object .floor-shadow {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 8%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
}
@keyframes ci-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1%) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-1%) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ci-sphere {
  0% { transform: scale(1) brightness(1); box-shadow: 0 0 40px 20px #6a5080; }
  40% { transform: scale(1.05) brightness(1.15); box-shadow: 0 0 60px 30px #9a80c0; }
  100% { transform: scale(0.98) brightness(0.9); box-shadow: 0 0 30px 15px #4a3860; }
}
@keyframes ci-beam {
  0% { opacity:0.3; transform: scaleY(1); }
  50% { opacity:0.6; transform: scaleY(1.1); }
  100% { opacity:0.3; transform: scaleY(1); }
}
@keyframes ci-thought1 {
  0% { transform: translate(0,0) scale(1); opacity:0.6; }
  25% { transform: translate(20%,-30%) scale(0.8); opacity:0.4; }
  50% { transform: translate(40%,-60%) scale(0.5); opacity:0.2; }
  75% { transform: translate(60%,-90%) scale(0.3); opacity:0.1; }
  100% { transform: translate(80%,-120%) scale(0); opacity:0; }
}
@keyframes ci-thought2 {
  0% { transform: translate(0,0) scale(1); opacity:0.5; }
  25% { transform: translate(-15%,-40%) scale(0.7); opacity:0.3; }
  50% { transform: translate(-30%,-80%) scale(0.4); opacity:0.2; }
  75% { transform: translate(-45%,-120%) scale(0.2); opacity:0.1; }
  100% { transform: translate(-60%,-160%) scale(0); opacity:0; }
}

.scn-constancy-home {
  background: linear-gradient(180deg, #0f122a 0%, #1a1e3a 35%, #2a2e4a 70%, #1a1e3a 100%),
              radial-gradient(ellipse at 50% 80%, #2a3a5a 0%, transparent 60%);
}
.scn-constancy-home .room {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, transparent 0%, rgba(10,12,25,.6) 60%, #0a0c19 100%);
}
.scn-constancy-home .window {
  position: absolute; top: 10%; left: 50%; width: 30%; height: 35%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #1a3c5a 0%, #0a1a2a 70%);
  border-radius: 50% / 40% 40% 60% 60%;
  box-shadow: inset 0 0 40px rgba(20,60,100,0.6);
  animation: ch-window 12s ease-in-out infinite alternate;
}
.scn-constancy-home .moon {
  position: absolute; top: 8%; left: 58%; width: 40px; height: 40px;
  background: radial-gradient(circle, #dcedff 0%, #8ab4d6 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(138,180,214,0.5), 0 0 60px 20px rgba(138,180,214,0.2);
  animation: ch-moon 8s ease-in-out infinite alternate;
}
.scn-constancy-home .figure {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1c2a 0%, #0a0c18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ch-figure 6s ease-in-out infinite;
}
.scn-constancy-home .cot {
  position: absolute; bottom: 12%; left: 30%; width: 90px; height: 30px;
  background: linear-gradient(180deg, #2a2c3a 0%, #1a1c28 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-constancy-home .hearth {
  position: absolute; bottom: 5%; right: 25%; width: 40px; height: 25px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.8);
}
.scn-constancy-home .hearth::after {
  content: ''; position: absolute; bottom: 2px; left: 10px; width: 20px; height: 8px;
  background: linear-gradient(180deg, #c07030 0%, #802010 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #c07030;
  animation: ch-hearth 3s ease-in-out infinite alternate;
}
.scn-constancy-home .mote {
  position: absolute; width: 4px; height: 4px;
  background: radial-gradient(circle, #c0d8e8 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-constancy-home .mote-a {
  top: 25%; left: 20%;
  animation: ch-mote-a 20s linear infinite;
}
.scn-constancy-home .mote-b {
  top: 35%; left: 70%;
  animation: ch-mote-b 25s linear infinite reverse;
}
@keyframes ch-window {
  0% { box-shadow: inset 0 0 30px rgba(20,60,100,0.5); opacity: 0.8; }
  50% { box-shadow: inset 0 0 50px rgba(30,80,120,0.7); opacity: 1; }
  100% { box-shadow: inset 0 0 40px rgba(20,60,100,0.6); opacity: 0.9; }
}
@keyframes ch-moon {
  0% { transform: translate(0,0) scale(1); box-shadow: 0 0 25px 8px rgba(138,180,214,0.4); }
  50% { transform: translate(2px,-3px) scale(1.02); box-shadow: 0 0 35px 12px rgba(138,180,214,0.6); }
  100% { transform: translate(-1px,1px) scale(0.98); box-shadow: 0 0 30px 10px rgba(138,180,214,0.5); }
}
@keyframes ch-figure {
  0% { transform: rotate(-2deg) translateX(0); }
  25% { transform: rotate(0deg) translateX(3px); }
  50% { transform: rotate(1deg) translateX(0); }
  75% { transform: rotate(0deg) translateX(-2px); }
  100% { transform: rotate(-1deg) translateX(0); }
}
@keyframes ch-hearth {
  0% { box-shadow: 0 0 8px 2px #c07030; opacity: 0.7; }
  50% { box-shadow: 0 0 16px 6px #e08040; opacity: 1; }
  100% { box-shadow: 0 0 12px 4px #c07030; opacity: 0.8; }
}
@keyframes ch-mote-a {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.5; }
  50% { transform: translateY(-30px) translateX(20px) scale(1.2); opacity: 0.8; }
  100% { transform: translateY(-60px) translateX(10px) scale(0.8); opacity: 0.3; }
}
@keyframes ch-mote-b {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.4; }
  50% { transform: translateY(-20px) translateX(-15px) scale(1.1); opacity: 0.7; }
  100% { transform: translateY(-50px) translateX(-5px) scale(0.9); opacity: 0.2; }
}

.scn-pang-more-sharp-intro {
  background: linear-gradient(180deg, #0e0b14 0%, #1a1525 40%, #2a1f30 70%, #1a1525 100%),
              radial-gradient(ellipse at 50% 90%, #2a1a30 0%, transparent 60%);
}
.scn-pang-more-sharp-intro .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(10,8,15,0.8) 60%, #07050c 100%);
}
.scn-pang-more-sharp-intro .niche {
  position: absolute; bottom: 10%; left: 50%; width: 160px; height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, #2a1e35 0%, #14101e 70%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8), 0 8px 20px rgba(0,0,0,0.6);
}
.scn-pang-more-sharp-intro .flame {
  position: absolute; bottom: 18%; left: 50%; width: 14px; height: 22px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 50% 100%, #ffa050 0%, #d06020 50%, #401008 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 0 20px 6px #ffa050, 0 0 40px 12px rgba(255,160,80,0.3);
  animation: ps-flame 1.5s ease-in-out infinite alternate;
}
.scn-pang-more-sharp-intro .pilgrim {
  position: absolute; bottom: 14%; left: 38%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #1a1522 0%, #0a0812 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-pilgrim 5s ease-in-out infinite;
}
.scn-pang-more-sharp-intro .staff {
  position: absolute; bottom: 16%; left: 36%; width: 3px; height: 35px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a100c 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: ps-staff 5s ease-in-out infinite;
}
.scn-pang-more-sharp-intro .ash {
  position: absolute; width: 3px; height: 3px;
  background: radial-gradient(circle, #c0b0a0 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(0.5px);
}
.scn-pang-more-sharp-intro .ash-a {
  top: 40%; left: 30%;
  animation: ps-ash-a 12s linear infinite;
}
.scn-pang-more-sharp-intro .ash-b {
  top: 50%; left: 60%;
  animation: ps-ash-b 15s linear infinite reverse;
}
@keyframes ps-flame {
  0% { transform: translateX(-50%) scaleY(1) translateY(0); box-shadow: 0 0 18px 5px #ffa050; }
  30% { transform: translateX(-50%) scaleY(1.2) translateY(-2px); box-shadow: 0 0 25px 8px #ffb060; }
  60% { transform: translateX(-50%) scaleY(0.9) translateY(1px); box-shadow: 0 0 15px 4px #d06020; }
  100% { transform: translateX(-50%) scaleY(1.05) translateY(-1px); box-shadow: 0 0 20px 6px #ffa050; }
}
@keyframes ps-pilgrim {
  0% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(1deg) translateX(1px); }
  50% { transform: rotate(-1deg) translateX(-1px); }
  75% { transform: rotate(0.5deg) translateX(0.5px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes ps-staff {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes ps-ash-a {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-40px) translateX(15px) scale(1.3); opacity: 0.3; }
  100% { transform: translateY(-80px) translateX(-10px) scale(0.7); opacity: 0; }
}
@keyframes ps-ash-b {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.5; }
  50% { transform: translateY(-30px) translateX(-20px) scale(1.1); opacity: 0.2; }
  100% { transform: translateY(-70px) translateX(5px) scale(0.8); opacity: 0; }
}

.scn-constancy-home {
  background:
    linear-gradient(180deg, #0f0e1a 0%, #1a1828 40%, #2a2535 70%, #3a3045 100%),
    radial-gradient(ellipse at 50% 100%, #2a2535 0%, transparent 70%);
}

.scn-constancy-home .bg-room {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #1f1c2c 0%, #2d263a 50%, #1a1623 100%);
  animation: ch-ambient 15s ease-in-out infinite alternate;
}

.scn-constancy-home .wall-left {
  position: absolute;
  top: 5%;
  left: 0;
  width: 30%;
  height: 85%;
  background: linear-gradient(180deg, #2d263a 0%, #1f1c2c 100%);
  border-radius: 0 8% 8% 0;
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.6);
  animation: ch-wallshadow 20s ease-in-out infinite alternate;
}

.scn-constancy-home .window {
  position: absolute;
  top: 10%;
  left: 35%;
  width: 40%;
  height: 50%;
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 60%, #3a4a5a 100%);
  border: 4px solid #4a3a2a;
  border-radius: 4% 4% 8% 8% / 10% 10% 12% 12%;
  box-shadow: inset 0 0 20px rgba(100,140,180,0.3), 0 0 30px rgba(100,140,180,0.1);
  animation: ch-moon 10s ease-in-out infinite alternate;
}

.scn-constancy-home .moonbeam {
  position: absolute;
  top: 15%;
  left: 40%;
  width: 25%;
  height: 60%;
  background: linear-gradient(180deg, rgba(200,220,255,0.15) 0%, rgba(200,220,255,0.05) 60%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%);
  animation: ch-beam 8s ease-in-out infinite alternate;
}

.scn-constancy-home .table {
  position: absolute;
  bottom: 10%;
  left: 20%;
  width: 60%;
  height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
  transform: perspective(300px) rotateX(3deg);
}

.scn-constancy-home .candle {
  position: absolute;
  bottom: 22%;
  left: 48%;
  width: 6px;
  height: 20px;
  background: linear-gradient(180deg, #f0d0a0 0%, #d0a070 50%, #a07040 100%);
  border-radius: 30% 30% 10% 10%;
  transform: translateX(-50%);
  animation: ch-candle 3s ease-in-out infinite;
}

.scn-constancy-home .glow {
  position: absolute;
  bottom: 20%;
  left: 48%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, rgba(255,200,100,0.1) 50%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: ch-glow 2s ease-in-out infinite alternate;
}

.scn-constancy-home .figure {
  position: absolute;
  bottom: 22%;
  left: 25%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #1a1828 0%, #0f0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ch-figure 6s ease-in-out infinite;
}

.scn-constancy-home .shadow {
  position: absolute;
  bottom: 10%;
  left: 20%;
  width: 35%;
  height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: ch-shadow 8s ease-in-out infinite alternate;
}

@keyframes ch-ambient { 0% { opacity:0.9; filter: brightness(1); } 50% { opacity:1; filter: brightness(1.05); } 100% { opacity:0.85; filter: brightness(0.95); } }
@keyframes ch-wallshadow { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes ch-moon { 0% { background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 60%, #3a4a5a 100%); box-shadow: inset 0 0 20px rgba(100,140,180,0.3); } 50% { background: linear-gradient(180deg, #2a3a4a 0%, #3a4a5a 50%, #4a5a6a 100%); box-shadow: inset 0 0 40px rgba(100,140,180,0.5); } 100% { background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 60%, #3a4a5a 100%); box-shadow: inset 0 0 20px rgba(100,140,180,0.2); } }
@keyframes ch-beam { 0% { opacity:0.3; transform: scaleX(0.8); } 50% { opacity:0.5; transform: scaleX(1); } 100% { opacity:0.2; transform: scaleX(0.9) translateX(-5px); } }
@keyframes ch-candle { 0% { transform: translateX(-50%) scaleY(1); opacity:0.9; } 25% { transform: translateX(-50%) scaleY(1.02); opacity:1; } 50% { transform: translateX(-50%) scaleY(0.98); opacity:0.8; } 75% { transform: translateX(-50%) scaleY(1.01); opacity:1; } 100% { transform: translateX(-50%) scaleY(1); opacity:0.9; } }
@keyframes ch-glow { 0% { transform: translate(-50%, -50%) scale(0.9); opacity:0.4; } 50% { transform: translate(-50%, -50%) scale(1.1); opacity:0.6; } 100% { transform: translate(-50%, -50%) scale(1); opacity:0.3; } }
@keyframes ch-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ch-shadow { 0% { transform: scaleX(1) translateX(0); opacity:0.6; } 50% { transform: scaleX(1.1) translateX(5px); opacity:0.8; } 100% { transform: scaleX(0.95) translateX(-3px); opacity:0.5; } }

/* constancy-to-ideal-object */
.scn-constancy-to-ideal-object {
  background: 
    linear-gradient(180deg, #0a0a14 0%, #12101e 40%, #1a1830 100%),
    radial-gradient(ellipse at 60% 55%, #2a2044 0%, transparent 70%);
}
.scn-constancy-to-ideal-object .bg-wall {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #0e0c1a 0%, #161426 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
  animation: ci-wall 14s ease-in-out infinite alternate;
}
.scn-constancy-to-ideal-object .bg-floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: linear-gradient(180deg, #1a182a 0%, #0a0814 100%);
  border-radius: 60% 40% 0 0 / 20% 10% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,.5);
  animation: ci-floor 20s ease-in-out infinite;
}
.scn-constancy-to-ideal-object .table {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 120px;
  height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: ci-table 8s ease-in-out infinite;
}
.scn-constancy-to-ideal-object .ideal-object {
  position: absolute;
  bottom: calc(30% + 12px);
  left: 50%;
  width: 30px;
  height: 30px;
  transform: translateX(-50%) translateY(-50%);
  background: radial-gradient(circle, #ffd080 0%, #c08040 60%, #603010 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 6px #c08040, 0 0 60px 12px rgba(192,128,64,.4);
  animation: ci-glow 3s ease-in-out infinite alternate;
}
.scn-constancy-to-ideal-object .figure {
  position: absolute;
  bottom: 30%;
  left: 38%;
  width: 22px;
  height: 48px;
  background: linear-gradient(180deg, #0a0a14 0%, #141220 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: ci-figure 6s ease-in-out infinite;
}
.scn-constancy-to-ideal-object .mote {
  position: absolute;
  width: 6px;
  height: 6px;
  background: radial-gradient(circle, rgba(255,220,160,0.8) 0%, rgba(255,200,100,0) 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ci-mote 10s ease-in-out infinite;
}
.scn-constancy-to-ideal-object .mote-a { top: 20%; left: 45%; animation-delay: 0s; }
.scn-constancy-to-ideal-object .mote-b { top: 35%; left: 55%; animation-delay: -3s; }
.scn-constancy-to-ideal-object .mote-c { top: 15%; left: 30%; animation-delay: -6s; }

@keyframes ci-wall {
  0% { opacity: 0.7; }
  50% { opacity: 0.85; }
  100% { opacity: 0.7; }
}
@keyframes ci-floor {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1); }
}
@keyframes ci-table {
  0%,100% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(0.97); }
}
@keyframes ci-glow {
  0% { box-shadow: 0 0 20px 4px #c08040, 0 0 40px 8px rgba(192,128,64,.3); opacity: 0.85; transform: translateX(-50%) translateY(-50%) scale(0.95); }
  50% { box-shadow: 0 0 40px 10px #ffd060, 0 0 80px 20px rgba(255,208,96,.5); opacity: 1; transform: translateX(-50%) translateY(-50%) scale(1.05); }
  100% { box-shadow: 0 0 25px 5px #c08040, 0 0 50px 12px rgba(192,128,64,.35); opacity: 0.9; transform: translateX(-50%) translateY(-50%) scale(0.98); }
}
@keyframes ci-figure {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(4px) rotate(2deg); }
  40% { transform: translateX(8px) rotate(1deg); }
  60% { transform: translateX(10px) rotate(-1deg); }
  80% { transform: translateX(6px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ci-mote {
  0% { transform: translate(0, 0) scale(1); opacity: 0.3; }
  25% { transform: translate(10px, -15px) scale(1.2); opacity: 0.6; }
  50% { transform: translate(-5px, -30px) scale(0.9); opacity: 0.8; }
  75% { transform: translate(15px, -10px) scale(1.1); opacity: 0.5; }
  100% { transform: translate(0, 0) scale(1); opacity: 0.3; }
}

/* Scene: pms - pang-more-sharp-intro (dim interior, warmthless flame, pilgrim) */
.scn-pang-more-sharp-intro {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2c2218 40%, #1e1612 100%),
    radial-gradient(ellipse at 50% 60%, #2c2218 0%, transparent 60%);
}

.scn-pang-more-sharp-intro .wall-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(30,22,18,0.9) 0%, rgba(20,15,12,0.7) 100%);
  animation: pms-ambient 15s ease-in-out infinite alternate;
}
.scn-pang-more-sharp-intro .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #1e1612 0%, #0f0b09 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  transform: perspective(400px) rotateX(5deg);
}
.scn-pang-more-sharp-intro .hearth {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 80px;
  height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
}
.scn-pang-more-sharp-intro .flame {
  position: absolute;
  bottom: 32%;
  left: 50%;
  width: 8px;
  height: 18px;
  transform: translateX(-50%) scaleX(0.6);
  background: radial-gradient(ellipse, #b8784e 0%, #8a5a3a 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: pms-flame 1.2s ease-in-out infinite;
}
.scn-pang-more-sharp-intro .flame-glow {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 40px;
  height: 40px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle, rgba(184,120,78,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: pms-glow 2s ease-in-out infinite alternate;
}
.scn-pang-more-sharp-intro .pilgrim {
  position: absolute;
  bottom: 18%;
  left: 38%;
  width: 24px;
  height: 60px;
  background: linear-gradient(180deg, #2a1e16 0%, #0f0b09 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pms-pilgrim 5s ease-in-out infinite alternate;
}
.scn-pang-more-sharp-intro .shadow {
  position: absolute;
  bottom: 18%;
  left: 46%;
  width: 50px;
  height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: pms-shadow 6s ease-in-out infinite alternate;
}

@keyframes pms-ambient {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pms-flame {
  0% { transform: translateX(-50%) scaleX(0.6) scaleY(1); opacity: 0.9; }
  25% { transform: translateX(-50%) scaleX(0.55) scaleY(1.1); opacity: 1; }
  50% { transform: translateX(-50%) scaleX(0.65) scaleY(0.95); opacity: 0.8; }
  75% { transform: translateX(-50%) scaleX(0.5) scaleY(1.05); opacity: 0.95; }
  100% { transform: translateX(-50%) scaleX(0.6) scaleY(1); opacity: 0.9; }
}
@keyframes pms-glow {
  0% { transform: translate(-50%, 0) scale(1); opacity: 0.6; }
  50% { transform: translate(-50%, -2px) scale(1.1); opacity: 0.8; }
  100% { transform: translate(-50%, 0) scale(1); opacity: 0.5; }
}
@keyframes pms-pilgrim {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes pms-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.05) translateX(2px); opacity: 0.7; }
  100% { transform: scaleX(0.95) translateX(-2px); opacity: 0.4; }
}

.scn-two-founts-notes {
  background:
    linear-gradient(180deg, #0e0808 0%, #1a1010 30%, #2a1a1a 60%, #1a1010 100%),
    radial-gradient(ellipse at 50% 60%, #2a1a1a 0%, transparent 70%);
}

.scn-two-founts-notes .wall {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 100%);
  border-bottom: 2px solid #3a2a1a;
  animation: tfn-wall 15s ease-in-out infinite alternate;
}

.scn-two-founts-notes .window-glow {
  position: absolute;
  top: 12%;
  left: 28%;
  width: 80px;
  height: 100px;
  background: linear-gradient(135deg, rgba(200,180,160,0.08) 0%, rgba(200,180,160,0.03) 100%);
  border-radius: 4px;
  box-shadow: 0 0 40px 20px rgba(200,180,160,0.04);
  animation: tfn-glow 8s ease-in-out infinite alternate;
}

.scn-two-founts-notes .desk {
  position: absolute;
  bottom: 20%;
  left: 10%;
  right: 10%;
  height: 18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 2% 2% 4% 4% / 10% 10% 20% 20%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
  transform: perspective(500px) rotateX(4deg);
  animation: tfn-desk 20s ease-in-out infinite alternate;
}

.scn-two-founts-notes .papers-stack {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 60px;
  height: 30px;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a880 50%, #a09070 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-2deg);
  animation: tfn-stack 12s ease-in-out infinite alternate;
}

.scn-two-founts-notes .single-paper {
  position: absolute;
  bottom: 33%;
  left: 42%;
  width: 50px;
  height: 22px;
  background: linear-gradient(180deg, #e8d8b8 0%, #d4c4a0 100%);
  border-radius: 1px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.4);
  transform: rotate(3deg);
  animation: tfn-paper 6s ease-in-out infinite alternate;
}

.scn-two-founts-notes .inkwell {
  position: absolute;
  bottom: 34%;
  left: 30%;
  width: 20px;
  height: 24px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0808 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.7);
  transform: scale(0.95);
  animation: tfn-inkwell 10s ease-in-out infinite alternate;
}

.scn-two-founts-notes .hand {
  position: absolute;
  bottom: 34%;
  left: 38%;
  width: 16px;
  height: 28px;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tfn-hand 4s ease-in-out infinite alternate;
}

.scn-two-founts-notes .lamp-base {
  position: absolute;
  bottom: 36%;
  right: 22%;
  width: 30px;
  height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.5);
  animation: tfn-lamp 0.5s ease-in-out infinite alternate;
}

.scn-two-founts-notes .lamp-glow {
  position: absolute;
  bottom: 46%;
  right: 15%;
  width: 70px;
  height: 70px;
  background: radial-gradient(circle, rgba(255,200,120,0.6) 0%, rgba(255,180,80,0.2) 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,180,80,0.3), 0 0 120px 60px rgba(255,150,50,0.1);
  animation: tfn-glow 3s ease-in-out infinite alternate;
  pointer-events: none;
}

@keyframes tfn-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

@keyframes tfn-glow {
  0% { opacity: 0.6; box-shadow: 0 0 40px 20px rgba(200,180,160,0.04); }
  50% { opacity: 1; box-shadow: 0 0 60px 30px rgba(200,180,160,0.07); }
  100% { opacity: 0.7; box-shadow: 0 0 50px 25px rgba(200,180,160,0.05); }
}

@keyframes tfn-desk {
  0% { transform: perspective(500px) rotateX(4deg) translateY(0); }
  50% { transform: perspective(500px) rotateX(4deg) translateY(2px); }
  100% { transform: perspective(500px) rotateX(4deg) translateY(0); }
}

@keyframes tfn-stack {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(-2deg) translateX(3px); }
  100% { transform: rotate(-2deg) translateX(0); }
}

@keyframes tfn-paper {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-4px); }
  100% { transform: rotate(3deg) translateY(0); }
}

@keyframes tfn-inkwell {
  0% { transform: scale(0.95) translateY(0); }
  50% { transform: scale(0.95) translateY(1px); }
  100% { transform: scale(0.95) translateY(0); }
}

@keyframes tfn-hand {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(3px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(6px) translateY(-2px) rotate(0deg); }
  75% { transform: translateX(9px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(12px) translateY(0) rotate(-1deg); }
}

@keyframes tfn-lamp {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}

@keyframes tfn-glow {
  0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 60px 30px rgba(255,180,80,0.3), 0 0 120px 60px rgba(255,150,50,0.1); }
  50% { transform: scale(1.05); opacity: 1; box-shadow: 0 0 80px 40px rgba(255,200,120,0.4), 0 0 160px 80px rgba(255,180,80,0.15); }
  100% { transform: scale(0.98); opacity: 0.7; box-shadow: 0 0 50px 25px rgba(255,160,60,0.25), 0 0 100px 50px rgba(255,140,40,0.08); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.cloud-layer { position: absolute; pointer-events: none; }
.cloud-ts-a { position: absolute; pointer-events: none; }
.l1 { position: absolute; pointer-events: none; }
.motes { position: absolute; pointer-events: none; }
.stack { position: absolute; pointer-events: none; }
.star-field { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
/* scene: song-closed-prayer */
.scn-song-closed-prayer {
  background: linear-gradient(180deg, #1c1a2a 0%, #2a2638 40%, #3a3244 70%, #4c3e52 100%),
              radial-gradient(ellipse at 50% 20%, #4c3e52 0%, transparent 70%);
}
.scn-song-closed-prayer .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 60%); }
.scn-song-closed-prayer .window-frame { position:absolute; inset:8% 25% 50% 25%; border:6px solid #5a4a3a; border-radius:4px; background: #1a1a2a; box-shadow: inset 0 0 30px #0a0a1a; }
.scn-song-closed-prayer .window-light { position:absolute; inset:10% 27% 52% 27%; background: radial-gradient(ellipse, rgba(200,180,160,0.3) 0%, transparent 70%); animation: scp-light 6s ease-in-out infinite alternate; }
.scn-song-closed-prayer .kneeling-figure { position:absolute; bottom:15%; left:35%; width:30%; height:35%; background: linear-gradient(180deg, #2a2430 0%, #18141c 100%); border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%; transform-origin: bottom center; animation: scp-bow 8s ease-in-out infinite; }
.scn-song-closed-prayer .prayer-book { position:absolute; bottom:22%; left:48%; width:12%; height:8%; background: #4a3a2a; border-radius: 4px; transform: rotate(-5deg); box-shadow: 0 2px 8px #000; animation: scp-book 8s ease-in-out infinite; }
.scn-song-closed-prayer .candle { position:absolute; bottom:18%; right:30%; width:4%; height:15%; background: linear-gradient(180deg, #d4b896 0%, #a08060 100%); border-radius: 4px 4px 2px 2px; animation: scp-candle 4s ease-in-out infinite; }
.scn-song-closed-prayer .floating-note { position:absolute; top:20%; left:50%; width:20px; height:12px; background: radial-gradient(ellipse, #d4c4a0, transparent); border-radius: 50%; filter: blur(2px); animation: scp-note 12s ease-in-out infinite; }
@keyframes scp-light {
  0%, 100% { opacity:0.4; }
  50% { opacity:0.7; }
}
@keyframes scp-bow {
  0%, 100% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-4px) rotate(-2deg); }
}
@keyframes scp-book {
  0%, 100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
}
@keyframes scp-candle {
  0%, 100% { opacity:0.8; transform: scaleY(1); }
  50% { opacity:1; transform: scaleY(1.05); }
}
@keyframes scp-note {
  0% { transform: translate(0,0) scale(0.8); opacity:0; }
  20% { opacity:0.6; }
  50% { transform: translate(-20px, -30px) scale(1.2); opacity:0.4; }
  80% { opacity:0.6; }
  100% { transform: translate(20px, 20px) scale(0.9); opacity:0; }
}

/* scene: manuscript-variant-annotations */
.scn-manuscript-variant-annotations {
  background: linear-gradient(180deg, #2e281e 0%, #3d3529 30%, #4a4033 70%, #3a3327 100%),
              radial-gradient(ellipse at 50% 60%, #4a4033 0%, transparent 80%);
}
.scn-manuscript-variant-annotations .parchment { position:absolute; inset:10% 15% 15% 15%; background: #e8dcc8; border-radius: 8px; box-shadow: 0 4px 20px #000; }
.scn-manuscript-variant-annotations .text-block { position:absolute; inset:18% 20% 60% 20%; background: linear-gradient(180deg, #c4b090 0%, #b8a080 100%); border-radius: 2px; animation: msv-text 10s ease-in-out infinite; }
.scn-manuscript-variant-annotations .annotation-line { position:absolute; right:22%; top:20%; width:8%; height:40%; background: #a09070; border-radius: 1px; transform: rotate(-8deg); animation: msv-annot 15s ease-in-out infinite; }
.scn-manuscript-variant-annotations .inkwell { position:absolute; bottom:22%; left:22%; width:6%; height:8%; background: #1a1a1a; border-radius: 50% 50% 30% 30%; }
.scn-manuscript-variant-annotations .quill { position:absolute; bottom:25%; left:25%; width:2%; height:25%; background: linear-gradient(180deg, #d4c4a0 0%, #c0b090 100%); border-radius: 90% 90% 10% 10%; transform: rotate(-30deg); animation: msv-quill 6s ease-in-out infinite; }
.scn-manuscript-variant-annotations .candle-desk { position:absolute; bottom:18%; right:28%; width:5%; height:12%; background: #c8b89a; border-radius: 4px; }
.scn-manuscript-variant-annotations .candle-flame { position:absolute; bottom:28%; right:28%; width:4%; height:6%; background: radial-gradient(ellipse, #ffd080 0%, #e8a040 60%, transparent 100%); border-radius: 50%; animation: msv-flame 3s ease-in-out infinite; }
@keyframes msv-text {
  0%, 100% { opacity:0.8; }
  50% { opacity:1; }
}
@keyframes msv-annot {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-6deg) translateY(-2px); }
  100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes msv-quill {
  0%, 100% { transform: rotate(-30deg); }
  50% { transform: rotate(-20deg); }
}
@keyframes msv-flame {
  0%, 100% { transform: scale(1); opacity:0.8; }
  50% { transform: scale(1.2); opacity:1; }
}

/* scene: quantocks-heathy-hills */
.scn-quantocks-heathy-hills {
  background: linear-gradient(180deg, #87ceeb 0%, #b0d8f0 30%, #e0e8e0 60%, #c8d8a0 90%, #a0c080 100%),
              radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 60%);
}
.scn-quantocks-heathy-hills .sky-hills { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a0d0e0 0%, transparent 100%); animation: qhh-sky 15s ease-in-out infinite alternate; }
.scn-quantocks-heathy-hills .far-hills { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a9a6a 0%, #5a7a4a 100%); border-radius: 60% 40% 0 0 / 70% 80% 0 0; animation: qhh-hills 20s ease-in-out infinite; }
.scn-quantocks-heathy-hills .mid-hills { position:absolute; bottom:25%; left:-5%; right:-5%; height:30%; background: linear-gradient(180deg, #8aac7a 0%, #6a8a5a 100%); border-radius: 50% 50% 0 0; animation: qhh-hills 25s ease-in-out infinite reverse; }
.scn-quantocks-heathy-hills .near-hills { position:absolute; bottom:10%; left:0; right:0; height:30%; background: linear-gradient(180deg, #9aba8a 0%, #7a9a6a 100%); border-radius: 40% 60% 0 0; }
.scn-quantocks-heathy-hills .figure-on-hill { position:absolute; bottom:30%; left:35%; width:6%; height:10%; background: #2a2a1a; border-radius: 50% 50% 40% 40%; animation: qhh-figure 12s ease-in-out infinite; }
.scn-quantocks-heathy-hills .skylark { position:absolute; top:15%; left:60%; width:4%; height:3%; background: #3a3a2a; border-radius: 50%; animation: qhh-lark 8s ease-in-out infinite; }
.scn-quantocks-heathy-hills .hidden-rill { position:absolute; bottom:28%; left:20%; width:2%; height:10%; background: #a0c0e0; border-radius: 0 0 50% 50%; animation: qhh-rill 10s ease-in-out infinite; }
@keyframes qhh-sky {
  0% { opacity:0.7; }
  50% { opacity:1; }
  100% { opacity:0.8; }
}
@keyframes qhh-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes qhh-figure {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
}
@keyframes qhh-lark {
  0% { transform: translate(0,0) scale(1); }
  50% { transform: translate(10px,-20px) scale(1.3); }
  100% { transform: translate(0,0) scale(1); }
}
@keyframes qhh-rill {
  0%, 100% { opacity:0.6; transform: scaleY(1); }
  50% { opacity:1; transform: scaleY(1.1); }
}

/* scene: two-sisters-farewell */
.scn-two-sisters-farewell {
  background: linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 30%, #4a3a3a 60%, #5a3a2a 100%),
              radial-gradient(ellipse at 50% 60%, #7a4a3a 0%, transparent 70%);
}
.scn-two-sisters-farewell .room-walls { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); }
.scn-two-sisters-farewell .hearth { position:absolute; bottom:10%; left:25%; right:25%; height:35%; background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 100%); border-radius: 50% 50% 10% 10%; }
.scn-two-sisters-farewell .fire-glow { position:absolute; bottom:20%; left:30%; right:30%; height:30%; background: radial-gradient(ellipse, #e8a040 0%, #c07030 40%, transparent 80%); animation: tsf-fire 5s ease-in-out infinite; }
.scn-two-sisters-farewell .sister-left { position:absolute; bottom:18%; left:38%; width:10%; height:30%; background: #1a1a2a; border-radius: 50% 50% 40% 40%; transform-origin: bottom center; animation: tsf-sway 6s ease-in-out infinite; }
.scn-two-sisters-farewell .sister-right { position:absolute; bottom:18%; right:38%; width:10%; height:30%; background: #1a1a2a; border-radius: 50% 50% 40% 40%; transform-origin: bottom center; animation: tsf-sway 6s ease-in-out infinite reverse; }
.scn-two-sisters-farewell .doorway { position:absolute; bottom:5%; left:45%; right:45%; height:60%; background: #2a1a1a; border-radius: 50% 50% 0 0; box-shadow: inset 0 0 20px #000; }
.scn-two-sisters-farewell .parting-shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, #1a0a0a 100%); animation: tsf-shadow 10s ease-in-out infinite; }
@keyframes tsf-fire {
  0%, 100% { transform: scale(1); opacity:0.7; }
  50% { transform: scale(1.1); opacity:1; }
}
@keyframes tsf-sway {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-4px); }
}
@keyframes tsf-shadow {
  0%, 100% { opacity:0.5; }
  50% { opacity:0.8; }
}

/* ============================ Scene 1: sweet-sisters-hearth-dream ============================ */
.scn-sweet-sisters-hearth-dream {
  background: 
    radial-gradient(ellipse at 50% 80%, #b85a30 0%, transparent 60%),
    linear-gradient(180deg, #1a0e08 0%, #2b1a10 40%, #3d2215 70%, #0f0805 100%);
}
.scn-sweet-sisters-hearth-dream .fire-bg {
  position: absolute; inset: 30% 10% 0 10%; background: radial-gradient(ellipse at 50% 100%, #ffa53a 0%, #b85a30 40%, transparent 70%);
  animation: sshi-firebg 4s ease-in-out infinite alternate;
}
.scn-sweet-sisters-hearth-dream .hearth-arch {
  position: absolute; bottom: 5%; left: 50%; transform: translateX(-50%); width: 60%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, #1a0e08 70%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: inset 0 -12px 20px rgba(0,0,0,0.6);
}
.scn-sweet-sisters-hearth-dream .logs {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%); width: 30%; height: 4%;
  background: linear-gradient(90deg, #2a1a10 0%, #4a2a1a 30%, #2a1a10 70%, #4a2a1a 100%);
  border-radius: 20px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-sweet-sisters-hearth-dream .flames {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%); width: 12%; height: 15%;
  background: radial-gradient(ellipse at 50% 0%, #ffcc60 0%, #ff8830 50%, transparent 80%);
  filter: blur(4px);
  animation: sshi-flame 0.8s ease-in-out infinite alternate;
}
.scn-sweet-sisters-hearth-dream .sister-left {
  position: absolute; bottom: 5%; left: 25%; width: 12%; height: 30%;
  background: radial-gradient(ellipse at 50% 10%, #2a1a10 0%, #0f0805 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sshi-figure 5s ease-in-out infinite;
}
.scn-sweet-sisters-hearth-dream .sister-right {
  position: absolute; bottom: 5%; right: 25%; width: 12%; height: 30%;
  background: radial-gradient(ellipse at 50% 10%, #2a1a10 0%, #0f0805 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sshi-figure 5s ease-in-out infinite reverse;
}
.scn-sweet-sisters-hearth-dream .dream-particles {
  position: absolute; top: 10%; left: 0; right: 0; height: 40%;
  background: radial-gradient(circle at 20% 30%, rgba(255,200,100,0.3) 0%, transparent 50%),
              radial-gradient(circle at 80% 60%, rgba(255,200,100,0.2) 0%, transparent 50%);
  animation: sshi-particles 10s linear infinite;
}
@keyframes sshi-firebg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sshi-flame { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.3); } 100% { transform: translateX(-50%) scaleY(0.9); } }
@keyframes sshi-figure { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(-1deg) translateY(1px); } }
@keyframes sshi-particles { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }

/* ============================ Scene 2: variant-readings-friend ============================ */
.scn-variant-readings-friend {
  background:
    radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, #1a1008 80%),
    linear-gradient(180deg, #2a1a0a 0%, #1a1008 60%, #0a0502 100%);
}
.scn-variant-readings-friend .study-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 50%, #1a1008 100%);
  animation: svrf-bg 20s ease-in-out infinite alternate;
}
.scn-variant-readings-friend .desk {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 8%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 20px 20px 0 0;
  box-shadow: 0 -8px 16px rgba(0,0,0,0.4);
}
.scn-variant-readings-friend .book {
  position: absolute; bottom: 8%; left: 50%; transform: translateX(-50%); width: 20%; height: 15%;
  background: linear-gradient(135deg, #c8a87c 0%, #a08060 50%, #806040 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: svrf-page 8s ease-in-out infinite;
}
.scn-variant-readings-friend .candle {
  position: absolute; bottom: 16%; left: 35%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #f0d080 0%, #a08050 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(240,200,100,0.6);
  animation: svrf-candle 4s ease-in-out infinite alternate;
}
.scn-variant-readings-friend .figure {
  position: absolute; bottom: 8%; left: 20%; width: 10%; height: 25%;
  background: radial-gradient(ellipse at 50% 10%, #2a1a0a 0%, #0f0805 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: svrf-figure 6s ease-in-out infinite;
}
.scn-variant-readings-friend .shadow {
  position: absolute; bottom: 0; left: 15%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: svrf-shadow 6s ease-in-out infinite alternate;
}
@keyframes svrf-bg { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes svrf-page { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes svrf-candle { 0% { box-shadow: 0 0 15px 6px rgba(240,200,100,0.4); } 50% { box-shadow: 0 0 30px 12px rgba(240,200,100,0.7); } 100% { box-shadow: 0 0 20px 8px rgba(240,200,100,0.5); } }
@keyframes svrf-figure { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(1px); } }
@keyframes svrf-shadow { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(0.9); } }

/* ============================ Scene 3: different-errors-heal ============================ */
.scn-different-errors-heal {
  background:
    radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, #1a1008 70%),
    linear-gradient(180deg, #2a1a0a 0%, #1a1008 50%, #0a0502 100%);
}
.scn-different-errors-heal .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1a0a 0%, #1a1008 50%, #0f0805 100%);
}
.scn-different-errors-heal .figure-left {
  position: absolute; bottom: 5%; left: 15%; width: 14%; height: 35%;
  background: radial-gradient(ellipse at 50% 10%, #2a1a0a 0%, #0f0805 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sdeh-figure 5s ease-in-out infinite;
}
.scn-different-errors-heal .figure-right {
  position: absolute; bottom: 5%; right: 15%; width: 14%; height: 35%;
  background: radial-gradient(ellipse at 50% 10%, #2a1a0a 0%, #0f0805 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sdeh-figure 5s ease-in-out infinite reverse;
}
.scn-different-errors-heal .table {
  position: absolute; bottom: 0; left: 25%; width: 50%; height: 6%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.5);
}
.scn-different-errors-heal .lamp {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 4%; height: 15%;
  background: linear-gradient(180deg, #f0d080 0%, #a08050 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 24px 12px rgba(240,200,100,0.5);
  animation: sdeh-lamp 4s ease-in-out infinite alternate;
}
.scn-different-errors-heal .glow-center {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(240,200,100,0.2) 0%, transparent 70%);
  animation: sdeh-glow 6s ease-in-out infinite alternate;
}
.scn-different-errors-heal .healing-orb {
  position: absolute; bottom: 30%; width: 4%; height: 4%;
  border-radius: 50%;
  background: radial-gradient(circle, #f0d080 0%, #c89850 50%, transparent 80%);
  box-shadow: 0 0 16px 6px rgba(240,200,100,0.6);
}
.scn-different-errors-heal .left-orb {
  left: 30%;
  animation: sdeh-orbL 8s ease-in-out infinite;
}
.scn-different-errors-heal .right-orb {
  right: 30%;
  animation: sdeh-orbR 8s ease-in-out infinite;
}
@keyframes sdeh-figure { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-4px); } 100% { transform: rotate(-2deg) translateY(1px); } }
@keyframes sdeh-lamp { 0% { box-shadow: 0 0 20px 8px rgba(240,200,100,0.4); } 50% { box-shadow: 0 0 40px 16px rgba(240,200,100,0.7); } 100% { box-shadow: 0 0 25px 10px rgba(240,200,100,0.5); } }
@keyframes sdeh-glow { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes sdeh-orbL { 0% { transform: scale(0.8) translate(0, 0); opacity: 0.3; } 50% { transform: scale(1.2) translate(15px, -10px); opacity: 0.9; } 100% { transform: scale(0.8) translate(30px, 0); opacity: 0.3; } }
@keyframes sdeh-orbR { 0% { transform: scale(0.8) translate(0, 0); opacity: 0.3; } 50% { transform: scale(1.2) translate(-15px, -10px); opacity: 0.9; } 100% { transform: scale(0.8) translate(-30px, 0); opacity: 0.3; } }

/* scene: devil-sunday-best */
.scn-devil-sunday-best {
  background:
    linear-gradient(180deg, #87CEEB 0%, #F0E68C 60%, #DEB887 100%),
    radial-gradient(ellipse at 50% 0%, #F0E68C 20%, transparent 60%);
}
.scn-devil-sunday-best .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #87CEEB, #FFF8DC); animation: devSun-sky 12s ease-in-out infinite alternate; }
.scn-devil-sunday-best .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8FBC8F 0%, #6B8E23 100%); border-radius: 40% 0 0 0; }
.scn-devil-sunday-best .cottage { position:absolute; bottom:25%; left:10%; width:120px; height:80px; background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: devSun-cottage 15s ease-in-out infinite alternate; }
.scn-devil-sunday-best .coach-house { position:absolute; bottom:28%; left:55%; width:80px; height:60px; background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: devSun-coach 18s ease-in-out infinite alternate; }
.scn-devil-sunday-best .devil { position:absolute; bottom:30%; left:35%; width:30px; height:70px; background: linear-gradient(180deg, #DC143C 0%, #B22222 50%, #8B0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: devSun-walk 3s ease-in-out infinite; }
.scn-devil-sunday-best .tail-hole { position:absolute; bottom:35%; left:38%; width:8px; height:8px; background: #2F4F4F; border-radius: 50%; animation: devSun-hole 3s ease-in-out infinite; }
.scn-devil-sunday-best .grin { position:absolute; bottom:55%; left:36%; width:10px; height:4px; background: transparent; border-bottom: 3px solid #8B0000; border-radius: 0 0 50% 50%; animation: devSun-grin 1.5s ease-in-out infinite alternate; }
.scn-devil-sunday-best .sunbeams { position:absolute; top:0; left:0; right:0; bottom:0; background: repeating-linear-gradient(45deg, transparent, transparent 30px, rgba(255,255,0,0.05) 30px, rgba(255,255,0,0.05) 60px); animation: devSun-beams 20s linear infinite; pointer-events: none; }
@keyframes devSun-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes devSun-cottage { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes devSun-coach { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes devSun-walk { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(10px) translateY(0) rotate(0deg); } 75% { transform: translateX(15px) translateY(-2px) rotate(-3deg); } 100% { transform: translateX(20px) translateY(0) rotate(0deg); } }
@keyframes devSun-hole { 0% { transform: scale(1); } 50% { transform: scale(1.2) rotate(10deg); } 100% { transform: scale(1); } }
@keyframes devSun-grin { 0% { width: 6px; } 50% { width: 14px; } 100% { width: 10px; } }
@keyframes devSun-beams { 0% { background-position: 0 0; } 100% { background-position: 200px 100px; } }

/* scene: devil-quotes-genesis */
.scn-devil-quotes-genesis {
  background:
    linear-gradient(180deg, #3E2723 0%, #4E342E 40%, #5D4037 100%),
    radial-gradient(ellipse at 30% 50%, #6D4C41 20%, transparent 70%);
}
.scn-devil-quotes-genesis .wall { position:absolute; inset:0; background: linear-gradient(180deg, #5D4037 0%, #3E2723 100%); }
.scn-devil-quotes-genesis .pulpit { position:absolute; bottom:20%; left:50%; width:60px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #8D6E63 0%, #5D4037 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: devGen-pulpit 12s ease-in-out infinite alternate; }
.scn-devil-quotes-genesis .devil { position:absolute; bottom:30%; left:45%; width:30px; height:70px; background: linear-gradient(180deg, #B71C1C 0%, #880E4F 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: devGen-devil 5s ease-in-out infinite; }
.scn-devil-quotes-genesis .book { position:absolute; bottom:40%; left:42%; width:20px; height:25px; background: linear-gradient(135deg, #8D6E63, #4E342E); border-radius: 2px; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.6); animation: devGen-book 4s ease-in-out infinite alternate; }
.scn-devil-quotes-genesis .candle { position:absolute; bottom:45%; left:60%; width:8px; height:30px; background: linear-gradient(180deg, #FFC107 0%, #FF8F00 40%, #4E342E 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px #FFB300, 0 0 40px 12px rgba(255,179,0,0.3); animation: devGen-candle 3s ease-in-out infinite alternate; }
.scn-devil-quotes-genesis .shadow-creature { position:absolute; bottom:20%; left:20%; width:40px; height:50px; background: rgba(0,0,0,0.6); border-radius: 50% 50% 30% 30%; filter: blur(8px); animation: devGen-shadow 8s ease-in-out infinite; }
.scn-devil-quotes-genesis .dust { position:absolute; top:20%; left:30%; width:80px; height:80px; background: radial-gradient(circle at 50% 50%, rgba(255,255,200,0.05) 0%, transparent 70%); animation: devGen-dust 20s linear infinite; }
@keyframes devGen-pulpit { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes devGen-devil { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(0deg); } 75% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes devGen-book { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes devGen-candle { 0% { height: 28px; box-shadow: 0 0 15px 4px #FFB300; } 50% { height: 32px; box-shadow: 0 0 25px 8px #FFB300; } 100% { height: 28px; box-shadow: 0 0 15px 4px #FFB300; } }
@keyframes devGen-shadow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.5; transform: scale(1); } }
@keyframes devGen-dust { 0% { transform: translateY(0) rotate(0deg); opacity: 0.3; } 50% { transform: translateY(-20px) rotate(180deg); opacity: 0.6; } 100% { transform: translateY(-40px) rotate(360deg); opacity: 0; } }

/* scene: psalm-hexameter-paraphrase */
.scn-psalm-hexameter-paraphrase {
  background:
    linear-gradient(180deg, #2C2A4A 0%, #3E3B5C 40%, #4A456E 80%, #5C567D 100%),
    radial-gradient(ellipse at 50% 10%, #6B5B95 10%, transparent 60%);
}
.scn-psalm-hexameter-paraphrase .arch { position:absolute; top:0; left:0; right:0; height:60%; background: radial-gradient(ellipse at 50% 0%, transparent 40%, #3E3B5C 41%, #2C2A4A 70%); }
.scn-psalm-hexameter-paraphrase .column { position:absolute; bottom:0; width:20px; height:80%; background: linear-gradient(180deg, #6B5B95 0%, #4A456E 100%); border-radius: 5px; box-shadow: 0 0 10px rgba(0,0,0,0.5); }
.scn-psalm-hexameter-paraphrase .column:nth-child(2) { left:15%; }
.scn-psalm-hexameter-paraphrase .column:nth-child(3) { right:15%; }
.scn-psalm-hexameter-paraphrase .figure { position:absolute; bottom:25%; left:40%; width:28px; height:65px; background: linear-gradient(180deg, #4A456E 0%, #2C2A4A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: psalm-figure 6s ease-in-out infinite; }
.scn-psalm-hexameter-paraphrase .book { position:absolute; bottom:32%; left:38%; width:18px; height:22px; background: linear-gradient(135deg, #6B5B95, #4A456E); border-radius: 2px; transform: rotate(-5deg); animation: psalm-book 4s ease-in-out infinite alternate; }
.scn-psalm-hexameter-paraphrase .lamp { position:absolute; bottom:45%; left:60%; width:10px; height:25px; background: linear-gradient(180deg, #FFD700 0%, #B8860B 50%, #4A456E 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px #FFD700, 0 0 40px 12px rgba(255,215,0,0.3); animation: psalm-lamp 4s ease-in-out infinite alternate; }
.scn-psalm-hexameter-paraphrase .window { position:absolute; top:15%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #1A1A2E, #3E3B5C); border: 2px solid #6B5B95; border-radius: 4px; animation: psalm-window 8s ease-in-out infinite alternate; }
.scn-psalm-hexameter-paraphrase .stone-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, #4A456E 0px, #4A456E 40px, #5C567D 40px, #5C567D 80px); animation: psalm-floor 20s linear infinite; }
@keyframes psalm-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes psalm-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes psalm-lamp { 0% { box-shadow: 0 0 15px 4px #FFD700; } 50% { box-shadow: 0 0 30px 10px #FFD700; } 100% { box-shadow: 0 0 15px 4px #FFD700; } }
@keyframes psalm-window { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes psalm-floor { 0% { background-position: 0 0; } 100% { background-position: 160px 0; } }

/* scene: ruined-tower-genevieve */
.scn-ruined-tower-genevieve {
  background:
    linear-gradient(180deg, #FFDAB9 0%, #F4A460 40%, #DEB887 80%, #8B4513 100%),
    radial-gradient(ellipse at 50% 0%, #FFF8DC 20%, transparent 70%);
}
.scn-ruined-tower-genevieve .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #FFDAB9 0%, #F4A460 100%); animation: towGene-sky 10s ease-in-out infinite alternate; }
.scn-ruined-tower-genevieve .tower { position:absolute; bottom:15%; left:30%; width:60px; height:110px; background: linear-gradient(180deg, #A0522D 0%, #8B4513 50%, #5C3A21 100%); border-radius: 5% 5% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: towGene-tower 12s ease-in-out infinite alternate; }
.scn-ruined-tower-genevieve .rubble { position:absolute; bottom:12%; left:25%; width:30px; height:15px; background: linear-gradient(180deg, #8B4513, #5C3A21); border-radius: 20% 20% 0 0; animation: towGene-rubble 8s ease-in-out infinite; }
.scn-ruined-tower-genevieve .figure { position:absolute; bottom:20%; left:55%; width:24px; height:60px; background: linear-gradient(180deg, #3E2723 0%, #1B0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: towGene-figure 7s ease-in-out infinite; }
.scn-ruined-tower-genevieve .shield { position:absolute; bottom:25%; left:53%; width:14px; height:18px; background: linear-gradient(135deg, #B87333, #8B4513); border-radius: 30% 30% 20% 20%; transform: rotate(10deg); box-shadow: 0 0 6px 2px #FF8C00; animation: towGene-shield 4s ease-in-out infinite alternate; }
.scn-ruined-tower-genevieve .vines { position:absolute; bottom:15%; left:28%; width:40px; height:50px; background: radial-gradient(circle at 50% 100%, #228B22 0%, transparent 70%); border-radius: 50%; filter: blur(3px); animation: towGene-vines 15s ease-in-out infinite; }
.scn-ruined-tower-genevieve .sunlight { position:absolute; top:0; left:0; right:0; bottom:0; background: linear-gradient(135deg, rgba(255,255,255,0.3) 0%, transparent 50%); animation: towGene-sunlight 20s linear infinite; pointer-events: none; }
.scn-ruined-tower-genevieve .ground { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #8B4513 0%, #5C3A21 100%); }
@keyframes towGene-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes towGene-tower { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes towGene-rubble { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes towGene-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(6px) rotate(0deg); } 75% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes towGene-shield { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(15deg) scale(1.1); } 100% { transform: rotate(10deg) scale(1); } }
@keyframes towGene-vines { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes towGene-sunlight { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

.scn-good-great-man-epigram{background:linear-gradient(180deg,#3a2a1a 0%,#2a1a0a 100%),radial-gradient(ellipse at 50% 0%,#4a3a2a 0%,transparent 60%);}.scn-good-great-man-epigram .wall{position:absolute;inset:0;background:linear-gradient(180deg,#3a2a1a,#2a1a0a);}.scn-good-great-man-epigram .window{position:absolute;top:10%;left:60%;width:30%;height:40%;background:radial-gradient(circle at 50% 50%,#c0a080 0%,#8a6a4a 100%);border-radius:4%;box-shadow:inset 0 0 20px rgba(0,0,0,.5);animation:gme-window 12s ease-in-out infinite alternate;}.scn-good-great-man-epigram .desk{position:absolute;bottom:20%;left:20%;width:60%;height:10%;background:linear-gradient(180deg,#5a4a3a,#3a2a1a);border-radius:4%;box-shadow:0 4px 8px rgba(0,0,0,.5);}.scn-good-great-man-epigram .book{position:absolute;bottom:25%;left:35%;width:20%;height:12%;background:linear-gradient(180deg,#6a5a4a,#4a3a2a);border-radius:2%;transform:rotate(-5deg);box-shadow:0 2px 4px rgba(0,0,0,.4);animation:gme-book 6s ease-in-out infinite alternate;}.scn-good-great-man-epigram .candle{position:absolute;bottom:28%;left:45%;width:3%;height:15%;background:linear-gradient(180deg,#e0c080,#b08040);border-radius:10%;box-shadow:0 0 8px 2px rgba(255,200,100,.3);animation:gme-candle 2s ease-in-out infinite alternate;}.scn-good-great-man-epigram .figure{position:absolute;bottom:18%;left:30%;width:12%;height:35%;background:linear-gradient(180deg,#1a1a1a 0%,#0a0a0a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:gme-figure 8s ease-in-out infinite;}.scn-good-great-man-epigram .glow{position:absolute;bottom:28%;left:45%;width:10%;height:10%;background:radial-gradient(circle,#ffd080 0%,transparent 100%);opacity:.4;animation:gme-glow 3s ease-in-out infinite alternate;}
@keyframes gme-window{0%{opacity:.7}50%{opacity:.9}100%{opacity:.75}}@keyframes gme-book{0%{transform:rotate(-5deg) translateY(0)}50%{transform:rotate(-3deg) translateY(-2px)}100%{transform:rotate(-5deg) translateY(0)}}@keyframes gme-candle{0%{transform:scaleY(1) scaleX(1)}50%{transform:scaleY(1.05) scaleX(0.95)}100%{transform:scaleY(1) scaleX(1)}}@keyframes gme-figure{0%{transform:translateY(0)}50%{transform:translateY(-4px)}100%{transform:translateY(0)}}@keyframes gme-glow{0%{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}100%{opacity:.4;transform:scale(1.05)}}

.scn-thousand-fold-echo-meed{background:linear-gradient(180deg,#f0c080 0%,#e0a060 30%,#c08040 70%,#a06020 100%),radial-gradient(ellipse at 50% 0%,#ffe0a0 0%,transparent 60%);}.scn-thousand-fold-echo-meed .sky-dawn{position:absolute;inset:0 0 40% 0;background:linear-gradient(180deg,#ffd090 0%,#e0a060 100%);animation:tfe-sky 15s ease-in-out infinite alternate;}.scn-thousand-fold-echo-meed .mountain{position:absolute;bottom:30%;left:0;right:0;height:30%;background:linear-gradient(180deg,#6a5a4a 0%,#4a3a2a 100%);border-radius:40% 60% 0 0/80% 70% 0 0;box-shadow:inset 0 8px 20px rgba(0,0,0,.3);animation:tfe-mountain 20s ease-in-out infinite alternate;}.scn-thousand-fold-echo-meed .sun{position:absolute;bottom:50%;left:50%;width:12%;height:12%;transform:translate(-50%,50%);background:radial-gradient(circle,#fff0c0 0%,#ffd080 40%,#e0a060 80%,transparent 100%);border-radius:50%;box-shadow:0 0 40px 10px rgba(255,200,100,.5);animation:tfe-sun 12s ease-in-out infinite alternate;}.scn-thousand-fold-echo-meed .creature{position:absolute;bottom:22%;left:40%;width:10%;height:25%;background:linear-gradient(180deg,#2a1a0a 0%,#1a0a00 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:tfe-creature 4s ease-in-out infinite;}.scn-thousand-fold-echo-meed .mist{position:absolute;bottom:28%;left:0;right:0;height:5%;background:linear-gradient(180deg,transparent 0%,rgba(255,255,200,.3) 50%,transparent 100%);filter:blur(4px);animation:tfe-mist 30s linear infinite;}.scn-thousand-fold-echo-meed .rays{position:absolute;top:10%;left:30%;width:40%;height:60%;background:repeating-linear-gradient(135deg,transparent 0%,rgba(255,255,200,.15) 5%,transparent 10%);animation:tfe-rays 8s ease-in-out infinite alternate;}
@keyframes tfe-sky{0%{opacity:.8}50%{opacity:1}100%{opacity:.85}}@keyframes tfe-mountain{0%{transform:translateY(0)}50%{transform:translateY(-3px)}100%{transform:translateY(0)}}@keyframes tfe-sun{0%{transform:translate(-50%,50%) scale(0.95);opacity:.9}50%{transform:translate(-50%,48%) scale(1.05);opacity:1}100%{transform:translate(-50%,50%) scale(0.95);opacity:.9}}@keyframes tfe-creature{0%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-3px) rotate(0)}100%{transform:translateY(0) rotate(2deg)}}@keyframes tfe-mist{0%{transform:translateX(-20%)}50%{transform:translateX(20%)}100%{transform:translateX(-20%)}}@keyframes tfe-rays{0%{opacity:.5}50%{opacity:.8}100%{opacity:.5}}

.scn-solitary-date-tree-lament{background:linear-gradient(180deg,#2a2a3a 0%,#1a1a2a 50%,#0a0a1a 100%),radial-gradient(ellipse at 50% 100%,#3a3a4a 0%,transparent 70%);}.scn-solitary-date-tree-lament .sky-overcast{position:absolute;inset:0 0 40% 0;background:linear-gradient(180deg,#4a4a5a 0%,#2a2a3a 100%);animation:dtl-sky 14s ease-in-out infinite alternate;}.scn-solitary-date-tree-lament .hill{position:absolute;bottom:30%;left:0;right:0;height:25%;background:linear-gradient(180deg,#3a3a2a 0%,#2a2a1a 100%);border-radius:50% 50% 0 0/80% 80% 0 0;box-shadow:inset 0 8px 20px rgba(0,0,0,.5);}.scn-solitary-date-tree-lament .tree-trunk{position:absolute;bottom:35%;left:50%;width:3%;height:30%;transform:translateX(-50%);background:linear-gradient(180deg,#4a3a2a 0%,#2a1a0a 100%);border-radius:10% 10% 20% 20%;box-shadow:inset 0 0 8px rgba(0,0,0,.3);animation:dtl-trunk 10s ease-in-out infinite alternate;}.scn-solitary-date-tree-lament .tree-crown{position:absolute;bottom:55%;left:50%;width:25%;height:20%;transform:translateX(-50%);background:radial-gradient(ellipse at 50% 100%,#3a4a2a 0%,#1a2a0a 70%,transparent 100%);border-radius:50% 50% 0 0;animation:dtl-crown 8s ease-in-out infinite alternate;}.scn-solitary-date-tree-lament .figure{position:absolute;bottom:18%;left:35%;width:10%;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:dtl-figure 6s ease-in-out infinite;}.scn-solitary-date-tree-lament .shadow{position:absolute;bottom:18%;left:32%;width:20%;height:2%;background:rgba(0,0,0,.3);border-radius:50%;filter:blur(2px);animation:dtl-shadow 6s ease-in-out infinite;}
@keyframes dtl-sky{0%{opacity:.6}50%{opacity:.9}100%{opacity:.7}}@keyframes dtl-trunk{0%{transform:translateX(-50%) rotate(0)}50%{transform:translateX(-50%) rotate(1deg)}100%{transform:translateX(-50%) rotate(0)}}@keyframes dtl-crown{0%{transform:translateX(-50%) scale(1)}50%{transform:translateX(-50%) scale(1.05)}100%{transform:translateX(-50%) scale(1)}}@keyframes dtl-figure{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-2px) rotate(2deg)}100%{transform:translateY(0) rotate(0)}}@keyframes dtl-shadow{0%{transform:scaleX(1)}50%{transform:scaleX(1.2)}100%{transform:scaleX(1)}}

.scn-mother-child-lisping-notes{background:linear-gradient(180deg,#f0ede8 0%,#e0d8c8 50%,#d0c0a8 100%),radial-gradient(ellipse at 50% 0%,#fff8f0 0%,transparent 60%);}.scn-mother-child-lisping-notes .wall-bright{position:absolute;inset:0;background:linear-gradient(180deg,#f0ede8,#e0d8c8);}.scn-mother-child-lisping-notes .window-sun{position:absolute;top:5%;left:60%;width:30%;height:40%;background:radial-gradient(circle at 40% 60%,#fff8e0 0%,#e0d8c0 100%);border-radius:4%;box-shadow:inset 0 0 20px rgba(255,255,200,.4);animation:mcl-window 10s ease-in-out infinite alternate;}.scn-mother-child-lisping-notes .chair{position:absolute;bottom:20%;left:25%;width:20%;height:15%;background:linear-gradient(180deg,#b8a088 0%,#987860 100%);border-radius:10% 10% 20% 20%;box-shadow:0 4px 8px rgba(0,0,0,.2);}.scn-mother-child-lisping-notes .mother{position:absolute;bottom:25%;left:30%;width:15%;height:40%;background:linear-gradient(180deg,#d8c8b8 0%,#b8a898 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:mcl-mother 4s ease-in-out infinite;}.scn-mother-child-lisping-notes .child{position:absolute;bottom:18%;left:50%;width:10%;height:20%;background:linear-gradient(180deg,#c8b8a8 0%,#a89888 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:mcl-child 3s ease-in-out infinite;}.scn-mother-child-lisping-notes .notes{position:absolute;top:30%;left:40%;width:20%;height:20%;background:radial-gradient(circle,#666 0%,transparent 100%) 0 0/8px 8px repeat;opacity:.3;animation:mcl-notes 5s linear infinite;}.scn-mother-child-lisping-notes .sunbeam{position:absolute;top:0;left:30%;width:40%;height:100%;background:linear-gradient(135deg,transparent 0%,rgba(255,255,200,.15) 50%,transparent 100%);animation:mcl-sunbeam 8s ease-in-out infinite alternate;}
@keyframes mcl-window{0%{opacity:.7}50%{opacity:.9}100%{opacity:.8}}@keyframes mcl-mother{0%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-3px) rotate(0)}100%{transform:translateY(0) rotate(2deg)}}@keyframes mcl-child{0%{transform:translateY(0) rotate(0) scale(1)}50%{transform:translateY(-2px) rotate(3deg) scale(1.05)}100%{transform:translateY(0) rotate(0) scale(1)}}@keyframes mcl-notes{0%{transform:translateX(0)}50%{transform:translateX(10px)}100%{transform:translateX(0)}}@keyframes mcl-sunbeam{0%{opacity:.3}50%{opacity:.6}100%{opacity:.3}}

/* ===== SKIDDAW UNDERSTANDS SIGH (sunlit warm) ===== */
.scn-skiddaw-understands-sigh {
  background: linear-gradient(180deg, #f9e3b0 0%, #9fc9e8 40%, #6ba3d0 70%, #3d7aa6 100%),
              radial-gradient(ellipse at 70% 20%, #fff9d0 0%, transparent 60%);
}
.scn-skiddaw-understands-sigh .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b8d8f0 0%, transparent 100%);
  animation: sk-sky 15s ease-in-out infinite alternate;
}
.scn-skiddaw-understands-sigh .sun {
  position: absolute; top: 10%; right: 20%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe680 0%, #f0c060 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(255,230,128,0.4);
  animation: sk-sun 30s ease-in-out infinite alternate;
}
.scn-skiddaw-understands-sigh .cloud {
  position: absolute; 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(6px);
}
.scn-skiddaw-understands-sigh .cloud-a {
  top: 8%; left: 10%; width: 120px;
  animation: sk-drift-a 40s linear infinite;
}
.scn-skiddaw-understands-sigh .cloud-b {
  top: 16%; right: 5%; width: 80px;
  animation: sk-drift-b 55s linear infinite reverse;
}
.scn-skiddaw-understands-sigh .mountain {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7aa87d 0%, #4a6a4d 50%, #2a3a2a 100%);
  border-radius: 30% 50% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.3);
}
.scn-skiddaw-understands-sigh .figure {
  position: absolute; bottom: 28%; left: 45%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sk-figure 6s ease-in-out infinite alternate;
}
.scn-skiddaw-understands-sigh .grass {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a8a4a 0%, #3a5a2a 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
@keyframes sk-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes sk-sun {
  0% { transform: translate(0, 0) scale(1); opacity: 0.95; box-shadow: 0 0 80px 40px rgba(255,230,128,0.4); }
  50% { transform: translate(-10px, 5px) scale(1.05); opacity: 1; box-shadow: 0 0 100px 50px rgba(255,230,128,0.6); }
  100% { transform: translate(5px, -3px) scale(0.98); opacity: 0.9; box-shadow: 0 0 60px 30px rgba(255,230,128,0.3); }
}
@keyframes sk-drift-a {
  0% { transform: translateX(-60px); }
  100% { transform: translateX(120vw); }
}
@keyframes sk-drift-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}
@keyframes sk-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(8px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-4px) rotate(-1deg); }
}

/* ===== STEADFAST EYES CHURCHYARD (calm overcast) ===== */
.scn-steadfast-eyes-churchyard {
  background: linear-gradient(180deg, #b5c8d3 0%, #8aa3b5 40%, #6b8095 100%),
              radial-gradient(ellipse at 50% 100%, #6b8095 0%, transparent 70%);
}
.scn-steadfast-eyes-churchyard .sky-overcast {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c8d5de 0%, #a8bcc9 100%);
  animation: ec-sky 12s ease-in-out infinite alternate;
}
.scn-steadfast-eyes-churchyard .ground-green {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a6a4a 0%, #2a4a2a 100%);
  border-radius: 30% 40% 0 0 / 20% 30% 0 0;
}
.scn-steadfast-eyes-churchyard .tomb {
  position: absolute; bottom: 30%; left: 40%; width: 100px; height: 50px;
  background: linear-gradient(180deg, #8a8a7a 0%, #5a5a4a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-steadfast-eyes-churchyard .fence {
  position: absolute; bottom: 28%; left: 35%; width: 120px; height: 40px;
  background: repeating-linear-gradient(90deg, #3a3a3a 0px, #3a3a3a 6px, transparent 6px, transparent 14px);
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-steadfast-eyes-churchyard .gravestone {
  position: absolute; bottom: 35%; left: 58%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #9a9a8a 0%, #6a6a5a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset -3px 0 6px rgba(0,0,0,0.2);
}
.scn-steadfast-eyes-churchyard .eye {
  position: absolute; bottom: 40%; width: 30px; height: 20px;
  background: radial-gradient(circle, #6a8ab5 0%, #3a5a8a 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(60,80,120,0.4);
  animation: ec-eye 8s ease-in-out infinite alternate;
}
.scn-steadfast-eyes-churchyard .eye-left {
  left: 42%;
}
.scn-steadfast-eyes-churchyard .eye-right {
  left: 52%;
  animation-delay: -2s;
}
@keyframes ec-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes ec-eye {
  0% { transform: scale(1) rotate(-5deg); opacity: 0.6; box-shadow: 0 0 20px 8px rgba(60,80,120,0.3); }
  50% { transform: scale(1.1) rotate(0deg); opacity: 1; box-shadow: 0 0 40px 15px rgba(60,80,120,0.6); }
  100% { transform: scale(0.95) rotate(5deg); opacity: 0.7; box-shadow: 0 0 25px 10px rgba(60,80,120,0.35); }
}

/* ===== SEA SOUND BRANCHES (tense dim interior) ===== */
.scn-sea-sound-branches {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 70%, #3a3a4a 0%, transparent 50%);
}
.scn-sea-sound-branches .wall-left {
  position: absolute; left: 0; top: 0; bottom: 20%; width: 20%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-right: 2px solid #4a3a3a;
  box-shadow: inset -8px 0 16px rgba(0,0,0,0.5);
}
.scn-sea-sound-branches .wall-right {
  position: absolute; right: 0; top: 0; bottom: 20%; width: 20%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-left: 2px solid #4a3a3a;
  box-shadow: inset 8px 0 16px rgba(0,0,0,0.5);
}
.scn-sea-sound-branches .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
}
.scn-sea-sound-branches .window-frame {
  position: absolute; top: 15%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border: 4px solid #5a4a3a;
  border-radius: 6%;
}
.scn-sea-sound-branches .window-glass {
  position: absolute; top: 18%; left: 32%; width: 36%; height: 44%;
  background: radial-gradient(ellipse at 40% 30%, #4a5a6a 0%, #1a2a3a 80%);
  opacity: 0.5;
  animation: sb-glass 10s ease-in-out infinite alternate;
}
.scn-sea-sound-branches .branch-a,
.scn-sea-sound-branches .branch-b {
  position: absolute; top: 20%; height: 8px;
  background: #2a1a0a;
  border-radius: 4px;
  transform-origin: left center;
  animation: sb-branch 4s ease-in-out infinite alternate;
}
.scn-sea-sound-branches .branch-a {
  left: 25%; width: 30px;
  transform: rotate(20deg);
}
.scn-sea-sound-branches .branch-b {
  left: 55%; width: 25px;
  transform: rotate(-15deg);
  animation-delay: -1.5s;
}
.scn-sea-sound-branches .lamp {
  position: absolute; top: 35%; left: 18%; width: 10px; height: 14px;
  background: radial-gradient(circle, #d0a050 0%, #805020 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(200,150,50,0.5);
  animation: sb-lamp 3s ease-in-out infinite alternate;
}
@keyframes sb-glass {
  0% { opacity: 0.4; filter: blur(2px); }
  50% { opacity: 0.7; filter: blur(0px); }
  100% { opacity: 0.5; filter: blur(3px); }
}
@keyframes sb-branch {
  0% { transform: rotate(15deg) translateX(0); }
  50% { transform: rotate(22deg) translateX(2px); }
  100% { transform: rotate(12deg) translateX(-1px); }
}
@keyframes sb-lamp {
  0% { box-shadow: 0 0 20px 10px rgba(200,150,50,0.3); transform: scale(1); }
  50% { box-shadow: 0 0 40px 20px rgba(200,150,50,0.7); transform: scale(1.05); }
  100% { box-shadow: 0 0 25px 12px rgba(200,150,50,0.4); transform: scale(0.98); }
}

/* ===== TEARFUL RAPTURES SHADOW (calm moonlit) ===== */
.scn-tearful-raptures-shadow {
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a4a 40%, #2a2a5a 100%),
              radial-gradient(ellipse at 60% 20%, #3a3a6a 0%, transparent 70%);
}
.scn-tearful-raptures-shadow .sky-night {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a2a 100%);
  animation: tr-sky 15s ease-in-out infinite alternate;
}
.scn-tearful-raptures-shadow .moon {
  position: absolute; top: 10%; right: 25%; width: 50px; height: 50px;
  background: radial-gradient(circle, #e0e8f0 0%, #b0b8c8 70%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(200,210,230,0.3);
  animation: tr-moon 20s ease-in-out infinite alternate;
}
.scn-tearful-raptures-shadow .hill {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 40% 30% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-tearful-raptures-shadow .mossy-seat {
  position: absolute; bottom: 22%; left: 40%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
}
.scn-tearful-raptures-shadow .figure-sitting {
  position: absolute; bottom: 24%; left: 44%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tr-figure 8s ease-in-out infinite alternate;
}
.scn-tearful-raptures-shadow .shadow {
  position: absolute; bottom: 20%; left: 38%; width: 60px; height: 12px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: tr-shadow 8s ease-in-out infinite alternate;
}
.scn-tearful-raptures-shadow .leaves {
  position: absolute; bottom: 10%; left: 20%; width: 100px; height: 40px;
  background: radial-gradient(ellipse at 30% 50%, #5a6a3a 0%, transparent 60%),
              radial-gradient(ellipse at 70% 80%, #4a5a2a 0%, transparent 50%);
  filter: blur(2px);
  animation: tr-leaves 12s ease-in-out infinite alternate;
}
@keyframes tr-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes tr-moon {
  0% { transform: translate(0, 0) scale(1); box-shadow: 0 0 80px 40px rgba(200,210,230,0.3); }
  50% { transform: translate(-5px, 3px) scale(1.02); box-shadow: 0 0 100px 50px rgba(200,210,230,0.4); }
  100% { transform: translate(3px, -2px) scale(0.98); box-shadow: 0 0 60px 30px rgba(200,210,230,0.25); }
}
@keyframes tr-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes tr-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.05); opacity: 0.6; }
  100% { transform: scaleX(0.95); opacity: 0.35; }
}
@keyframes tr-leaves {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.5; }
  50% { transform: translateY(-2px) rotate(2deg); opacity: 0.8; }
  100% { transform: translateY(1px) rotate(-1deg); opacity: 0.4; }
}

.scn-outward-form-usurped {
  background:
    linear-gradient(180deg, #2a1e14 0%, #1c120c 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 85%, #4a2a14 0%, transparent 70%);
}
.scn-outward-form-usurped .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1e14 50%, #1c0e08 100%);
  animation: ou1-wallpulse 12s ease-in-out infinite alternate;
}
.scn-outward-form-usurped .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1c0e08 0%, #120804 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,.7);
  border-radius: 30% 0 0 0 / 60% 0 0 0;
  animation: ou1-floor 6s ease-in-out infinite;
}
.scn-outward-form-usurped .mirror-frame {
  position: absolute; bottom: 42%; left: 50%; width: 70px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #5e3a1a 0%, #3a1a0a 100%);
  border-radius: 12% 12% 8% 8%;
  box-shadow: 0 8px 16px rgba(0,0,0,.6), inset 0 2px 4px rgba(200,150,80,.2);
  animation: ou1-mirror 8s ease-in-out infinite alternate;
}
.scn-outward-form-usurped .mirror-glass {
  position: absolute; bottom: 44%; left: 50%; width: 56px; height: 72px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 40% 30%, rgba(180,140,80,.3) 0%, rgba(60,40,20,.6) 60%, rgba(0,0,0,.8) 100%);
  border-radius: 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 0 12px rgba(200,160,80,.15);
  animation: ou1-glass 10s ease-in-out infinite alternate;
}
.scn-outward-form-usurped .figure {
  position: absolute; bottom: 40%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a0e0a 0%, #100804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ou1-figure 5s ease-in-out infinite;
}
.scn-outward-form-usurped .candle-glow {
  position: absolute; bottom: 44%; left: 58%; width: 30px; height: 40px;
  background: radial-gradient(ellipse, rgba(220,160,60,.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ou1-candle 3s ease-in-out infinite alternate;
}
.scn-outward-form-usurped .candle-flame {
  position: absolute; bottom: 47%; left: 58%; width: 6px; height: 10px;
  background: radial-gradient(ellipse, #f0c060 0%, #c08020 60%, transparent 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 20px 6px #d09030, 0 0 40px 12px rgba(180,100,30,.3);
  animation: ou1-flame 1.5s ease-in-out infinite alternate;
}
.scn-outward-form-usurped .shadow {
  position: absolute; bottom: 35%; left: 36%; width: 30px; height: 20px;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  filter: blur(8px);
  animation: ou1-shadowmove 5s ease-in-out infinite;
}
@keyframes ou1-wallpulse { 0% { opacity: .9 } 50% { opacity: .75 } 100% { opacity: .95 } }
@keyframes ou1-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes ou1-mirror { 0% { transform: translateX(-50%) rotate(-.5deg) } 50% { transform: translateX(-50%) rotate(.5deg) } 100% { transform: translateX(-50%) rotate(-.3deg) } }
@keyframes ou1-glass { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .5 } }
@keyframes ou1-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(2deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes ou1-candle { 0% { transform: scale(1) } 50% { transform: scale(1.2) } 100% { transform: scale(1.1) } }
@keyframes ou1-flame { 0% { transform: translateY(0) rotate(-3deg) scale(.9) } 50% { transform: translateY(-3px) rotate(3deg) scale(1.1) } 100% { transform: translateY(-1px) rotate(-1deg) scale(1) } }
@keyframes ou1-shadowmove { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.1) translateX(-4px) } 100% { transform: scaleX(.95) translateX(2px) } }

/* Scene 2: epilogue-conjurer-purgatory (funny, dark) */
.scn-epilogue-conjurer-purgatory {
  background:
    linear-gradient(180deg, #0a0a12 0%, #16102a 40%, #262040 100%),
    radial-gradient(ellipse at 50% 70%, #3a2060 0%, transparent 60%);
}
.scn-epilogue-conjurer-purgatory .stage-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1430 0%, #0e0c1c 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
  animation: ep2-bg 15s ease-in-out infinite alternate;
}
.scn-epilogue-conjurer-purgatory .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e3a 0%, #1a1020 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: ep2-floor 8s ease-in-out infinite;
}
.scn-epilogue-conjurer-purgatory .magician {
  position: absolute; bottom: 28%; left: 50%; width: 22px; height: 44px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0c0c18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ep2-magician 3s ease-in-out infinite;
}
.scn-epilogue-conjurer-purgatory .hat {
  position: absolute; bottom: 48%; left: 50%; width: 28px; height: 24px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #2a2030 0%, #0c0810 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: ep2-hat 2s ease-in-out infinite alternate;
}
.scn-epilogue-conjurer-purgatory .wand {
  position: absolute; bottom: 38%; left: 38%; width: 4px; height: 18px;
  background: linear-gradient(180deg, #c0a080 0%, #806040 100%);
  border-radius: 20%;
  transform-origin: bottom center;
  animation: ep2-wand 1.2s ease-in-out infinite;
}
.scn-epilogue-conjurer-purgatory .sparkle {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, #80e0a0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(128,224,160,.5);
}
.scn-epilogue-conjurer-purgatory .sparkle-a {
  top: 30%; left: 35%;
  animation: ep2-sparkle-a 4s ease-in-out infinite;
}
.scn-epilogue-conjurer-purgatory .sparkle-b {
  top: 22%; right: 30%;
  animation: ep2-sparkle-b 5s ease-in-out infinite reverse;
}
.scn-epilogue-conjurer-purgatory .puff {
  position: absolute; bottom: 35%; left: 54%; width: 20px; height: 16px;
  background: radial-gradient(ellipse, rgba(220,200,160,.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ep2-puff 6s ease-in-out infinite alternate;
}
@keyframes ep2-bg { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .7 } }
@keyframes ep2-floor { 0% { transform: translateY(0) } 50% { transform: translateY(4px) } 100% { transform: translateY(-2px) } }
@keyframes ep2-magician { 0%,100% { transform: translateX(-50%) rotate(-2deg) translateY(0) } 25% { transform: translateX(-50%) rotate(2deg) translateY(-3px) } 50% { transform: translateX(-50%) rotate(-1deg) translateY(-2px) } 75% { transform: translateX(-50%) rotate(1deg) translateY(-1px) } }
@keyframes ep2-hat { 0% { transform: translateX(-50%) rotate(-5deg) scale(1) } 50% { transform: translateX(-50%) rotate(5deg) scale(1.1) } 100% { transform: translateX(-50%) rotate(-3deg) scale(.95) } }
@keyframes ep2-wand { 0% { transform: rotate(-30deg) translateY(0) } 25% { transform: rotate(30deg) translateY(-2px) } 50% { transform: rotate(-45deg) translateY(-1px) } 75% { transform: rotate(45deg) translateY(-3px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes ep2-sparkle-a { 0% { opacity: 0; transform: scale(.5) } 20% { opacity: 1; transform: scale(1.2) rotate(20deg) } 40% { opacity: .8; transform: scale(.8) rotate(-10deg) } 60% { opacity: .5; transform: scale(1) rotate(30deg) } 80% { opacity: .3; transform: scale(.6) rotate(-20deg) } 100% { opacity: 0; transform: scale(.2) rotate(0) } }
@keyframes ep2-sparkle-b { 0% { opacity: 0; transform: scale(.3) } 30% { opacity: .9; transform: scale(1.1) rotate(-40deg) } 60% { opacity: .6; transform: scale(.7) rotate(20deg) } 100% { opacity: 0; transform: scale(.4) rotate(-10deg) } }
@keyframes ep2-puff { 0% { transform: scale(1) translateX(0) } 50% { transform: scale(1.5) translateX(10px) translateY(-5px) } 100% { transform: scale(.8) translateX(-5px) } }

/* Scene 3: farewell-to-sweet-love (dark, dusk) */
.scn-farewell-to-sweet-love {
  background:
    linear-gradient(180deg, #2a1a30 0%, #4a3040 40%, #6a4050 65%, #3a2020 100%),
    radial-gradient(ellipse at 50% 85%, #8a5060 0%, transparent 50%);
}
.scn-farewell-to-sweet-love .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1a30 0%, #4a3040 50%, #6a4050 100%);
  animation: fw3-sky 20s ease-in-out infinite alternate;
}
.scn-farewell-to-sweet-love .horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 8px;
  background: linear-gradient(180deg, #8a5a60 0%, #6a3848 100%);
  border-radius: 20%;
  filter: blur(2px);
  animation: fw3-horizon 15s ease-in-out infinite;
}
.scn-farewell-to-sweet-love .tree {
  position: absolute; bottom: 36%; left: 25%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a101a 0%, #0a080e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fw3-tree 12s ease-in-out infinite;
}
.scn-farewell-to-sweet-love .figure-leaving {
  position: absolute; bottom: 36%; left: 52%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #0e0a12 0%, #060408 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fw3-figure 6s ease-in-out infinite;
}
.scn-farewell-to-sweet-love .star-veil {
  position: absolute; top: 8%; left: 0; right: 0; height: 30%;
  background: radial-gradient(2px 2px at 20% 30%, rgba(255,200,200,.4) 0%, transparent 100%),
              radial-gradient(2px 2px at 60% 20%, rgba(255,200,200,.3) 0%, transparent 100%),
              radial-gradient(1px 1px at 80% 50%, rgba(255,180,180,.2) 0%, transparent 100%);
  background-size: 120px 120px;
  animation: fw3-stars 30s linear infinite;
}
@keyframes fw3-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes fw3-horizon { 0% { filter: blur(2px) opacity(.6) } 50% { filter: blur(1px) opacity(.9) } 100% { filter: blur(3px) opacity(.5) } }
@keyframes fw3-tree { 0% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(2deg) scale(1.03) } 100% { transform: rotate(-1deg) scale(.98) } }
@keyframes fw3-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(6px) rotate(3deg) } 50% { transform: translateX(12px) rotate(-2deg) } 75% { transform: translateX(18px) rotate(1deg) } 100% { transform: translateX(24px) rotate(0) } }
@keyframes fw3-stars { 0% { opacity: .2; transform: rotate(0) } 50% { opacity: .6; transform: rotate(180deg) } 100% { opacity: .3; transform: rotate(360deg) } }

/* Scene 4: wealth-fame-youth-play (calm, dim-interior) */
.scn-wealth-fame-youth-play {
  background:
    linear-gradient(180deg, #2a2218 0%, #1e1810 50%, #140e08 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 60%);
}
.scn-wealth-fame-youth-play .room-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #2a1e14 0%, #1c120a 50%, #0e0a06 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.4);
  animation: wf4-room 14s ease-in-out infinite alternate;
}
.scn-wealth-fame-youth-play .desk {
  position: absolute; bottom: 25%; left: 30%; right: 20%; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a12 100%);
  border-radius: 6% 6% 3% 3%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: wf4-desk 10s ease-in-out infinite;
}
.scn-wealth-fame-youth-play .book {
  position: absolute; bottom: 32%; height: 14px; width: 10px;
  background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.3);
}
.scn-wealth-fame-youth-play .book-1 { left: 44%; animation: wf4-book1 12s ease-in-out infinite; }
.scn-wealth-fame-youth-play .book-2 { left: 50%; width: 8px; height: 12px; background: linear-gradient(135deg, #8a6a4a 0%, #6a4a2a 100%); animation: wf4-book2 14s ease-in-out infinite reverse; }
.scn-wealth-fame-youth-play .lamp-glow {
  position: absolute; bottom: 32%; left: 36%; width: 40px; height: 50px;
  background: radial-gradient(ellipse, rgba(220,180,90,.25) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: wf4-lamp 6s ease-in-out infinite alternate;
}
.scn-wealth-fame-youth-play .figure-profile {
  position: absolute; bottom: 27%; left: 55%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%);
  border-radius: 40% 50% 40% 50% / 50% 60% 40% 50%;
  transform-origin: bottom center;
  animation: wf4-figure 8s ease-in-out infinite;
}
.scn-wealth-fame-youth-play .quill {
  position: absolute; bottom: 30%; left: 52%; width: 2px; height: 16px;
  background: linear-gradient(180deg, #c0a070 0%, #806040 100%);
  border-radius: 20%;
  transform-origin: bottom center;
  animation: wf4-quill 4s ease-in-out infinite alternate;
}
@keyframes wf4-room { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .75 } }
@keyframes wf4-desk { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes wf4-book1 { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes wf4-book2 { 0%,100% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(-6deg) translateY(-2px) } }
@keyframes wf4-lamp { 0% { transform: scale(1) } 50% { transform: scale(1.15) } 100% { transform: scale(.9) } }
@keyframes wf4-figure { 0% { transform: rotate(0) } 25% { transform: rotate(3deg) } 50% { transform: rotate(-2deg) } 75% { transform: rotate(1deg) } 100% { transform: rotate(0) } }
@keyframes wf4-quill { 0% { transform: rotate(-15deg) } 50% { transform: rotate(10deg) translateY(-1px) } 100% { transform: rotate(-5deg) } }

/* kubla-khan-decree */
.scn-kubla-khan-decree { background: linear-gradient(180deg, #fbe9d7 0%, #f5d6b8 30%, #d4a373 60%, #7a5c3a 100%), radial-gradient(ellipse at 50% 20%, #fff8e7 0%, transparent 50%); }
.scn-kubla-khan-decree .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #8fd3ff 0%, #b2e2ff 40%, #d4eaff 100%); animation: kkd-sky 20s ease-in-out infinite alternate; }
.scn-kubla-khan-decree .sun { position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #fff5b0 0%, #fce96b 40%, #f5c542 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(245,197,66,.5); animation: kkd-sun 15s ease-in-out infinite alternate; }
.scn-kubla-khan-decree .dome { position:absolute; bottom:48%; left:30%; width:180px; height:100px; background: linear-gradient(180deg, #f5e6d3 0%, #e8c9a8 50%, #c9a87c 100%); border-radius: 50% 50% 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,.2), inset 0 20px 40px rgba(255,255,200,.3); animation: kkd-dome 12s ease-in-out infinite; }
.scn-kubla-khan-decree .river { position:absolute; bottom:30%; left:0; right:0; height:15%; background: linear-gradient(90deg, #3b82f6 0%, #60a5fa 30%, #93c5fd 60%, #3b82f6 100%); border-radius: 0 0 30% 40%; animation: kkd-river 8s ease-in-out infinite alternate; }
.scn-kubla-khan-decree .cavern { position:absolute; bottom:20%; left:15%; width:120px; height:80px; background: linear-gradient(180deg, #4a3e3e 0%, #2d2323 60%, #1a1212 100%); border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%; clip-path: polygon(10% 0, 90% 0, 100% 100%, 0% 100%); animation: kkd-cavern 18s ease-in-out infinite; }
.scn-kubla-khan-decree .tower-1 { position:absolute; bottom:50%; left:55%; width:25px; height:120px; background: linear-gradient(180deg, #d4a373 0%, #b8895a 50%, #8b6b43 100%); border-radius: 5px 5px 0 0; box-shadow: -5px 0 10px rgba(0,0,0,.3); animation: kkd-tower 25s ease-in-out infinite alternate; }
.scn-kubla-khan-decree .tower-2 { position:absolute; bottom:50%; left:62%; width:20px; height:90px; background: linear-gradient(180deg, #c9a87c 0%, #a6835a 50%, #7a5c3a 100%); border-radius: 4px 4px 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.2); animation: kkd-tower 25s ease-in-out infinite alternate-reverse; }
.scn-kubla-khan-decree .tree { position:absolute; bottom:50%; left:20%; width:15px; height:40px; background: #6b4e3a; border-radius: 3px; transform-origin: bottom center; animation: kkd-tree 8s ease-in-out infinite; }
.scn-kubla-khan-decree .tree::after { content:''; position:absolute; top:-20px; left:-12px; width:40px; height:30px; background: radial-gradient(ellipse, #4d7c3b 0%, #3d6b2e 60%, transparent 80%); border-radius:50%; }
@keyframes kkd-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes kkd-sun { 0% { transform: translateX(0) scale(1); box-shadow: 0 0 40px 10px rgba(245,197,66,.4) } 50% { transform: translateX(10px) scale(1.05); box-shadow: 0 0 70px 25px rgba(245,197,66,.6) } 100% { transform: translateX(-5px) scale(.95); box-shadow: 0 0 50px 15px rgba(245,197,66,.5) } }
@keyframes kkd-dome { 0% { transform: translateY(0) scaleY(1); box-shadow: 0 -10px 30px rgba(0,0,0,.2) } 50% { transform: translateY(-4px) scaleY(1.02); box-shadow: 0 -14px 40px rgba(0,0,0,.25) } 100% { transform: translateY(2px) scaleY(.98); box-shadow: 0 -8px 20px rgba(0,0,0,.15) } }
@keyframes kkd-river { 0% { background-position: 0% 0% } 50% { background-position: 100% 0% } 100% { background-position: 50% 0% } }
@keyframes kkd-cavern { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes kkd-tower { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.04) } 100% { transform: scaleY(.96) } }
@keyframes kkd-tree { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0) } }

/* poem-composition-framing */
.scn-poem-composition-framing { background: linear-gradient(180deg, #2b2520 0%, #3d352e 40%, #4a4038 100%), radial-gradient(ellipse at 60% 30%, #5a4e44 0%, transparent 60%); }
.scn-poem-composition-framing .wall-bg { position:absolute; inset:0; background: linear-gradient(135deg, #4a4038 0%, #3d352e 50%, #2b2520 100%); animation: pcf-wall 20s ease-in-out infinite alternate; }
.scn-poem-composition-framing .desk { position:absolute; bottom:20%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #6b5b4e 0%, #54463b 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-poem-composition-framing .manuscript { position:absolute; bottom:32%; left:30%; width:120px; height:8px; background: #f5e6d3; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform: rotate(-3deg); animation: pcf-ms 6s ease-in-out infinite alternate; }
.scn-poem-composition-framing .manuscript::after { content:''; position:absolute; top:2px; left:5px; width:90%; height:2px; background: #c9a87c; border-radius: 1px; }
.scn-poem-composition-framing .candle { position:absolute; bottom:34%; left:45%; width:8px; height:40px; background: linear-gradient(180deg, #f5e6d3 0%, #e8c9a8 50%, #c9a87c 100%); border-radius: 2px 2px 4px 4px; transform-origin: bottom center; animation: pcf-candle 9s ease-in-out infinite; }
.scn-poem-composition-framing .candle-glow { position:absolute; bottom:50%; left:44.5%; width:16px; height:16px; background: radial-gradient(circle, #ffd680 0%, #f5c542 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(245,197,66,.4); animation: pcf-glow 3s ease-in-out infinite alternate; }
.scn-poem-composition-framing .window { position:absolute; top:10%; right:8%; width:80px; height:100px; background: linear-gradient(135deg, #1a3a5c 0%, #2a5070 60%, #3a6a90 100%); border: 4px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(100,150,200,.3); animation: pcf-window 15s ease-in-out infinite alternate; }
.scn-poem-composition-framing .chair { position:absolute; bottom:18%; left:22%; width:30px; height:50px; background: linear-gradient(180deg, #5a3e2e 0%, #3a2a1a 100%); border-radius: 4px 4px 0 0; box-shadow: 2px 0 6px rgba(0,0,0,.4); animation: pcf-chair 10s ease-in-out infinite; }
.scn-poem-composition-framing .alligator-sil { position:absolute; bottom:22%; right:15%; width:50px; height:12px; background: #2d2323; border-radius: 60% 20% 20% 60% / 50% 40% 40% 50%; transform: scaleX(-1); box-shadow: -2px 0 8px rgba(0,0,0,.5); animation: pcf-alligator 12s ease-in-out infinite; }
@keyframes pcf-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pcf-ms { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-1px) } 100% { transform: rotate(-4deg) translateY(0) } }
@keyframes pcf-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) translateY(-1px) } 100% { transform: scaleY(.98) } }
@keyframes pcf-glow { 0% { opacity:.6; transform: scale(.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.7; transform: scale(.95) } }
@keyframes pcf-window { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes pcf-chair { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes pcf-alligator { 0% { transform: translateX(0) scaleX(-1) } 50% { transform: translateX(-4px) scaleX(-1) } 100% { transform: translateX(2px) scaleX(-1) } }

/* mad-ox-village */
.scn-mad-ox-village { background: linear-gradient(180deg, #a0c4ff 0%, #cae0ff 50%, #e8f0ff 100%), radial-gradient(ellipse at 50% 90%, #7cb342 0%, transparent 60%); }
.scn-mad-ox-village .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0f6 60%, #d4eaff 100%); animation: mov-sky 25s ease-in-out infinite alternate; }
.scn-mad-ox-village .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #7cb342 0%, #5a8a2e 60%, #3d6b1a 100%); border-radius: 40% 60% 0 0 / 20% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: mov-ground 15s ease-in-out infinite; }
.scn-mad-ox-village .ox { position:absolute; bottom:35%; left:40%; width:80px; height:50px; background: linear-gradient(180deg, #a67c52 0%, #7a5c3a 50%, #5a4030 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: 0 6px 14px rgba(0,0,0,.4); animation: mov-ox 4s ease-in-out infinite; }
.scn-mad-ox-village .ox::before { content:''; position:absolute; top:-15px; left:20px; width:40px; height:20px; background: #a67c52; border-radius: 50% 50% 0 0; transform: rotate(10deg); }
.scn-mad-ox-village .villager-1 { position:absolute; bottom:30%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #6b4e3a 0%, #4a3525 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mov-flee 5s ease-in-out infinite; }
.scn-mad-ox-village .villager-2 { position:absolute; bottom:28%; left:60%; width:18px; height:36px; background: linear-gradient(180deg, #5a3e2e 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mov-flee 5s ease-in-out infinite reverse; }
.scn-mad-ox-village .tree { position:absolute; bottom:38%; left:10%; width:12px; height:50px; background: #5a4030; border-radius: 3px; transform-origin: bottom center; animation: mov-tree 10s ease-in-out infinite; }
.scn-mad-ox-village .tree::after { content:''; position:absolute; top:-25px; left:-15px; width:45px; height:35px; background: radial-gradient(ellipse, #4d7c3b 0%, #3d6b2e 50%, transparent 80%); border-radius:50%; }
.scn-mad-ox-village .fence { position:absolute; bottom:42%; left:5%; right:5%; height:8px; background: #8b6b43; border-radius: 2px; box-shadow: 0 -8px 0 #7a5c3a, 0 -16px 0 #6b4e3a; animation: mov-fence 20s ease-in-out infinite; }
@keyframes mov-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes mov-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mov-ox { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(5px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mov-flee { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(8px) translateY(-1px) rotate(3deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes mov-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes mov-fence { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }

/* mob-fleeing-ox */
.scn-mob-fleeing-ox { background: linear-gradient(180deg, #8fd3ff 0%, #b2e2ff 40%, #d4eaff 100%), radial-gradient(ellipse at 50% 85%, #7cb342 0%, transparent 70%); }
.scn-mob-fleeing-ox .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0f6 50%, #d4eaff 100%); animation: mfo-sky 30s ease-in-out infinite alternate; }
.scn-mob-fleeing-ox .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7cb342 0%, #5a8a2e 50%, #3d6b1a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; animation: mfo-ground 18s ease-in-out infinite; }
.scn-mob-fleeing-ox .ox-back { position:absolute; bottom:32%; left:52%; width:70px; height:45px; background: linear-gradient(180deg, #a67c52 0%, #7a5c3a 50%, #5a4030 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; opacity:.8; transform: scaleX(-1); animation: mfo-ox 6s ease-in-out infinite; }
.scn-mob-fleeing-ox .mob-1 { position:absolute; bottom:28%; left:10%; width:20px; height:42px; background: linear-gradient(180deg, #6b4e3a 0%, #4a3525 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mfo-run 4.5s ease-in-out infinite; }
.scn-mob-fleeing-ox .mob-2 { position:absolute; bottom:26%; left:25%; width:18px; height:38px; background: linear-gradient(180deg, #5a3e2e 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mfo-run 4.5s ease-in-out infinite reverse; animation-delay: .5s; }
.scn-mob-fleeing-ox .mob-3 { position:absolute; bottom:30%; left:40%; width:16px; height:34px; background: linear-gradient(180deg, #7a5c3a 0%, #5a4030 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mfo-run 4.5s ease-in-out infinite; animation-delay: 1s; }
.scn-mob-fleeing-ox .dust { position:absolute; bottom:24%; left:5%; right:50%; height:10px; background: radial-gradient(ellipse, rgba(200,180,140,.6) 0%, transparent 70%); filter: blur(4px); animation: mfo-dust 3s ease-in-out infinite alternate; }
@keyframes mfo-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes mfo-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mfo-ox { 0% { transform: translateX(0) scaleX(-1) } 50% { transform: translateX(-8px) scaleX(-1) } 100% { transform: translateX(4px) scaleX(-1) } }
@keyframes mfo-run { 0% { transform: translateX(0) translateY(0) rotate(-5deg) } 20% { transform: translateX(10px) translateY(-3px) rotate(3deg) } 40% { transform: translateX(20px) translateY(0) rotate(-2deg) } 60% { transform: translateX(30px) translateY(-2px) rotate(4deg) } 80% { transform: translateX(40px) translateY(0) rotate(-3deg) } 100% { transform: translateX(50px) translateY(0) rotate(0) } }
@keyframes mfo-dust { 0% { opacity:.3; transform: translateX(0) } 50% { opacity:.6; transform: translateX(20px) } 100% { opacity:.2; transform: translateX(10px) } }

.scn-talleyrand-epistle-warning {
  background: linear-gradient(180deg, #2a1e14 0%, #3d2b1a 40%, #4a3520 100%),
              radial-gradient(ellipse at 50% 20%, #6a4a2a 0%, transparent 60%);
}
.scn-talleyrand-epistle-warning .bg-tlew { position:absolute; inset:0; background:linear-gradient(180deg, rgba(42,30,20,0.9) 0%, transparent 70%); }
.scn-talleyrand-epistle-warning .desk-tlew { position:absolute; bottom:8%; left:10%; right:10%; height:18%; background:linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius:4px; box-shadow:0 4px 12px rgba(0,0,0,0.6); }
.scn-talleyrand-epistle-warning .candle-tlew { position:absolute; bottom:26%; left:30%; width:12px; height:40px; background:linear-gradient(180deg, #d4b878 0%, #a08040 100%); border-radius:2px; box-shadow:0 0 8px 2px #d4b878; }
.scn-talleyrand-epistle-warning .flame-tlew { position:absolute; bottom:50%; left:30%; width:10px; height:16px; background:radial-gradient(circle, #ffe090 0%, #d08030 70%); border-radius:50% 50% 20% 20%; box-shadow:0 0 20px 10px #d08030, 0 0 40px 20px rgba(208,128,48,0.4); animation:tlew-flame 0.6s ease-in-out infinite alternate; }
.scn-talleyrand-epistle-warning .figure-tlew { position:absolute; bottom:26%; left:45%; width:24px; height:60px; background:linear-gradient(180deg, #2a1e14 0%, #1a120a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:tlew-figure 3s ease-in-out infinite; }
.scn-talleyrand-epistle-warning .quill-tlew { position:absolute; bottom:30%; left:48%; width:4px; height:30px; background:#d4b878; transform:rotate(20deg); transform-origin:bottom left; border-radius:2px; animation:tlew-quill 2s ease-in-out infinite; }
.scn-talleyrand-epistle-warning .thief-tlew { position:absolute; bottom:26%; left:70%; width:18px; height:45px; background:#1a120a; border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; opacity:0.6; animation:tlew-thief 5s ease-in-out infinite; }
@keyframes tlew-flame { 0% { transform:scaleY(1) translateY(0); } 50% { transform:scaleY(1.2) translateY(-2px); } 100% { transform:scaleY(0.9) translateY(1px); } }
@keyframes tlew-figure { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-3px) rotate(2deg); } }
@keyframes tlew-quill { 0% { transform:rotate(20deg) translateY(0); } 50% { transform:rotate(10deg) translateY(-2px); } 100% { transform:rotate(20deg) translateY(0); } }
@keyframes tlew-thief { 0% { transform:translateX(0) scaleX(1); opacity:0.4; } 50% { transform:translateX(-8px) scaleX(0.8); opacity:0.8; } 100% { transform:translateX(0) scaleX(1); opacity:0.4; } }

.scn-episcopal-core-heart {
  background: linear-gradient(180deg, #2a1e14 0%, #3d2b1a 40%, #4a3520 100%),
              radial-gradient(ellipse at 50% 50%, #5a3a1a 0%, transparent 70%);
}
.scn-episcopal-core-heart .bg-ech { position:absolute; inset:0; background:linear-gradient(180deg, rgba(42,30,20,0.8) 0%, transparent 80%); }
.scn-episcopal-core-heart .heart-ech { position:absolute; bottom:35%; left:50%; width:50px; height:45px; transform:translateX(-50%); background:radial-gradient(circle at 40% 30%, #d08040 0%, #a04020 80%); border-radius:0 0 40% 40% / 0 0 60% 60%; box-shadow:0 0 30px 15px rgba(200,120,40,0.6); animation:ech-heart 2s ease-in-out infinite; }
.scn-episcopal-core-heart .mitre-ech { position:absolute; bottom:66%; left:50%; width:30px; height:30px; transform:translateX(-50%); background:linear-gradient(180deg, #c0a060 0%, #8a6a30 100%); clip-path:polygon(50% 0%, 0% 100%, 100% 100%); border-radius:2px; animation:ech-mitre 4s ease-in-out infinite; }
.scn-episcopal-core-heart .glow-ech { position:absolute; bottom:35%; left:50%; width:60px; height:55px; transform:translateX(-50%); background:radial-gradient(circle at 40% 30%, rgba(208,128,64,0.4) 0%, transparent 70%); border-radius:50%; animation:ech-glow 3s ease-in-out infinite alternate; }
.scn-episcopal-core-heart .dust-ech1 { position:absolute; bottom:50%; left:30%; width:6px; height:6px; background:rgba(200,180,140,0.6); border-radius:50%; animation:ech-dust 8s linear infinite; }
.scn-episcopal-core-heart .dust-ech2 { position:absolute; bottom:60%; left:60%; width:8px; height:8px; background:rgba(200,180,140,0.4); border-radius:50%; animation:ech-dust 10s linear infinite reverse; animation-delay:-3s; }
.scn-episcopal-core-heart .palm-ech { position:absolute; bottom:20%; left:55%; width:30px; height:50px; background:linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%); border-radius:50% 0 0 50% / 80% 0 0 80%; transform:rotate(30deg); transform-origin:bottom left; box-shadow:0 0 4px rgba(0,0,0,0.5); animation:ech-palm 6s ease-in-out infinite; }
@keyframes ech-heart { 0%,100% { transform:translateX(-50%) scale(1); } 50% { transform:translateX(-50%) scale(1.05); } }
@keyframes ech-mitre { 0%,100% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-50%) rotate(3deg); } }
@keyframes ech-glow { 0% { opacity:0.7; } 100% { opacity:1; } }
@keyframes ech-dust { 0% { transform:translate(0,0) scale(1); opacity:0; } 10% { opacity:1; } 100% { transform:translate(-30px, -20px) scale(0.5); opacity:0; } }
@keyframes ech-palm { 0%,100% { transform:rotate(30deg) translateY(0); } 50% { transform:rotate(35deg) translateY(-3px); } }

.scn-boots-spanish-ambassador {
  background: linear-gradient(180deg, #2a1e14 0%, #3d2b1a 40%, #4a3520 100%),
              radial-gradient(ellipse at 50% 80%, #3a2210 0%, transparent 60%);
}
.scn-boots-spanish-ambassador .bg-bsa { position:absolute; inset:0; background:linear-gradient(180deg, rgba(42,30,20,0.9) 0%, transparent 60%); }
.scn-boots-spanish-ambassador .doorway-bsa { position:absolute; bottom:10%; left:20%; right:20%; top:10%; border:8px solid #4a3520; border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,0.5); background:linear-gradient(180deg, #2a1e14 0%, #1a120a 100%); }
.scn-boots-spanish-ambassador .boots-bsa { position:absolute; bottom:18%; left:30%; width:30px; height:35px; background:linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius:0 0 40% 40% / 0 0 70% 70%; transform:rotate(5deg); animation:bsa-boots 3s ease-in-out infinite; }
.scn-boots-spanish-ambassador .cloak-bsa { position:absolute; bottom:25%; left:25%; width:60px; height:70px; background:linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:40% 40% 10% 10% / 60% 60% 20% 20%; animation:bsa-cloak 5s ease-in-out infinite alternate; }
.scn-boots-spanish-ambassador .hat-bsa { position:absolute; bottom:70%; left:38%; width:40px; height:20px; background:#8a6a30; clip-path:polygon(0% 100%, 50% 0%, 100% 100%); border-radius:2px; animation:bsa-hat 4s ease-in-out infinite; }
.scn-boots-spanish-ambassador .lantern-bsa { position:absolute; bottom:60%; right:25%; width:10px; height:18px; background:#d4b878; border-radius:2px; box-shadow:0 0 12px 4px #d4b878; animation:bsa-lantern 1.5s ease-in-out infinite alternate; }
.scn-boots-spanish-ambassador .shadow-bsa { position:absolute; bottom:10%; left:20%; right:20%; height:20%; background:linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%); border-radius:50%; animation:bsa-shadow 3s ease-in-out infinite; }
@keyframes bsa-boots { 0% { transform:translateX(0) rotate(5deg); } 50% { transform:translateX(10px) rotate(-2deg); } 100% { transform:translateX(20px) rotate(5deg); } }
@keyframes bsa-cloak { 0% { opacity:0.8; transform:scaleX(1); } 50% { opacity:0.3; transform:scaleX(0.5); } 100% { opacity:0; transform:scaleX(0); } }
@keyframes bsa-hat { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-5px) rotate(10deg); } }
@keyframes bsa-lantern { 0% { opacity:0.7; box-shadow:0 0 8px 2px #d4b878; } 100% { opacity:1; box-shadow:0 0 16px 6px #d4b878; } }
@keyframes bsa-shadow { 0% { transform:scaleX(1); opacity:0.5; } 50% { transform:scaleX(0.6); opacity:0.3; } 100% { transform:scaleX(1); opacity:0.5; } }

.scn-sorrows-never-cease {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 30%, #4a3a5e 60%, #6a5060 100%),
              radial-gradient(ellipse at 50% 20%, #c07050 0%, transparent 60%);
}
.scn-sorrows-never-cease .sky-snc { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #1a1a2e 0%, #3a2a4e 40%, #6a5060 100%); animation:snc-sky 30s ease-in-out infinite alternate; }
.scn-sorrows-never-cease .horizon-snc { position:absolute; bottom:30%; left:0; right:0; height:10%; background:linear-gradient(180deg, #4a3a5e 0%, #2a2a3e 100%); border-radius:30% 70% 0 0 / 50% 80% 0 0; }
.scn-sorrows-never-cease .figure-snc { position:absolute; bottom:30%; left:40%; width:25px; height:60px; background:linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:snc-figure 6s ease-in-out infinite; }
.scn-sorrows-never-cease .wound-snc { position:absolute; bottom:45%; left:42%; width:12px; height:12px; background:radial-gradient(circle, #a04030 0%, #5e1a1d 70%); border-radius:50%; box-shadow:0 0 20px 8px rgba(160,64,48,0.6); animation:snc-wound 4s ease-in-out infinite alternate; }
.scn-sorrows-never-cease .maid-snc { position:absolute; bottom:45%; right:25%; width:20px; height:50px; background:linear-gradient(180deg, #4a3a5e 0%, #2a2a4e 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; opacity:0.5; animation:snc-maid 8s ease-in-out infinite; }
.scn-sorrows-never-cease .tear-snc1 { position:absolute; bottom:55%; left:42%; width:4px; height:10px; background:linear-gradient(180deg, #6a90c0 0%, transparent 100%); border-radius:50%; animation:snc-tear 2s linear infinite; }
.scn-sorrows-never-cease .tear-snc2 { position:absolute; bottom:60%; left:45%; width:3px; height:8px; background:linear-gradient(180deg, #6a90c0 0%, transparent 100%); border-radius:50%; animation:snc-tear 2.3s linear infinite; animation-delay:-1s; }
.scn-sorrows-never-cease .darkness-snc { position:absolute; inset:0; background:radial-gradient(ellipse at 40% 50%, transparent 30%, rgba(10,10,20,0.6) 100%); pointer-events:none; }
@keyframes snc-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes snc-figure { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-2px) rotate(1deg); } }
@keyframes snc-wound { 0% { transform:scale(1); opacity:0.7; } 50% { transform:scale(1.3); opacity:1; } 100% { transform:scale(1); opacity:0.7; } }
@keyframes snc-maid { 0% { transform:translateY(0) scaleX(1); opacity:0.4; } 50% { transform:translateY(-4px) scaleX(0.9); opacity:0.6; } 100% { transform:translateY(0) scaleX(1); opacity:0.4; } }
@keyframes snc-tear { 0% { transform:translateY(0) scaleY(1); opacity:0; } 10% { opacity:1; } 100% { transform:translateY(30px) scaleY(0.5); opacity:0; } }

/* Scene: knight-saves-lady (tense, dark) */
.scn-knight-saves-lady {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 35%, #2c2050 70%, #1a1a3e 100%), 
              radial-gradient(ellipse at 50% 110%, #3a2a6e 0%, transparent 60%);
}
.scn-knight-saves-lady .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #14143a 0, #1a1a3e 50%, transparent 100%); animation: ksl-sky 20s ease-in-out infinite; }
.scn-knight-saves-lady .moon { position:absolute; top:14%; right:25%; width:32px; height:32px; background: radial-gradient(circle at 35% 35%, #e8e0d0 0%, #b0a890 100%); border-radius:50%; box-shadow: 0 0 40px 12px rgba(200,180,150,.3); animation: ksl-moon 8s ease-in-out infinite; }
.scn-knight-saves-lady .hills { position:absolute; bottom:32%; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: ksl-hills 25s ease-in-out infinite alternate; }
.scn-knight-saves-lady .castle { position:absolute; bottom:27%; left:15%; width:100px; height:80px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 8% 8% 2% 2%; box-shadow: 0 4px 12px rgba(0,0,0,.7); animation: ksl-castle 6s ease-in-out infinite; }
.scn-knight-saves-lady .knight { position:absolute; bottom:20%; left:35%; width:22px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ksl-knight 8s ease-in-out infinite; }
.scn-knight-saves-lady .lady { position:absolute; bottom:20%; left:48%; width:18px; height:36px; background: linear-gradient(180deg, #5a3a4a 0%, #3a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ksl-lady 12s ease-in-out infinite alternate; }
.scn-knight-saves-lady .torch { position:absolute; bottom:25%; left:38%; width:8px; height:18px; background: radial-gradient(ellipse at 50% 20%, #e8b060 0%, #c08030 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(232,176,96,.6); animation: ksl-torch 2s ease-in-out infinite alternate; }
.scn-knight-saves-lady .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%); box-shadow: inset 0 4px 8px rgba(0,0,0,.4); }
@keyframes ksl-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ksl-moon { 0% { transform: translate(0,0); box-shadow: 0 0 40px 12px rgba(200,180,150,.3); } 50% { transform: translate(-4px,2px); box-shadow: 0 0 50px 18px rgba(200,180,150,.5); } 100% { transform: translate(2px,-1px); box-shadow: 0 0 35px 8px rgba(200,180,150,.2); } }
@keyframes ksl-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes ksl-castle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(.99) } }
@keyframes ksl-knight { 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(0) } }
@keyframes ksl-lady { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(1px) rotate(-2deg) } }
@keyframes ksl-torch { 0% { opacity:.7; transform: scaleY(.8) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.8; transform: scaleY(.9) } }

/* Scene: sockburn-visit-landmarks (calm, dim-interior) */
.scn-sockburn-visit-landmarks {
  background: linear-gradient(135deg, #2a2a2a 0%, #4a3a2a 50%, #2a2a2a 100%), 
              radial-gradient(ellipse at 70% 60%, #5a4a3a 0%, transparent 70%);
}
.scn-sockburn-visit-landmarks .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-sockburn-visit-landmarks .window { position:absolute; top:15%; right:18%; width:80px; height:100px; background: radial-gradient(ellipse at 50% 40%, #6a7a8a 0%, #3a4a5a 100%); border-radius: 8% 8% 4% 4% / 10% 10% 6% 6%; box-shadow: inset 0 0 10px rgba(0,0,0,.4); animation: svl-window 30s ease-in-out infinite alternate; }
.scn-sockburn-visit-landmarks .stone-out { position:absolute; bottom:10%; right:20%; width:40px; height:60px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-sockburn-visit-landmarks .desk { position:absolute; bottom:10%; left:10%; width:100px; height:12px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-sockburn-visit-landmarks .candle { position:absolute; bottom:20%; left:20%; width:10px; height:30px; background: linear-gradient(180deg, #c0a070 0%, #806040 100%); border-radius: 20% 20% 10% 10%; }
.scn-sockburn-visit-landmarks .flame { position:absolute; bottom:calc(20% + 30px); left:calc(20% + 5px); width:6px; height:14px; background: radial-gradient(ellipse at 50% 0, #e0c080 0%, #c08040 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(224,192,128,.6); animation: svl-flame 3s ease-in-out infinite alternate; }
.scn-sockburn-visit-landmarks .book { position:absolute; bottom:15%; left:15%; width:60px; height:40px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 2px 2px 8px 8px; transform: rotate(-5deg); box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: svl-book 20s ease-in-out infinite alternate; }
@keyframes svl-window { 0% { opacity:.6; filter: brightness(.8) } 50% { opacity:.8; filter: brightness(1) } 100% { opacity:.7; filter: brightness(.9) } }
@keyframes svl-flame { 0% { transform: scaleY(.9) rotate(-2deg) } 50% { transform: scaleY(1.1) rotate(2deg) } 100% { transform: scaleY(1) rotate(0) } }
@keyframes svl-book { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-1px) } 100% { transform: rotate(-6deg) translateY(0) } }

/* Scene: mother-most-holy-name (tense, firelit) */
.scn-mother-most-holy-name {
  background: linear-gradient(180deg, #1a0a0a 0%, #3a1a0a 40%, #5a2a0a 100%), 
              radial-gradient(ellipse at 50% 70%, #7a3a0a 0%, transparent 60%);
}
.scn-mother-most-holy-name .bg-fire { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, #b06020 0%, transparent 70%); animation: mhn-bgfire 4s ease-in-out infinite alternate; }
.scn-mother-most-holy-name .fireplace { position:absolute; bottom:10%; left:35%; width:120px; height:90px; background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%); border-radius: 10% 10% 60% 60% / 20% 20% 80% 80%; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-mother-most-holy-name .mother { position:absolute; bottom:20%; left:42%; width:28px; height:52px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mhn-mother 5s ease-in-out infinite; }
.scn-mother-most-holy-name .child { position:absolute; bottom:20%; left:46%; width:14px; height:22px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mhn-child 4s ease-in-out infinite alternate; }
.scn-mother-most-holy-name .cradle { position:absolute; bottom:12%; left:44%; width:40px; height:20px; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a00 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: mhn-cradle 7s ease-in-out infinite; }
.scn-mother-most-holy-name .glow { position:absolute; bottom:30%; left:40%; width:80px; height:80px; background: radial-gradient(circle, #e08040 0%, transparent 70%); border-radius: 50%; mix-blend-mode: screen; animation: mhn-glow 3s ease-in-out infinite alternate; }
@keyframes mhn-bgfire { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes mhn-mother { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes mhn-child { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.02) } 100% { transform: translateY(0) scale(.98) } }
@keyframes mhn-cradle { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes mhn-glow { 0% { opacity:.6; transform: scale(.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(1) } }

/* Scene: christmas-carol-shepherds (warm, starlit) */
.scn-christmas-carol-shepherds {
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3e 30%, #2a2a4e 60%, #1a1a3e 100%), 
              radial-gradient(ellipse at 50% 100%, #3a2a5a 0%, transparent 70%);
}
.scn-christmas-carol-shepherds .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 100%); animation: ccs-sky 30s ease-in-out infinite; }
.scn-christmas-carol-shepherds .stars-a { position:absolute; inset:0; background: radial-gradient(1px 1px at 10% 5%, #e0e0e0 0%, transparent 100%), radial-gradient(1.5px 1.5px at 20% 15%, #e0e0e0 0%, transparent 100%), radial-gradient(1px 1px at 30% 8%, #e0e0e0 0%, transparent 100%), radial-gradient(1.2px 1.2px at 40% 20%, #e0e0e0 0%, transparent 100%), radial-gradient(1px 1px at 50% 2%, #e0e0e0 0%, transparent 100%), radial-gradient(1.5px 1.5px at 60% 12%, #e0e0e0 0%, transparent 100%), radial-gradient(1px 1px at 70% 18%, #e0e0e0 0%, transparent 100%), radial-gradient(1.2px 1.2px at 80% 5%, #e0e0e0 0%, transparent 100%), radial-gradient(1px 1px at 90% 14%, #e0e0e0 0%, transparent 100%); animation: ccs-stars 5s ease-in-out infinite alternate; }
.scn-christmas-carol-shepherds .stars-b { position:absolute; inset:0; background: radial-gradient(1px 1px at 15% 22%, #c0c0d0 0%, transparent 100%), radial-gradient(1.2px 1.2px at 25% 10%, #c0c0d0 0%, transparent 100%), radial-gradient(1px 1px at 35% 25%, #c0c0d0 0%, transparent 100%), radial-gradient(1.5px 1.5px at 45% 6%, #c0c0d0 0%, transparent 100%), radial-gradient(1px 1px at 55% 20%, #c0c0d0 0%, transparent 100%), radial-gradient(1.2px 1.2px at 65% 4%, #c0c0d0 0%, transparent 100%), radial-gradient(1px 1px at 75% 16%, #c0c0d0 0%, transparent 100%), radial-gradient(1.5px 1.5px at 85% 9%, #c0c0d0 0%, transparent 100%), radial-gradient(1px 1px at 95% 19%, #c0c0d0 0%, transparent 100%); animation: ccs-stars-b 7s ease-in-out infinite alternate; }
.scn-christmas-carol-shepherds .stable { position:absolute; bottom:30%; left:40%; width:120px; height:90px; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: ccs-stable 6s ease-in-out infinite; }
.scn-christmas-carol-shepherds .shepherd-left { position:absolute; bottom:22%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ccs-shepherd-l 15s ease-in-out infinite; }
.scn-christmas-carol-shepherds .shepherd-right { position:absolute; bottom:22%; right:22%; width:20px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ccs-shepherd-r 18s ease-in-out infinite; }
.scn-christmas-carol-shepherds .lamb { position:absolute; bottom:18%; left:50%; width:14px; height:18px; background: radial-gradient(ellipse at 50% 30%, #e0d0c0 0%, #b0a090 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: ccs-lamb 10s ease-in-out infinite; }
.scn-christmas-carol-shepherds .ground { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); box-shadow: inset 0 2px 4px rgba(0,0,0,.3); }
@keyframes ccs-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ccs-stars { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ccs-stars-b { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes ccs-stable { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ccs-shepherd-l { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(10px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ccs-shepherd-r { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-10px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ccs-lamb { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }

/* lover-resolution-picture — tense dawn */
.scn-lover-resolution-picture {
  background: linear-gradient(180deg, #d4a373 0%, #f4d6b0 30%, #fff1e6 60%, #e8c4a0 100%), radial-gradient(ellipse at 30% 100%, #d4a373 0%, transparent 60%);
}
.scn-lover-resolution-picture .lr-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f9d4b0 0%, #fff1e6 40%, transparent 100%);
  animation: lr-sky 12s ease-in-out infinite alternate;
}
.scn-lover-resolution-picture .lr-desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #6b4c3a 0%, #4a3326 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.4);
  animation: lr-desk 9s ease-in-out infinite;
}
.scn-lover-resolution-picture .lr-letter {
  position: absolute; bottom: 25%; left: 35%; width: 50px; height: 35px;
  background: linear-gradient(135deg, #faf0e6 0%, #e3d5c0 60%, #d4c4a8 100%);
  border-radius: 2%; transform: rotate(-8deg); box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: lr-letter 2s ease-in-out infinite alternate;
}
.scn-lover-resolution-picture .lr-picture {
  position: absolute; bottom: 35%; left: 55%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #c4a88a 0%, #a68a70 100%);
  border: 3px solid #6b4c3a; border-radius: 6% 6% 4% 4%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5); animation: lr-picture 4s ease-in-out infinite alternate;
}
.scn-lover-resolution-picture .lr-figure {
  position: absolute; bottom: 15%; left: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2c241e 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lr-figure 3s ease-in-out infinite;
}
.scn-lover-resolution-picture .lr-candle {
  position: absolute; bottom: 28%; left: 70%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #f5d6a8 0%, #d4a373 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 0 20px 6px rgba(212,163,115,0.6);
  animation: lr-candle 3s ease-in-out infinite alternate;
}
@keyframes lr-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes lr-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes lr-letter { 0% { transform: rotate(-10deg) translateY(0) } 100% { transform: rotate(-6deg) translateY(-2px) } }
@keyframes lr-picture { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes lr-figure { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(-2deg) } }
@keyframes lr-candle { 0% { transform: scaleY(1) opacity(0.9) } 50% { transform: scaleY(1.05) opacity(1) } 100% { transform: scaleY(0.95) opacity(0.8) } }

/* pool-mirror-virgin — calm sunlit */
.scn-pool-mirror-virgin {
  background: linear-gradient(180deg, #b8e4f0 0%, #d4f2f7 40%, #aad0d8 100%), radial-gradient(ellipse at 50% 80%, #f0fafc 0%, transparent 60%);
}
.scn-pool-mirror-virgin .pm-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #cfeef5 0%, #e6f7fa 50%, transparent 100%);
  animation: pm-sky 15s ease-in-out infinite alternate;
}
.scn-pool-mirror-virgin .pm-pool {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #94c8d4 0%, #6aa8b8 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.15);
  animation: pm-pool 20s ease-in-out infinite alternate;
}
.scn-pool-mirror-virgin .pm-tree {
  position: absolute; bottom: 40%; left: 60%; width: 16px; height: 70px;
  background: linear-gradient(180deg, #3a5c3a 0%, #1a3a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: pm-tree 12s ease-in-out infinite alternate;
}
.scn-pool-mirror-virgin .pm-flowers {
  position: absolute; bottom: 35%; left: 25%; width: 50px; height: 20px;
  background: radial-gradient(circle at 30% 50%, #f0d8b0 4px, transparent 4px),
              radial-gradient(circle at 60% 50%, #e8c8a0 3px, transparent 3px),
              radial-gradient(circle at 80% 50%, #d8b890 5px, transparent 5px);
  background-size: 20px 20px; background-repeat: no-repeat;
  animation: pm-flowers 8s ease-in-out infinite alternate;
}
.scn-pool-mirror-virgin .pm-silhouette {
  position: absolute; bottom: 30%; left: 30%; width: 14px; height: 30px;
  background: rgba(40, 60, 70, 0.3);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: pm-silhouette 10s ease-in-out infinite alternate;
}
.scn-pool-mirror-virgin .pm-ripple-a {
  position: absolute; bottom: 18%; left: 10%; width: 80px; height: 2px;
  background: rgba(255,255,255,0.3);
  border-radius: 50%;
  animation: pm-ripple 8s ease-in-out infinite;
}
.scn-pool-mirror-virgin .pm-ripple-b {
  position: absolute; bottom: 30%; right: 10%; width: 60px; height: 2px;
  background: rgba(255,255,255,0.2);
  border-radius: 50%;
  animation: pm-ripple 10s ease-in-out infinite reverse;
}
@keyframes pm-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes pm-pool { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes pm-tree { 0% { transform: rotate(-4deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-4deg) } }
@keyframes pm-flowers { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.1) } 100% { transform: translateY(0) scale(0.9) } }
@keyframes pm-silhouette { 0% { opacity: 0.1 } 50% { opacity: 0.4 } 100% { opacity: 0 } }
@keyframes pm-ripple { 0% { transform: scaleX(0.5); opacity: 0.3 } 50% { transform: scaleX(1.2); opacity: 0.6 } 100% { transform: scaleX(0.5); opacity: 0 } }

/* restored-dropped-sketch — tense sunlit */
.scn-restored-dropped-sketch {
  background: linear-gradient(180deg, #f5e6c8 0%, #fdf0d8 30%, #e8d4b0 100%), radial-gradient(ellipse at 40% 100%, #f5e6c8 0%, transparent 70%);
}
.scn-restored-dropped-sketch .rd-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fcf3e0 0%, #fff8ee 50%, transparent 100%);
  animation: rd-sky 18s ease-in-out infinite alternate;
}
.scn-restored-dropped-sketch .rd-house {
  position: absolute; bottom: 35%; left: 60%; width: 90px; height: 70px;
  background: linear-gradient(180deg, #c8a88a 0%, #a88870 100%);
  border-radius: 12% 12% 4% 4%;
  clip-path: polygon(0% 30%, 100% 30%, 100% 100%, 0% 100%);
  box-shadow: 0 6px 20px rgba(0,0,0,0.3);
  animation: rd-house 6s ease-in-out infinite alternate;
}
.scn-restored-dropped-sketch .rd-path {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a88a 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: rd-path 5s ease-in-out infinite;
}
.scn-restored-dropped-sketch .rd-figure {
  position: absolute; bottom: 22%; left: 35%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2c241e 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: rd-figure 3s ease-in-out infinite;
}
.scn-restored-dropped-sketch .rd-sketch {
  position: absolute; bottom: 20%; left: 45%; width: 24px; height: 16px;
  background: #faf0e6;
  border-radius: 2%; transform: rotate(5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: rd-sketch 2.5s ease-in-out infinite alternate;
}
.scn-restored-dropped-sketch .rd-shadow {
  position: absolute; bottom: 18%; left: 42%; width: 30px; height: 6px;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(3px);
  animation: rd-shadow 4s ease-in-out infinite alternate;
}
@keyframes rd-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes rd-house { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes rd-path { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes rd-figure { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(-2deg) } }
@keyframes rd-sketch { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(7deg) translateY(-2px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes rd-shadow { 0% { opacity: 0.2; transform: scaleX(1) } 50% { opacity: 0.5; transform: scaleX(1.2) } 100% { opacity: 0.2; transform: scaleX(1) } }

/* mountain-sea-of-pines — calm dawn */
.scn-mountain-sea-of-pines {
  background: linear-gradient(180deg, #7c5c58 0%, #b28a7c 25%, #dbb8a0 50%, #edd0b8 75%, #f5e0c8 100%), radial-gradient(ellipse at 50% 0%, #dbb8a0 0%, transparent 60%);
}
.scn-mountain-sea-of-pines .mp-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #8a6a5a 0%, #c4a88a 30%, #edd0b8 60%, transparent 100%);
  animation: mp-sky 20s ease-in-out infinite alternate;
}
.scn-mountain-sea-of-pines .mp-mountain {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3222 60%, #2a1a12 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  transform-origin: bottom center;
  animation: mp-mountain 14s ease-in-out infinite alternate;
}
.scn-mountain-sea-of-pines .mp-pines-fore {
  position: absolute; bottom: 28%; left: 5%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%);
  clip-path: polygon(0% 100%, 10% 20%, 20% 100%, 30% 10%, 40% 100%, 50% 15%, 60% 100%, 70% 5%, 80% 100%, 90% 10%, 100% 100%);
  animation: mp-pines 18s ease-in-out infinite alternate;
}
.scn-mountain-sea-of-pines .mp-pines-mid {
  position: absolute; bottom: 25%; left: 40%; width: 25%; height: 25%;
  background: linear-gradient(180deg, #1a3a1a 0%, #0a1a0a 100%);
  clip-path: polygon(0% 100%, 15% 30%, 30% 100%, 50% 10%, 70% 100%, 85% 20%, 100% 100%);
  animation: mp-pines 22s ease-in-out infinite reverse;
}
.scn-mountain-sea-of-pines .mp-lake {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a8a7a 0%, #4a6a5a 40%, #3a5a4a 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
  animation: mp-lake 16s ease-in-out infinite alternate;
}
.scn-mountain-sea-of-pines .mp-iceglow {
  position: absolute; bottom: 55%; left: 45%; width: 10%; height: 12%;
  background: radial-gradient(circle, rgba(220,230,240,0.6) 0%, transparent 60%);
  filter: blur(8px);
  animation: mp-iceglow 8s ease-in-out infinite alternate;
}
@keyframes mp-sky { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes mp-mountain { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes mp-pines { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes mp-lake { 0% { background-position: 0% 0% } 50% { background-position: 2% 1% } 100% { background-position: -2% 0% } }
@keyframes mp-iceglow { 0% { opacity: 0.3 } 50% { opacity: 0.7 } 100% { opacity: 0.4 } }

.scn-milesian-temple-story {
  background: linear-gradient(180deg, #0d0d2b 0%, #1a1a3e 30%, #2c1a3e 60%, #1a0f2b 100%), radial-gradient(ellipse at 30% 20%, #1a1a3e 0%, transparent 70%);
}
.scn-milesian-temple-story .mt-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #0d0d2b 0%, #2c1a3e 80%); animation: mt-sky 12s ease-in-out infinite alternate; }
.scn-milesian-temple-story .mt-sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a1a3e 0%, #0d0d2b 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: mt-sea 8s ease-in-out infinite; }
.scn-milesian-temple-story .mt-headland { position:absolute; bottom:40%; left:10%; right:40%; height:30%; background: linear-gradient(180deg, #2c1a3e 0%, #1a0f2b 100%); border-radius: 0 80% 0 0 / 0 60% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.5); animation: mt-headland 15s ease-in-out infinite alternate; }
.scn-milesian-temple-story .mt-temple { position:absolute; bottom:48%; left:15%; width:60px; height:45px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 0 20px rgba(255,200,100,.3); animation: mt-temple 6s ease-in-out infinite; }
.scn-milesian-temple-story .mt-priestess { position:absolute; bottom:44%; left:22%; width:12px; 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: mt-priestess 4s ease-in-out infinite; }
.scn-milesian-temple-story .mt-boat { position:absolute; bottom:30%; left:60%; width:30px; height:12px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 0 60% 60%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: mt-boat 10s ease-in-out infinite; }
.scn-milesian-temple-story .mt-star-1 { position:absolute; top:12%; left:25%; width:3px; height:3px; background:#fff; border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,255,255,.6); animation: mt-star-1 3s ease-in-out infinite alternate; }
.scn-milesian-temple-story .mt-star-2 { position:absolute; top:30%; right:15%; width:2px; height:2px; background:#fff; border-radius:50%; box-shadow: 0 0 4px 1px rgba(255,255,255,.4); animation: mt-star-2 4s ease-in-out infinite alternate; animation-delay: .5s; }
.scn-milesian-temple-story .mt-glow { position:absolute; bottom:45%; left:12%; width:70px; height:20px; background: radial-gradient(ellipse, rgba(255,200,100,.15) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: mt-glow 4s ease-in-out infinite alternate; }
@keyframes mt-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes mt-sea { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes mt-headland { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes mt-temple { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mt-priestess { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mt-boat { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(-8px) translateY(4px) rotate(3deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes mt-star-1 { 0% { opacity:.3; transform: scale(.8) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.4; transform: scale(.9) } }
@keyframes mt-star-2 { 0% { opacity:.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.6; transform: scale(1) } }
@keyframes mt-glow { 0% { opacity:.4; transform: scaleX(.8) } 50% { opacity:.8; transform: scaleX(1.1) } 100% { opacity:.5; transform: scaleX(.9) } }

.scn-celestial-quire-olympus {
  background: linear-gradient(180deg, #f0d8b0 0%, #e8b890 30%, #b08060 60%, #604030 100%), radial-gradient(ellipse at 50% 10%, #ffe8b0 0%, transparent 60%);
}
.scn-celestial-quire-olympus .cq-dawn-sky { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #ffe8b0 0%, #f0d8b0 40%, #e8b890 100%); animation: cq-sky 10s ease-in-out infinite alternate; }
.scn-celestial-quire-olympus .cq-cloud-a { position:absolute; top:15%; left:10%; width:120px; height:20px; background: linear-gradient(180deg, rgba(255,232,176,.6) 0%, rgba(255,232,176,.2) 100%); border-radius:50%; filter: blur(8px); animation: cq-cloud-a 30s linear infinite; }
.scn-celestial-quire-olympus .cq-cloud-b { position:absolute; top:25%; right:5%; width:90px; height:16px; background: linear-gradient(180deg, rgba(232,184,144,.5) 0%, rgba(232,184,144,.1) 100%); border-radius:50%; filter: blur(6px); animation: cq-cloud-b 40s linear infinite reverse; }
.scn-celestial-quire-olympus .cq-mountain { position:absolute; bottom:20%; left:15%; right:15%; height:40%; background: linear-gradient(180deg, #604030 0%, #403020 100%); clip-path: polygon(0% 100%, 20% 30%, 35% 0%, 50% 20%, 65% 0%, 80% 30%, 100% 100%); box-shadow: inset 0 12px 24px rgba(0,0,0,.4); animation: cq-mountain 20s ease-in-out infinite alternate; }
.scn-celestial-quire-olympus .cq-sun-glow { position:absolute; top:10%; left:40%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,232,176,.8) 0%, rgba(255,200,128,.4) 40%, transparent 70%); border-radius:50%; filter: blur(10px); animation: cq-sun-glow 5s ease-in-out infinite alternate; }
.scn-celestial-quire-olympus .cq-quire { position:absolute; top:30%; left:20%; width:50px; height:50px; background: radial-gradient(circle at 40% 40%, rgba(255,200,128,.8) 0%, transparent 60%); border-radius:50%; box-shadow: 0 0 30px rgba(255,200,128,.3); animation: cq-quire 8s ease-in-out infinite; }
.scn-celestial-quire-olympus .cq-soul { position:absolute; bottom:25%; left:45%; width:12px; height:30px; background: linear-gradient(180deg, #ffd8a0 0%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cq-soul 6s ease-in-out infinite; }
@keyframes cq-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cq-cloud-a { 0% { transform: translateX(0) } 100% { transform: translateX(200px) } }
@keyframes cq-cloud-b { 0% { transform: translateX(0) } 100% { transform: translateX(-150px) } }
@keyframes cq-mountain { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes cq-sun-glow { 0% { transform: scale(1); opacity:.7 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(.95); opacity:.8 } }
@keyframes cq-quire { 0% { transform: rotate(0deg) translateX(0) scale(1) } 33% { transform: rotate(120deg) translateX(8px) scale(1.05) } 66% { transform: rotate(240deg) translateX(-4px) scale(.95) } 100% { transform: rotate(360deg) translateX(0) scale(1) } }
@keyframes cq-soul { 0% { transform: translateY(0) scaleY(1); opacity:.8 } 50% { transform: translateY(-12px) scaleY(1.1); opacity:1 } 100% { transform: translateY(0) scaleY(1); opacity:.8 } }

.scn-sleep-visit-folk-song {
  background: linear-gradient(180deg, #0e1a2a 0%, #1a2a3e 30%, #2c3a4e 60%, #1a1a2a 100%), radial-gradient(ellipse at 50% 20%, #2c3a4e 0%, transparent 70%);
}
.scn-sleep-visit-folk-song .sf-moon { position:absolute; top:10%; left:70%; width:50px; height:50px; background: radial-gradient(circle at 50% 50%, #f0e0c0 0%, #c0a080 100%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(192,160,128,.5); animation: sf-moon 12s ease-in-out infinite alternate; }
.scn-sleep-visit-folk-song .sf-moon-glow { position:absolute; top:8%; left:68%; width:70px; height:70px; background: radial-gradient(circle, rgba(192,160,128,.2) 0%, transparent 60%); border-radius:50%; filter: blur(15px); animation: sf-moon-glow 8s ease-in-out infinite alternate; }
.scn-sleep-visit-folk-song .sf-hills-back { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a2a3e 0%, #0e1a2a 100%); border-radius: 80% 60% 0 0 / 60% 40% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.4); animation: sf-hills 20s ease-in-out infinite alternate; }
.scn-sleep-visit-folk-song .sf-hills-front { position:absolute; bottom:15%; left:0; right:0; height:25%; background: linear-gradient(180deg, #2c3a4e 0%, #1a2a3e 100%); border-radius: 60% 80% 0 0 / 40% 60% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.3); animation: sf-hills 25s ease-in-out infinite alternate-reverse; }
.scn-sleep-visit-folk-song .sf-woods { position:absolute; bottom:20%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%); clip-path: polygon(0% 100%, 5% 30%, 10% 100%, 15% 20%, 20% 100%, 25% 40%, 30% 100%, 35% 10%, 40% 100%, 45% 35%, 50% 100%, 55% 25%, 60% 100%, 65% 15%, 70% 100%, 75% 40%, 80% 100%, 85% 20%, 90% 100%, 95% 30%, 100% 100%); box-shadow: inset 0 4px 8px rgba(0,0,0,.5); animation: sf-woods 6s ease-in-out infinite; }
.scn-sleep-visit-folk-song .sf-figure { position:absolute; bottom:30%; left:40%; width:14px; 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: sf-figure 5s ease-in-out infinite; }
.scn-sleep-visit-folk-song .sf-path { position:absolute; bottom:5%; left:35%; width:30%; height:10%; background: linear-gradient(180deg, #3a4a5a 0%, #2c3a4e 100%); border-radius: 20% 20% 0 0; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: sf-path 18s ease-in-out infinite alternate; }
.scn-sleep-visit-folk-song .sf-star { position:absolute; top:20%; left:20%; width:2px; height:2px; background:#fff; border-radius:50%; box-shadow: 0 0 4px 1px rgba(255,255,255,.5); animation: sf-star 3s ease-in-out infinite alternate; }
@keyframes sf-moon { 0% { transform: translateY(0) } 50% { transform: translateY(-6px) } 100% { transform: translateY(0) } }
@keyframes sf-moon-glow { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.6; transform: scale(.9) } }
@keyframes sf-hills { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes sf-woods { 0% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0deg) } }
@keyframes sf-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(3px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(6px) translateY(0) rotate(0deg) } 75% { transform: translateX(3px) translateY(2px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes sf-path { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }
@keyframes sf-star { 0% { opacity:.3; transform: scale(.8) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.5; transform: scale(.9) } }

.scn-stranger-impulses-blame {
  background: linear-gradient(180deg, #e8c080 0%, #c08040 30%, #804020 60%, #402010 100%), radial-gradient(ellipse at 60% 20%, #f0d8a0 0%, transparent 50%);
}
.scn-stranger-impulses-blame .si-sun { position:absolute; top:5%; left:20%; width:80px; height:80px; background: radial-gradient(circle at 50% 50%, #ffe8a0 0%, #f0c070 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(240,192,112,.5); animation: si-sun 6s ease-in-out infinite alternate; }
.scn-stranger-impulses-blame .si-rays { position:absolute; top:0; left:0; right:0; height:30%; background: repeating-linear-gradient(45deg, rgba(255,232,160,.15) 0px, rgba(255,232,160,.15) 8px, transparent 8px, transparent 16px); animation: si-rays 3s linear infinite; }
.scn-stranger-impulses-blame .si-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #804020 0%, #402010 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: si-ground 5s ease-in-out infinite alternate; }
.scn-stranger-impulses-blame .si-figure { position:absolute; bottom:35%; left:40%; width:18px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-figure 2s ease-in-out infinite; }
.scn-stranger-impulses-blame .si-shadow { position:absolute; bottom:20%; left:38%; width:30px; height:12px; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%); border-radius:50%; filter: blur(4px); animation: si-shadow 2s ease-in-out infinite; }
.scn-stranger-impulses-blame .si-dust-1 { position:absolute; bottom:30%; left:35%; width:4px; height:4px; background: #c08040; border-radius:50%; animation: si-dust 4s ease-in-out infinite; }
.scn-stranger-impulses-blame .si-dust-2 { position:absolute; bottom:28%; left:50%; width:3px; height:3px; background: #a06030; border-radius:50%; animation: si-dust 3.5s ease-in-out infinite reverse; animation-delay: .5s; }
.scn-stranger-impulses-blame .si-banner { position:absolute; bottom:40%; left:50%; width:8px; height:30px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 2px; transform-origin: bottom center; animation: si-banner .8s ease-in-out infinite alternate; }
@keyframes si-sun { 0% { transform: scale(1); opacity:.9 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(.95); opacity:.8 } }
@keyframes si-rays { 0% { background-position: 0 0 } 100% { background-position: 16px 0 } }
@keyframes si-ground { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes si-figure { 0% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(2px) rotate(5deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2px) rotate(-5deg) } 100% { transform: translateX(0) rotate(5deg) } }
@keyframes si-shadow { 0% { transform: scaleX(1) translateX(0); opacity:.6 } 25% { transform: scaleX(1.1) translateX(3px); opacity:.4 } 50% { transform: scaleX(.9) translateX(-2px); opacity:.7 } 75% { transform: scaleX(1.05) translateX(2px); opacity:.5 } 100% { transform: scaleX(1) translateX(0); opacity:.6 } }
@keyframes si-dust { 0% { transform: translateY(0) translateX(0) scale(1); opacity:.8 } 50% { transform: translateY(-12px) translateX(6px) scale(.3); opacity:0 } 100% { transform: translateY(0) translateX(0) scale(1); opacity:.8 } }
@keyframes si-banner { 0% { transform: rotate(-15deg) } 100% { transform: rotate(15deg) } }

.scn-bard-weather-wise-moon {
  background: linear-gradient(180deg, #0a1035 0%, #1a2a50 50%, #2a4a6a 100%),
              radial-gradient(ellipse at 50% 0%, #3a5a7a 0%, transparent 60%);
}
.scn-bard-weather-wise-moon .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #152050 0%, transparent 100%);
  animation: bwm-sky 20s ease-in-out infinite alternate;
}
.scn-bard-weather-wise-moon .moon-crescent {
  position: absolute; top: 14%; right: 32%; width: 50px; height: 50px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 50%, #f0f4ff 0%, #b0c8e0 80%);
  box-shadow: -12px 0 0 4px #0a1035;
  animation: bwm-crescent 12s ease-in-out infinite alternate;
}
.scn-bard-weather-wise-moon .moon-faint {
  position: absolute; top: 16%; right: 34%; width: 60px; height: 60px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200,220,255,0.3) 0%, transparent 70%);
  animation: bwm-faint 8s ease-in-out infinite;
}
.scn-bard-weather-wise-moon .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.5);
  animation: bwm-hills 18s ease-in-out infinite alternate;
}
.scn-bard-weather-wise-moon .tree {
  position: absolute; bottom: 28%; left: 20%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: bwm-tree 5s ease-in-out infinite alternate;
}
.scn-bard-weather-wise-moon .bard-figure {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 45px;
  margin-left: -10px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bwm-figure 4s ease-in-out infinite;
}
.scn-bard-weather-wise-moon .cloud {
  position: absolute; width: 100px; height: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
}
.scn-bard-weather-wise-moon .cloud-a {
  top: 10%; left: 5%;
  animation: bwm-drift-a 40s linear infinite;
}
.scn-bard-weather-wise-moon .cloud-b {
  top: 22%; right: 10%; width: 70px;
  animation: bwm-drift-b 55s linear infinite reverse;
}

@keyframes bwm-sky     { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .6; } }
@keyframes bwm-crescent{ 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg) scale(1.01); } 100% { transform: rotate(-1deg); } }
@keyframes bwm-faint   { 0% { opacity: .3; } 50% { opacity: .6; } 100% { opacity: .2; } }
@keyframes bwm-hills   { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes bwm-tree    { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes bwm-figure  { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes bwm-drift-a { 0% { transform: translateX(0); } 100% { transform: translateX(110vw); } }
@keyframes bwm-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-110vw); } }

.scn-dejection-variant-quotes {
  background: linear-gradient(135deg, #1a1010 0%, #2a1a10 50%, #3a2015 100%),
              radial-gradient(ellipse at 70% 40%, #4a2a18 0%, transparent 60%);
}
.scn-dejection-variant-quotes .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  animation: djv-wall 6s ease-in-out infinite alternate;
}
.scn-dejection-variant-quotes .desk {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #3a2015 0%, #2a1410 100%);
  border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,.6);
  animation: djv-desk 8s ease-in-out infinite;
}
.scn-dejection-variant-quotes .papers {
  position: absolute; bottom: 20%; left: 25%; width: 50px; height: 35px;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a880 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: djv-papers 3s ease-in-out infinite alternate;
}
.scn-dejection-variant-quotes .candle {
  position: absolute; bottom: 23%; left: 60%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e0c8a0 0%, #b08850 100%);
  border-radius: 4px 4px 0 0;
  animation: djv-candle 4s ease-in-out infinite;
}
.scn-dejection-variant-quotes .flame {
  position: absolute; bottom: 38%; left: 60.5%; width: 10px; height: 14px;
  margin-left: -5px;
  background: radial-gradient(circle at 50% 100%, #ffd060 0%, #ff8020 60%, #cc4000 100%);
  border-radius: 50% 50% 30% 30%;
  animation: djv-flame 0.6s ease-in-out infinite alternate;
}
.scn-dejection-variant-quotes .inkwell {
  position: absolute; bottom: 18%; left: 45%; width: 16px; height: 18px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: inset 0 -4px 4px rgba(0,0,0,.5);
  animation: djv-ink 5s ease-in-out infinite;
}
.scn-dejection-variant-quotes .hand {
  position: absolute; bottom: 16%; left: 30%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: djv-hand 2s ease-in-out infinite alternate;
}
.scn-dejection-variant-quotes .shadow {
  position: absolute; inset: 0; background: linear-gradient(135deg, transparent 0%, rgba(0,0,0,.4) 60%, rgba(0,0,0,.7) 100%);
  animation: djv-shadow 7s ease-in-out infinite alternate;
}

@keyframes djv-wall    { 0% { opacity: .8; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes djv-desk    { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes djv-papers  { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(-1px) rotate(0); } }
@keyframes djv-candle  { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes djv-flame   { 0% { transform: scaleY(0.9) rotate(-2deg); } 25% { transform: scaleY(1.1) rotate(1deg); } 50% { transform: scaleY(0.95) rotate(-1deg); } 75% { transform: scaleY(1.05) rotate(2deg); } 100% { transform: scaleY(1) rotate(0); } }
@keyframes djv-ink     { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes djv-hand    { 0% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(2deg) translateX(4px); } 100% { transform: rotate(-1deg) translateX(2px); } }
@keyframes djv-shadow  { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .3; } }

.scn-sky-canoe-variant {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 60%);
}
.scn-sky-canoe-variant .room-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  animation: skc-wall 12s ease-in-out infinite alternate;
}
.scn-sky-canoe-variant .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  box-shadow: inset 0 6px 10px rgba(0,0,0,.4);
}
.scn-sky-canoe-variant .frame-outer {
  position: absolute; top: 10%; left: 30%; width: 120px; height: 90px;
  background: linear-gradient(135deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: skc-frame 8s ease-in-out infinite;
}
.scn-sky-canoe-variant .canvas {
  position: absolute; top: 12.5%; left: 32.5%; width: 105px; height: 75px;
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 50%, #3a4a5a 100%);
  border-radius: 2px;
  animation: skc-canvas 6s ease-in-out infinite alternate;
}
.scn-sky-canoe-variant .boat-silhouette {
  position: absolute; top: 28%; left: 48%; width: 40px; height: 12px;
  margin-left: -20px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20%;
  animation: skc-boat 14s ease-in-out infinite;
}
.scn-sky-canoe-variant .lamp-glow {
  position: absolute; bottom: 20%; right: 15%; width: 30px; height: 40px;
  background: radial-gradient(circle at 50% 30%, #ffd060 0%, #b08030 50%, #603010 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(192,128,48,.3);
  animation: skc-lamp 5s ease-in-out infinite alternate;
}
.scn-sky-canoe-variant .table {
  position: absolute; bottom: 18%; left: 60%; width: 60px; height: 10px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  border-radius: 2px;
  animation: skc-table 10s ease-in-out infinite;
}
.scn-sky-canoe-variant .vase {
  position: absolute; bottom: 20%; left: 68%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 30% 30% 20% 20%;
  animation: skc-vase 7s ease-in-out infinite alternate;
}

@keyframes skc-wall   { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .6; } }
@keyframes skc-frame  { 0% { transform: scale(1); } 50% { transform: scale(1.005); } 100% { transform: scale(0.995); } }
@keyframes skc-canvas { 0% { filter: brightness(1); } 50% { filter: brightness(1.05); } 100% { filter: brightness(0.95); } }
@keyframes skc-boat   { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes skc-lamp   { 0% { box-shadow: 0 0 15px 5px rgba(192,128,48,.3); opacity: .8; } 50% { box-shadow: 0 0 30px 12px rgba(255,208,96,.5); opacity: 1; } 100% { box-shadow: 0 0 20px 8px rgba(192,128,48,.35); opacity: .85; } }
@keyframes skc-table  { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes skc-vase   { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-0.5deg); } }

.scn-luminous-cloud-variant {
  background: linear-gradient(180deg, #0a0a12 0%, #15101a 40%, #1a1420 100%),
              radial-gradient(ellipse at 50% 40%, #2a1a30 0%, transparent 70%);
}
.scn-luminous-cloud-variant .darkness {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 45% 35%, transparent 0%, rgba(0,0,0,.6) 70%);
  animation: lcv-dark 8s ease-in-out infinite alternate;
}
.scn-luminous-cloud-variant .luminous-cloud {
  position: absolute; top: 18%; left: 38%; width: 80px; height: 60px;
  background: radial-gradient(circle, #d0e0ff 0%, #8090c0 40%, #304060 80%, transparent 100%);
  border-radius: 50%;
  animation: lcv-glow 2s ease-in-out infinite alternate;
}
.scn-luminous-cloud-variant .halo {
  position: absolute; top: 15%; left: 35%; width: 100px; height: 80px;
  background: radial-gradient(circle, rgba(200,220,255,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: lcv-halo 3s ease-in-out infinite alternate;
}
.scn-luminous-cloud-variant .table {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 8%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 4px;
  box-shadow: 0 -2px 6px rgba(0,0,0,.7);
  animation: lcv-table 6s ease-in-out infinite;
}
.scn-luminous-cloud-variant .book {
  position: absolute; bottom: 22%; left: 35%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,.5);
  animation: lcv-book 4s ease-in-out infinite alternate;
}
.scn-luminous-cloud-variant .hand-reaching {
  position: absolute; bottom: 15%; left: 45%; width: 22px; height: 35px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lcv-hand 1.5s ease-in-out infinite alternate;
}
.scn-luminous-cloud-variant .shard {
  position: absolute; width: 10px; height: 4px;
  background: linear-gradient(90deg, #4a6a8a 0%, transparent 100%);
  border-radius: 2px;
  filter: blur(2px);
}
.scn-luminous-cloud-variant .shard-1 {
  top: 30%; left: 30%;
  animation: lcv-shard1 0.8s ease-in-out infinite alternate;
}
.scn-luminous-cloud-variant .shard-2 {
  top: 40%; left: 55%;
  animation: lcv-shard2 1s ease-in-out infinite alternate;
}

@keyframes lcv-dark    { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .4; } }
@keyframes lcv-glow   { 0% { transform: scale(0.9); opacity: .6; } 20% { transform: scale(1.1); opacity: 1; } 40% { transform: scale(0.95); opacity: .7; } 60% { transform: scale(1.05); opacity: .9; } 80% { transform: scale(0.85); opacity: .5; } 100% { transform: scale(1); opacity: .8; } }
@keyframes lcv-halo   { 0% { transform: scale(0.85); opacity: .3; } 50% { transform: scale(1.2); opacity: .5; } 100% { transform: scale(0.9); opacity: .2; } }
@keyframes lcv-table  { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes lcv-book   { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(-1px) rotate(0); } }
@keyframes lcv-hand   { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lcv-shard1 { 0% { transform: translate(0,0) rotate(0deg); opacity: .8; } 50% { transform: translate(-10px, 8px) rotate(45deg); opacity: .3; } 100% { transform: translate(5px, -5px) rotate(-20deg); opacity: .6; } }
@keyframes lcv-shard2 { 0% { transform: translate(0,0) rotate(0deg); opacity: .5; } 50% { transform: translate(8px, -4px) rotate(-30deg); opacity: .8; } 100% { transform: translate(-6px, 10px) rotate(20deg); opacity: .4; } }
/* end per-scene blocks */
